如何做Xcode工程的工程化管理
有感于我厂某iOS项目的开发管理混乱,所以这里说一下我这边对Xcode工程的一些管理经验
如果开发人数很多,且负责不同的部分和组件的话,可以用子Project的方式或者Workspace+多个Project的方式来分割功能和组件
使用CocoaPods管理第三方的组件和类库
对于需要打出不同渠道或不同测试环境的包,可以通过Build Configuration来进行区分
用Scheme来配置打包对应的Build Configuration 以及 执行 对应的 Build Configuration
使用xcodebuild命令打包
由于project.pbxproj这个文件很容易发生冲突(比如新增文件,删除文件,改变Build Setting等都会改变这个文件),且很难合并冲突,那么采用多Project的方式可以降低project.pbxproj冲突的机会,而一些公用的代码或组件也可以放在一个Project中,然后其他Project来依赖这个公用的Project就可以搞定了
至于什么是CocoaPods,可以看这篇文章 http://blog.zephyrleaves.net/?p=712
使用CocoaPods可以极大减少对依赖包的管理成本,现在AppCode 2.5已经开始原生支持CocoaPods了,Xcode上也有对CocosPods的支持插件 https://github.com/ricobeck/KFCocoaPodsPlugin
在Xcode项目->Project->Info->Configurations下面可以点+号添加自定义的Build Configuration(默认只有Release和Debug),然后针对不同的渠道和环境配置不同的Build Setting,当然一些渠道的配置也可以走XCCONFIG的方式进行配置,不过我还是建议走Build Configuration,因为这样很容易配置Scheme
由于不同渠道和环境通过Build Configuration来进行区分配置,那么执行和打包的入口就需要由Scheme来进行管理,特别是在使用CocoaPods管理的情况下,整个工程是用workspace来进行管理的 ,这个时候使用xcodebuild的时候就必须指定Scheme了
在Manage Schemes下面,可以创建多个Scheme(默认应该有一个对应Target的一个Scheme),在Edit Scheme里面可以设置不同Action(Run/Test/Profile/Analyze/Archive)对应的Build Configuration是啥,我这边是一个Build Configuration对于一个Scheme,这样很方便
由于Scheme都是放在个人的userdata下面的,所以在Manage Schemes下面对Scheme选中Shared,那么这些Scheme就可以被共享给团队的其他成员看到并使用了
由于一般情况下可能需要对多个渠道打出多个app包,如果对每个渠道都先clean在archive需要多个操作,实际上如上有配置对应渠道的Scheme后,可以用xcodebuild命令一次打出过个包来,比如:
xcodebuild -workspace XXX.xcworkspace -scheme XXX clean archive xcodebuild -workspace XXX.xcworkspace -scheme XXX_91 clean archive
写这样一个shell,就可以一次打出2个archive了
OK,上面这些都是我管理Xcode工程的一些经验,如果大家有更好的一些实践的话,都可以来告诉我哦
建议继续学习:
- 技术人员的未来:做技术还是做管理? (阅读:7749)
- 为什么招不到人 (阅读:6139)
- 领导需要比下属更懂技术吗? (阅读:5283)
- 软件公司的两种管理方式 (阅读:4513)
- robbin谈管理:大公司体制内创新的困境 (阅读:3726)
- 如何管理程序猿 (阅读:3757)
- 一个小公司老板的日常管理,希望能让创业的朋友学到 (阅读:3300)
- 职业素养:如何管理好你的上级 (阅读:3245)
- 一个程序员的管理思考 (阅读:3079)
- IoC/DIP其实是一种管理思想 (阅读:2946)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:淘宝文通 来源: 装逼程序员
- 标签: Xcode 管理
- 发布时间:2015-01-05 23:24:30
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [52] android 开发入门
- [52] 如何拿下简短的域名
- [51] 图书馆的世界纪录
- [49] Go Reflect 性能
- [49] Oracle MTS模式下 进程地址与会话信
- [47] 【社会化设计】自我(self)部分――欢迎区
- [46] 读书笔记-壹百度:百度十年千倍的29条法则
- [36] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑