App Store 审核应用时出现包含 bitcode 的报错
谈到bitcode 我们首先要知道这个是干什么的?
Bitcode的作用主要有三点:优化二进制文件、适配新架构、减小应用体积。
1.优化二进制:当你的项目上传到苹果商店后,后台会根据当前安装的设备型号或者是系统版本进行对应的优化处理,而无需开发者再手动在上传其他的版本
2.适配新架构:现在的大部分移动端设备都是arm64的 但是早期还有些比较早的项目是x86也就是32位系统的,x64,64位系统,后台也会根据这部分进行针对的自适配,以达到最佳的适配效果,同时该属性也为现代苹果的M系列做了优化适配,以及未来的新的处理器架构
3.减小应用体积:参考2中所描述的,根据不同的处理器架构及系统进行动态优化版本和压缩大小
Frameworks/OpenSSL.frameworkOpensSL' contains bitcode首先看下这个错误,以上只是我在项目提交时遇到的,其中,Xcode16 报错情况较多。其他sdk也可能会遇到,出现这种错误我的意见是先更新下库到最新版本,一般就可以解决,因为新版的库都会做相应的移除掉这个属性,如果遇到升级库有项目兼容问题,那么就用下面的方法直接移除掉,
Bitcode 是一种中间表示形式,在 Xcode 中打包提交到 App Store 审核时,如果出现包含 Bitcode 的报错,这通常意味着您的应用没有正确包含 Bitcode。Bitcode 是苹果的一项要求,它允许苹果在 App Store 中对您的应用进行进一步的优化。
当提交应用到 App Store 时出现与 Bitcode 相关的问题,您需要手动移除 framework 中的 Bitcode。framework 是指 macOS 和 iOS 项目中的一个软件框架,它是一种包含代码、资源和其他文件的包,用于实现特定的功能或服务。framework 通常用于提供应用程序的某些部分,如用户界面元素、数据处理功能或其他服务。
xcrun bitcode_strip -r ${framework_path} -o ${framework_path}假设您有一个名为 OpenSSL.framework 的 framework,并且它位于 /path/to/~/OpenSSL.framework 路径,那么您可以按照以下方式处理:
通过
cd命令进入到 OpenSSL.framework 的路径。如果是通过
pod install获取的 SDK,则进入pods文件夹。执行以下命令检查 framework 是否包含 bitcode,返回
0即为不包含。
otool -l OpenSSL | grep __LLVM | wc -l如果检测结果不是 0,则继续执行以下命令移除 OpenSSL.framework的 Bitcode。
xcrun bitcode_strip -r OpenSSL -o OpenSSL