前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS小技能:打包注意事项(私有API检测)

iOS小技能:打包注意事项(私有API检测)

作者头像
公众号iOS逆向
发布2022-12-19 17:30:51
1.1K0
发布2022-12-19 17:30:51
举报
文章被收录于专栏:iOS逆向与安全

I 第三方库管理规范

1.1 管理规范

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

  • 给Podfile指定版本号(可通过Podfile.lock查看项目使用的第三方库基本信息)。
  • 项目的readme文件说明pod update 之后需要修改的内容,比如有些库没有适配最新系统,是需要修改。
  • 如果第三方库由于特殊原因,例如无法拉取的,或者不维护了的,可放到本地目录,作为本地库。

———————————————— 版权声明:本文为CSDN博主「iOS逆向」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/z929118967/article/details/127967565

pod update 之后需要修改的内容

代码语言:javascript
复制
pod 'QMUIKit' ,'4.1.3'

QMUIKit在iOS14 下首次唤起键盘卡住主线程

解决方案:由于没使用QMUITheme,就直接注释掉以下代码即可。搜索 #import "UITraitCollection+QMUI.h",在load进行return

代码语言:javascript
复制
@implementation UIWindow (QMUIUserInterfaceStyleWillChangeNotification)

#ifdef IOS13_SDK_ALLOWED
+ (void)load {
    
    return ;
}

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

解决方案:如果你没使用QMUITheme,就直接注释掉代码即可。

1.2 查第三方SDK是否用私有API

例子:查询setMediaObject:

grep -r "setMediaObject"

代码语言:javascript
复制
➜  retail git:(develop) grep -r "setMediaObject"
Binary file ./retail.xcworkspace/xcuserdata/mac.xcuserdatad/UserInterfaceState.xcuserstate matches
Binary file ./Pods/GDTMobSDK/lib/libGDTMobSDK.a matches
# 移除优量汇libGDTMobSDK即可

解决方案:升级/替换第三方SDK。

案例:iOS安全之UIWebView 被拒的解决方案:用更安全的WKWebView替代UIWebViewhttps://kunnan.blog.csdn.net/article/details/115673455

II 打包注意事项

2.1 推荐使用Xcode进行检测和上传

Transporter 不提示隐私API,因此推荐使用Xcode进行检测和上传。否则如果存在私有API时,TestFlight安装时会出错。

2.2 包含扩展项目的注意事项

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

常见错误:

2.3 sign 的配置

推荐使用自动管理证书

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

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

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

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

在这里插入图片描述

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

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

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

2.4 上线前使用TestFlight测试,来确保发布的包是经过测试的。

如果开发和上线打包不同人操作的,那么TestFlighty的使用成为测试的同事的必备技能。

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

  1. iOS开发者账号管理员添加测试员

选择最多 100 名测试员,系统将邀请他们在 TestFlight App 中测试所有可用的构建版本。在添加新构建版本时,他们也会收到通知。如果没有看到您想添加的测试员,请前往用户和职能进行添加。

  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.

see also

公众号:iOS逆向

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • I 第三方库管理规范
    • 1.1 管理规范
      • 1.2 查第三方SDK是否用私有API
      • II 打包注意事项
        • 2.1 推荐使用Xcode进行检测和上传
          • 2.2 包含扩展项目的注意事项
            • 2.3 sign 的配置
              • 2.4 上线前使用TestFlight测试,来确保发布的包是经过测试的。
              • see also
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档