You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

上传App至App Store时遭遇ITMS-90432无效Swift支持错误

解决ITMS-90432:Framework文件类型不符合App Store上传要求

问题背景

我们在为现有App上传新版本构建包时,通过Build Phase脚本将Framework1、Framework2从构建目录复制到MyApp.app/Frameworks目录。本地构建和运行均正常,但上传至App Store时触发ITMS-90432错误,提示这些framework文件类型不符合该位置要求。已确认复制路径正确,Info.plist位置无误,当前使用的运行脚本如下。

错误提示详情

ITMS-90432: Invalid Swift Support - The file MyApp.app/Frameworks/Framework1.framework, MyApp.app/Frameworks/Framework2.framework doesn’t have the correct file type for this location. Ensure you’re using the correct file, rebuild your app using the current public (GM) version of Xcode, and resubmit it.

当前使用的运行脚本

frameworks_used_in_extensions=("Framework1" "Framework2")

# Loop over the array
for MODULE in "${frameworks_used_in_extensions[@]}"
do
    export LIBRARY_SEARCH_PATHS="${LIBRARY_SEARCH_PATHS}":"${SDKROOT}/${MODULE}.framework/"
    cp -Rv "${BUILT_PRODUCTS_DIR}/${MODULE}.framework" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Frameworks/"
    CODE_SIGN_IDENTITY_FOR_ITEMS="${EXPANDED_CODE_SIGN_IDENTITY_NAME}"
    if [ "${CODE_SIGN_IDENTITY_FOR_ITEMS}" = "" ] ; then
        CODE_SIGN_IDENTITY_FOR_ITEMS="${CODE_SIGN_IDENTITY}"
    fi
    codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Frameworks/${MODULE}.framework/${MODULE}"
        
done

解决方法

1. 确认Framework类型为动态库

检查Framework1和Framework2的项目设置:Build Settings -> Mach-O Type,确保值为Dynamic Library。静态库不能放在Frameworks目录下,应直接链接到主App,无需手动复制。

2. 修正代码签名目标路径

当前脚本仅签名Framework内部的二进制文件,而App Store要求对整个Framework目录签名。修改签名命令:

codesign --force --verbose --sign "${CODE_SIGN_IDENTITY_FOR_ITEMS}" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Frameworks/${MODULE}.framework"

3. 改用Xcode自动嵌入机制

若Framework已通过Xcode自动嵌入,手动复制会导致重复触发错误:

  • 将Framework拖入主App项目
  • 在General标签的Frameworks, Libraries, and Embedded Content中,将Framework的Embed选项设为Embed & Sign
  • 移除脚本中的cp复制命令

4. 验证Framework的Info.plist配置

确保Framework的Info.plist中:

  • CFBundlePackageType值为FMWK
  • CFBundleShortVersionString和CFBundleVersion与主App版本兼容

5. 使用正式版Xcode重新构建

使用当前公开GM版本的Xcode(避免Beta版),清理构建缓存(Cmd+Shift+K)后重新构建上传。

内容的提问来源于stack exchange,提问作者Shreesha Kedlaya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:52:37