引言
为了能更好的协作管理项目,今天分享下第三方库管理规范
- 查看
Podfile.lock
,给Podfile指定版本号, - 有些第三方库不存在了,需要放到本地目录,作为本地库。
- 指明拉取项目之后,
pod update
之后需要修改的内容,因为有些库是需要修改的才可使用。
I、第三方库管理规范
1.1 修改.gitignore 将Pods目录忽略
将Pods目录忽略的原因很多,这里就简单举例几个
- mac 的pod版本不一样导致拉下来的代码pod报路径问题
- 减少仓库大小
- 由于SDK的静态库文件libGDTMobSDK.a>110M, 提交到git 仓库时可能由于文件大小的限制导致提交失败,所以推荐使用.gitignore 将Pods目录忽略。其他同事拉取代码之后,可采用pod install --verbose --no-repo-update只安装新添加的库,已更新的库忽略。或者更新指定的库,其它库忽略 pod update 库名 --verbose --no-repo-update
Pods/
.gitignore只能忽略那些原来没有被追踪的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未被追踪状态),然后再提交,这样就不会出现忽略的文件了。
git清除本地缓存命令git rm -r --cached .
git init git rm -r --cached . git add . git commit -m "first commit" git remote add origin $1 git push -u origin main
git merge 代码分支管理教程
1.2 给Podfile指定版本号
通过查看Podfile.lock
,给Podfile指定版本号
II、将下线的第三方库作为本地库集成到项目
2.2 富文本库
将ChainAttributedString转为本地库,对本库感兴趣可关注公众号:iOS逆向
copy 一份ChainAttributedString代码到本地,在Podfile注释ChainAttributedString,执行pod install --verbose --no-repo-update
#pod 'ChainAttributedString' #转为本地库
头文件引用的修改
//#import <ChainAttributedString/NSMutableAttributedString+Chain.h> #import "NSMutableAttributedString+Chain.h"
2.2 轻量级图表库
Only Line
pod 'ORCharts/Line' # 修改了内部的_or_initailizeUI方法: 请使用knpod 进行更新: #pod update JPush --verbose --repo-update
III、pod update
之后需要修改的内容
3.1 QMUIKit
pod 'QMUIKit' ,'4.1.3'
QMUIKit在iOS14 下首次唤起键盘卡住主线程
解决方案:由于没使用QMUITheme,就直接注释掉以下代码即可。搜索
#import "UITraitCollection+QMUI.h"
,在load进行return
@implementation UIWindow (QMUIUserInterfaceStyleWillChangeNotification) #ifdef IOS13_SDK_ALLOWED + (void)load { return ; }
https://kunnan.blog.csdn.net/article/details/108683061
解决方案:如果你没使用QMUITheme,就直接注释掉代码即可。
IV 打包注意事项
4.1 包含扩展的项目
- 扩展的version和build 和主app一样
- bundle ID 和主app的前缀一
- 扩展的签名证书和主app的签名证书保持一致,推荐采用自动管理
常见错误:
4.2 sign 的配置
推荐使用自动管理证书
- Profiles只针对真机调试,也就是开发包和Ad Hoc 。
- 直接上传appstoreconnect后台的包,
先编译的习惯很好。但是其实你上架只要先clean,直接archive,到时候选择自动管理证书就行了。
打生产包也可以自动管理证书,具体配置如下:
- 签名实体 code Signing Identity 不要选择钥匙串具体的证书, 选择iOS DIs 或者iOS Dev
- 证书描述文件 Provisioning Profile 选择 Automatic
- 签名证书 Code Signing Identity 选择 Automatic
- 开发团队 Development Team 选择你登陆的开发账号即可
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic;
iOS开发者后台添加了新的UDID,如何更新自动管理签名证书的设备描述文件(Provisioning Profiles)?
V TestFlight
由于开发和上线打包是分开,所以测试的同事接触TestFlight是必备技能了
- iOS开发者账号管理员新建群组
- iOS开发者账号管理员添加测试员
选择最多 100 名测试员,系统将邀请他们在 TestFlight App 中测试所有可用的构建版本。在添加新构建版本时,他们也会收到通知。如果没有看到您想添加的测试员,请前往 用户和职能 进行添加。
- 测试员登陆邮箱获取邀请码
https://www.icloud.com/mail/3.1 Get TestFlight from the App Store. 3.2 Open TestFlight and choose Redeem. 3.3 Enter code and start testing.