V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
chipmuck
V2EX  ›  iDev

Xcode 子工程的正确使用姿势是啥?

  •  
  •   chipmuck · 2017-07-03 16:25:13 +08:00 · 4972 次点击
    这是一个创建于 2707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原因:

    公司业务辐射,导致公司的 iOS 项目需要接入更多不同的公司业务,加上团队的人员的不断增加,所以也要调整项目的架构。

    计划:

    目前打算在主工程中采用路由进行调用模块,将模块和模块之间解耦,并把模块单独作为一个子工程。

    问题:

    有没有有经验的同学说一下,其中的注意点和使用姿势?

    10 条回复    2017-07-12 21:26:34 +08:00
    GaoMjun
        1
    GaoMjun  
       2017-07-03 18:47:25 +08:00 via Android
    cocopods 貌似就是这样
    jamescheng
        2
    jamescheng  
       2017-07-03 20:10:58 +08:00
    可以尝试组件化开发
    letuslinux
        3
    letuslinux  
       2017-07-03 20:50:16 +08:00
    用 cocopods 分模块 route,很容易
    lldong
        4
    lldong  
       2017-07-03 21:00:21 +08:00   ❤️ 1
    简单点弄就是建立一个 target 静态库的子工程,拖子工程 .xcodeproj 到主工程中,然后 Build Phases 中添加静态库 target 到 Target Dependencies 和 Link Binary With Libraries 中,注意子工程的 deployment target 和主工程设置一样的系统版本,C++ 标准库版本一致,最后配置主工程的 Header Search Path 到子工程目录下,Other Linker Flags 添加 -ObjC 避免子工程 Category 没加载。使用时可以用依赖注入之类方法解耦,尽量避免双向依赖~ 暂时想到这些
    chipmuck
        5
    chipmuck  
    OP
       2017-07-03 21:08:20 +08:00
    @GaoMjun
    @jamescheng

    cocoapods 我们打算弄个私有 repo,然后放一些基础层(网络、存储等)这种不用经常维护的东西;其余业务用子工程完成。
    chipmuck
        6
    chipmuck  
    OP
       2017-07-03 21:09:25 +08:00
    @lldong 跟我想的大体相同。

    不过碰到了 bundle 的一些问题。
    HuangLibo
        7
    HuangLibo  
       2017-07-04 09:41:07 +08:00
    用子工程就是 manual 方式的集成, 不推荐. 还是老老实实用包管理吧
    zichen0422
        8
    zichen0422  
       2017-07-04 09:49:38 +08:00
    cocopods, + 组件化, 你值得拥有
    chipmuck
        9
    chipmuck  
    OP
       2017-07-04 10:19:13 +08:00
    @jamescheng
    @zichen0422

    组件化能具体说说嘛?
    rainex
        10
    rainex  
       2017-07-12 21:26:34 +08:00
    不同模块做成库,然后被调用。

    拿 win 下软件做个例子,各个功能和业务做成动态链接库 dll,然后主 exe 调用,当然你也可以把动态库做成 lib 静态库链接编译进去,一般是提倡动态链接的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2617 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 11:22 · PVG 19:22 · LAX 03:22 · JFK 06:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.