美文网首页iOS技术资料iOS 宝典workspace 下多个project
【iOS开发】在一个Xcode页面建立多个工程

【iOS开发】在一个Xcode页面建立多个工程

作者: 谦言忘语 | 来源:发表于2016-06-24 09:41 被阅读11003次

    Xcode里面是可以同时存在多个工程的。可以通过存放在同一个工作空间来实现同一个Xcode页面存在多个工程,也就是有多个xcodeproj。如下图所示。


    在Xcode页面中管理3个工程

    这样不仅可以方便管理几个相似功能的工程,更重要的是,可以实现多工程联编。

    接下来我们会做一个多工程的Demo

    1. 建立一个工作空间MyWorkspace。
    2. 使用方法一建立一个普通的Xcode工程MyApp1添加到MyWorkspace。
    3. 使用方法二建立一个普通的Xcode工程MyApp2添加到MyWorkspace。
    4. 建立一个SDK工程MySDK添加到MyWorkspace。实现联编。

    1.建立一个工作空间MyWorkspace

    Xcode里面,建立一个工作空间。File->New->Workspace,命名为Myworkspace,存放在文件夹MyWorkspace中(名字都是可以随便命名的)。

    新建一个workspace

    这样我们就建立了一个空的工作空间。然后我们就可以往这个工作空间中加入几个Xcode工程。

    2. 使用方法一建立一个普通的Xcode工程MyApp1添加到MyWorkspace

    File->New->Project 新建一个名为MyApp1的app工程文件。为了便于管理,我们把他放在MyWorkspace文件夹中。创建完成后
    在工作空间的Xcode工程中,File->Add File To "MyWorkplace",选中刚才创建的MyApp1工程。这样MyApp1工程就添加到了MyWorkplace中了。

    创建一个普通的App工程 将MyApp1添加到MyWorkspace

    3. 使用方法二建立一个普通的Xcode工程MyApp2添加到MyWorkspace。

    我们用另外一种方法添加一个工程到MyWorkplace工作空间中。
    File->New->Project 新建一个名为MyApp2的app工程文件。在存放工程的界面中,将下面的Add to : 选择成MyWorkspace。这样MyApp2工程就添加到了MyWorkplace中。到此,我们就可以在一个Xcode的界面中同时管理两个工程了。

    建立工程的时候将工程添加到MyWorkspace中

    4. 建立一个SDK工程MySDK添加到MyWorkspace。实现联编。

    但是多工程使用的精髓并不在这里,而在于两个工程连编。
    我们新建一个名为MySDK的.a库。然后将这个MySDK工程添加到MyWorkplace,来实现MyApp2与MySDK联调。
    File->New->Project->选择Static Library ,按照方法二添加到MyWorkspace。然后在MySDK里面创建一个sayHello类方法。在方法中打一个断点。将.a库拉到MyApp2里面。在ViewController里面调用sayHello方法。执行之后,断点就会停在MySDK工程中的里面。这样就可以在两个工程进行调试了。

    建立一个静态库工程,添加到MyWorkspace 在MySDK中加一个sayHello方法 在MyApp2中调用sayHello方法 运行MyApp2,断点会停在MySDK工程

    关于静态库的相关知识和设置,可以查看简书上的这篇文章,写得非常好。点我飞去了解静态库

    相关文章

      网友评论

      • 当应谅我之无聊也:非常想跟你做个朋友,我有个项目想跟你探讨技术解决方案,方便加个微信好友吗?
      • Hanser0503:我创建完静态库之后为什么没有.a工程?
        Hanser0503:@谦言忘语 我最近在学习组件化开发部分,方便加个qq嘛?想请教些问题
        谦言忘语:@Hanser0503 需要对.A包的工程进行两次编译。一次用模拟器,一次用Genaral Device。然后才可以直接看到
      • 墨鱼湉湉:File->new->target
        brilliance_Liu:这才是我想要的~
      • 9a6f4c00fe70:请问为什么我的.a从创见出来后一直都是红色的?
        维维豆奶1991:@VictorHuang 为什么我build 也没用。
        9a6f4c00fe70:成功啦~感谢!!
        可是没有办法拉过去另一个project@@
        谦言忘语:target要切换到.a包的工程。然后用模拟器build一次,用Generic iOS Device build一次就OK了
      • pFruHMXB:哈哈哈 还有这种操作,玩几年都不知道,请问这样和 在一个 Project中 再创建 target 相比有什么优劣
        pFruHMXB:哈哈 然后原来CocoaPods 创建的项目就是生成了一个workspace,如果使用这种方式,就不能在在MyWorkspace中 打开CocoaPods项目了.
      • 华丽的跌倒pp:如何把.a静态库拖到MyApp.2中啊,拖不进去啊
        谦言忘语:。。。直接拉到MyApp2工程里面
      • F森:文章还有待完善😊
      • b470b9fc7145:为什么要把 MySDK.h 和 MySDK.a 文件加到 MyApp2 来?
        谦言忘语:MySDK这个工程是一个SDK工程来的,这个工程的目的是将一些功能封装起来,然后打包成.a静态库供其他的app工程使用。这里将MySDK.h 和 MySDK.a 加到MyApp2,就可以实现在MyApp2 中引用MySDK.a 这个静态库。
      • c2ff09fc890a:请教下作者,有没有试过工程 MyApp1 和 MyApp 2 联编呢?比如说,MyApp1 作为主工程,MyApp2 作为子工程,MyApp1 有一个入口,进去后就是 MyApp2 了。。。
        c2ff09fc890a:@谦言忘语 不知道作者有没有遇到过呢
        c2ff09fc890a:@谦言忘语 😅,就是 MainApp1 抛一个进入 App2 的接口。不通过 workspace 和通过 workspace 把两个项目整合到一起,设置路径,引用,实现方法,到这步没问题,编译就报错了:"_OBJC_CLASS_$_***", referenced from
        谦言忘语:@破名字想半天 MyApp1作为主工程,MyApp2作为子工程,这是可以的。也就是说,可以不通过workplace也可以把多个工程整合到一起。但我不明白,入口是什么意思?
      • 紫星轩:写的很棒, 之前只是知道可以添加多个Target, 学习了
      • 鼻毛长长:菜单栏怎么弄成暗色的?
        鼻毛长长:@shixueqian 明白。。我之前一直在Xcode找。。。
        谦言忘语:@鼻毛长长 是系统的一个设置。系统偏好设置->通用->外观->勾选“使用暗色菜单栏和Dock”

      本文标题:【iOS开发】在一个Xcode页面建立多个工程

      本文链接:https://www.haomeiwen.com/subject/qceodttx.html