iOS第三方库管理规范:以Cocoapods为案例

简介: iOS第三方库管理规范:以Cocoapods为案例

引言

为了能更好的协作管理项目,今天分享下第三方库管理规范

  1. 查看Podfile.lock,给Podfile指定版本号,
  2. 有些第三方库不存在了,需要放到本地目录,作为本地库。
  3. 指明拉取项目之后,pod update之后需要修改的内容,因为有些库是需要修改的才可使用。

I、第三方库管理规范

1.1 修改.gitignore 将Pods目录忽略

将Pods目录忽略的原因很多,这里就简单举例几个

  1. mac 的pod版本不一样导致拉下来的代码pod报路径问题
  2. 减少仓库大小
  3. 由于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 代码分支管理教程

https://kunnan.blog.csdn.net/article/details/112610462

1.2 给Podfile指定版本号

通过查看Podfile.lock,给Podfile指定版本号

II、将下线的第三方库作为本地库集成到项目

2.2 富文本库

将ChainAttributedString转为本地库,对本库感兴趣可关注公众号:iOS逆向

image.png

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 包含扩展的项目

  1. 扩展的version和build 和主app一样
  2. bundle ID 和主app的前缀一
  3. 扩展的签名证书和主app的签名证书保持一致,推荐采用自动管理

常见错误:

image.png

4.2 sign 的配置

推荐使用自动管理证书

  1. Profiles只针对真机调试,也就是开发包和Ad Hoc 。
  2. 直接上传appstoreconnect后台的包,

先编译的习惯很好。但是其实你上架只要先clean,直接archive,到时候选择自动管理证书就行了。

打生产包也可以自动管理证书,具体配置如下:

  1. 签名实体 code Signing Identity 不要选择钥匙串具体的证书, 选择iOS DIs 或者iOS Dev

image.png

  1. 证书描述文件 Provisioning Profile 选择 Automatic
  2. 签名证书 Code Signing Identity  选择 Automatic
  3. 开发团队 Development Team  选择你登陆的开发账号即可
CODE_SIGN_IDENTITY = "iPhone Developer";
 CODE_SIGN_STYLE = Automatic;

iOS开发者后台添加了新的UDID,如何更新自动管理签名证书的设备描述文件(Provisioning Profiles)?

https://kunnan.blog.csdn.net/article/details/119114249

V  TestFlight

由于开发和上线打包是分开,所以测试的同事接触TestFlight是必备技能了

  1. iOS开发者账号管理员新建群组

image.png

  1. iOS开发者账号管理员添加测试员
选择最多 100 名测试员,系统将邀请他们在 TestFlight App 中测试所有可用的构建版本。在添加新构建版本时,他们也会收到通知。如果没有看到您想添加的测试员,请前往 用户和职能 进行添加。 image.png
  1. 测试员登陆邮箱获取邀请码

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.

image.png

see also

目录
相关文章
|
网络协议 Swift iOS开发
iOS CocoaPods
iOS CocoaPods
96 0
|
Swift iOS开发 Ruby
iOS CocoaPods 使用以及常见问题(上)
iOS CocoaPods 使用以及常见问题
325 0
|
6月前
|
存储 iOS开发 Perl
ios-解决报错-CocoaPods could not find compatible versions for pod “xxx“
ios-解决报错-CocoaPods could not find compatible versions for pod “xxx“
274 2
|
iOS开发 Perl
iOS Cocoapods 升级
iOS Cocoapods 升级
145 0
|
Swift iOS开发
iOS 第三方库一处引入,处处使用
iOS 第三方库一处引入,处处使用
113 0
|
网络协议 Swift iOS开发
iOS CocoaPods 使用以及常见问题(下)
iOS CocoaPods 使用以及常见问题(下)
182 0
|
JavaScript Android开发 iOS开发
layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能
layui框架实战案例(6):上传图片和视频自动调用IOS或安卓系统的摄像头功能
568 0
|
存储 网络安全 开发工具
iOS如何上传自己的sdk到cocoapods并用pod管理
在Github上创建存储库(前提是得有一个Github账号,如果没有就注册一个)
518 0
iOS如何上传自己的sdk到cocoapods并用pod管理
|
Web App开发 存储 网络协议
ios 组件化之Cocoapods私有库详解以及问题解决方案
ios 组件化之Cocoapods私有库详解以及问题解决方案
ios 组件化之Cocoapods私有库详解以及问题解决方案

热门文章

最新文章

  • 1
    【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
    23
  • 2
    【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
    21
  • 3
    uniapp开发ios打包Error code = -5000 Error message: Error: certificate file(p12) import failed!报错问题如何解决
    141
  • 4
    【05】2025年1月首发完整版-篇幅较长-苹果app如何上架到app store完整流程·不借助第三方上架工具的情况下无需花钱但需仔细学习-优雅草央千澈详解关于APP签名以及分发-们最关心的一篇来了-IOS上架app
    223
  • 5
    app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
    87
  • 6
    深入探索iOS开发中的SwiftUI框架
    143
  • 7
    ios样式开关按钮jQuery插件
    58
  • 8
    Android与iOS生态差异深度剖析:技术架构、开发体验与市场影响####
    74
  • 9
    深入探索iOS与Android操作系统的安全性差异
    102
  • 10
    安卓与iOS开发中的跨平台策略:一次编码,多平台部署
    174