使用CocoaPods进行开发的一些问题及策略
2016-01-09 09:41
323 查看
在iOSApp开发过程中提PR占去的时间较多,现就开发中常见的问题及解决策略做小小结:
pod install过程中出现依赖库版本冲突。
策略:对版本号不一致的pod的Podfile进行依赖库版本号升级。
pod install后,build过程中某些被引用的头文件找不到源。
这可能是一个需求多个pod同时本地开发造成的。
解决策略:大致确定找不到源的头文件所在的pod,然后在Podfile中暂时以commit号的形式引入包含头文件的pod。如果找不到头文件所属的pod,且被引用头文件是新加入到文件中的,可以通过blame看到是谁引入该头文件,然后问下对应的同事。
避免发生该问题的策略:在每次多pod开发过程中,功能开发完成后,对于依赖别的pod的独立工程(pod)进行pod install,然后运行一遍,确定该独立工程是能够运行的,然后再提PR。
以tag号进行发版的pod,当有新功能加入时,必须更新版本号,依赖该pod的其他独立pod才能使用新功能。使用
(不像
如果发版的pod仅更新了远程仓库,还没来得及更新版本号,而这时别的pod开发急需用到待发版pod的新功能,可以利用commit号将待发版pod引入开发工程中,进行开发。
由于现在大部分pod已经独立化,对于独立工程开发,可以仅在独立工程中开发。
未独立化pod开发流程:
1.拉下主工程和待开发pod
2.将主工程Podfile中待开发pod的路径指向本地待开发pod。
3.在主工程中开发,完成后,切到待开发pod文件加下,提交完成的代码。
pod install过程中出现依赖库版本冲突。
策略:对版本号不一致的pod的Podfile进行依赖库版本号升级。
pod install后,build过程中某些被引用的头文件找不到源。
这可能是一个需求多个pod同时本地开发造成的。
解决策略:大致确定找不到源的头文件所在的pod,然后在Podfile中暂时以commit号的形式引入包含头文件的pod。如果找不到头文件所属的pod,且被引用头文件是新加入到文件中的,可以通过blame看到是谁引入该头文件,然后问下对应的同事。
避免发生该问题的策略:在每次多pod开发过程中,功能开发完成后,对于依赖别的pod的独立工程(pod)进行pod install,然后运行一遍,确定该独立工程是能够运行的,然后再提PR。
以tag号进行发版的pod,当有新功能加入时,必须更新版本号,依赖该pod的其他独立pod才能使用新功能。使用
pod update 该pod,并不会更新到新的commit,因为是以tag号为准。
(不像
:branch => 'branch名称',此时用
pod update 该pod,会尽量更新到该pod的最新commit)。
如果发版的pod仅更新了远程仓库,还没来得及更新版本号,而这时别的pod开发急需用到待发版pod的新功能,可以利用commit号将待发版pod引入开发工程中,进行开发。
由于现在大部分pod已经独立化,对于独立工程开发,可以仅在独立工程中开发。
未独立化pod开发流程:
1.拉下主工程和待开发pod
2.将主工程Podfile中待开发pod的路径指向本地待开发pod。
3.在主工程中开发,完成后,切到待开发pod文件加下,提交完成的代码。
相关文章推荐
- iOS开发 UI 加深理解UIView,UIResponder,UIController
- 三国武将查询系统 //Java 訪问 数据库
- [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/test-easy-install-1433.pth'
- jstack命令
- 插入排序
- Spring mvc框架搭建
- [示例]NSDictionary编程题-字典的排序应用(iOS7班)
- [示例]NSDictionary编程题-字典的排序应用(iOS6班)
- 数组遍历
- linux挂载命令mount-43
- python定时下载FTP指定文件
- UI基础
- POJ 3617 Best Cow Lin
- 【Unity Shader】一个用于手游的次世代角色Shader
- [示例]NSDictionary编程题-字典的排序应用(iOS5班)
- android数据存储
- IT痴汉的工作现状16-职业发展
- 数组排序-冒泡法
- PHP中的数组处理函数实例总结
- 项目知识点.Part1