iOS 2025年apple打包要求,xcode16

apple官方的公告:
SDK 最低要求
自此日期起: 2025 年 4 月 24 日
上傳至 App Store Connect 的 App 必須使用 Xcode 16 或更高版本以及適用于 iOS 18、iPadOS 18Apple tvOS 18、visionOS 2watchOS 11 的 SDK 來構(gòu)建。
(xcode16對應的macOS系統(tǒng):macOS Sequoia 15.2 或更高版本。)

會出現(xiàn)的問題:

升級Xcode后打包,可能會出現(xiàn)bitcode問題:
網(wǎng)易云信的庫報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 即為不包含。

以網(wǎng)易云信的NIMSDK.framework為例:
1,通過 cd 命令進入到 NIMSDK.framework 的路徑(framework里面)
2,執(zhí)行命令檢查 framework 是否包含 bitcode
3,如果包含則執(zhí)行命令移除bitcode


示例

二.pod集成的項目

對于cocoapods集成的文件,可以用podfile文件統(tǒng)一處理
在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",]
# 執(zhí)行命令
framework_paths.each do |path|
    strip_bitcode_from_framework(bitcode_strip_path, path)
  end
end
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容