iOS 2025年apple打包要求,xcode16

apple官方的公告:
SDK 最低要求
自此日期起: 2025 年 4 月 24 日
上传至 App Store Connect 的 App 必须使用 Xcode 16 或更高版本以及适用于 iOS 18iPadOS 18Apple tvOS 18visionOS 2watchOS 11 的 SDK 来构建。
(xcode16对应的macOS系统:macOS Sequoia 15.2 或更高版本。)

会出现的问题:

升级Xcode后打包,可能会出现bitcode问题:
网易云信的库报bitcode问题.jpg

解决方式:

一,单个framework:

xcrun bitcode_strip 是一个命令行工具,用于手动去除对应 framework 的 Bitcode,命令格式如下

xcrun bitcode_strip -r ${framework_path} -o ${framework_path}
//${framework_path} 是一个占位符,表示 framework 的二进制文件路径。在实际使用命令时,您需要将 ${framework_path} 替换为具体的文件路径。

otool -l ${framework_path} | grep __LLVM | wc -l
//此命令是检测framework 是否包含 bitcode,返回 0 即为不包含。

以网易云信的NIMSDK.framework为例:
1,通过 cd 命令进入到 NIMSDK.framework 的路径(framework里面)
2,执行命令检查 framework 是否包含 bitcode
3,如果包含则执行命令移除bitcode


示例

二.pod集成的项目

对于cocoapods集成的文件,可以用podfile文件统一处理
在podfile文件中添加:

post_install do |installer|

# 移除 Bitcode 操作:与上面方案一中的单个framework移除Bitcode同理
def strip_bitcode_from_framework(bitcode_strip_path, framework_relative_path)
    framework_path = File.join(Dir.pwd, framework_relative_path)
    command = "#{bitcode_strip_path} -r  #{framework_path} -o #{framework_path}"
    system (command)
  end
bitcode_strip_path = `xcrun --find bitcode_strip`.chop!
# 以两个nertc的framework为例子:
  framework_paths = ["/Pods/NERtcSDK/NERTC/NERtcSDK/NERtcAiDenoise.framework/NERtcAiDenoise",
                    "/Pods/NERtcSDK/NERTC/NERtcSDK/NERtcAiHowling.framework/NERtcAiHowling",]
# 执行命令
framework_paths.each do |path|
    strip_bitcode_from_framework(bitcode_strip_path, path)
  end
end
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容