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

Unity iOS项目:命令行导出Xcode归档时禁用UnityFramework签名

解决Unity iOS项目命令行企业版导出时UnityFramework签名报错问题

我之前在CI/CD流水线中集成Unity iOS项目的企业版导出时,也遇到过完全一样的问题——Xcode手动导出一切正常,但命令行用xcodebuild就会报UnityFramework.framework does not support provisioning profiles的错误。下面是几个亲测有效的解决方案:

方案1:切换到自动签名模式(最推荐)

Xcode手动导出时能顺利跳过UnityFramework的配置文件检查,本质是它用了自动签名逻辑来处理不同目标的签名需求。我们只需要修改exportOptions.plist,把签名风格改成自动,让Xcode自动处理框架的签名:

更新后的exportOptions.plist内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>destination</key>
    <string>export</string>
    <key>method</key>
    <string>enterprise</string>
    <key>teamID</key>
    <string>XXXXXXXX</string>
    <key>signingStyle</key>
    <string>automatic</string>
    <!-- 可选:如果Xcode自动匹配企业版profile有问题,可以保留主APP的配置 -->
    <key>provisioningProfiles</key>
    <dict>
        <key>com.inhouse.test</key>
        <string>In House Test Profile</string>
    </dict>
</dict>
</plist>

修改后重新执行你的导出命令,Xcode会像手动操作时一样,自动识别UnityFramework不需要provisioning profile,顺利完成导出。

方案2:手动指定框架跳过签名检查(适合必须用手动签名的场景)

如果你的流水线必须使用手动签名模式,可以在导出命令中添加额外参数,单独给UnityFramework设置签名规则:

xcodebuild -exportArchive \
  -exportOptionsPlist /path/exportOptions.plist \
  -archivePath '/pathToArchive' \
  -exportPath /exportPath \
  -allowProvisioningUpdates \
  CODE_SIGN_REQUIRED[UnityFramework]=NO \
  CODE_SIGN_STYLE[UnityFramework]=Automatic

这里通过CODE_SIGN_REQUIRED[UnityFramework]=NO告诉Xcode不需要验证UnityFramework的签名,同时设置它的签名风格为自动,这样就能绕过报错,同时保持主APP的手动签名配置不变。

方案3:修改归档内的框架构建设置(备选方案)

如果前两个方案都不生效,你可以在归档之后、导出之前,手动修改UnityFramework的构建设置:

  1. 先解压归档文件(.xcarchive其实是一个特殊的文件夹):
cd /path/to/archive/dir
unzip -q YourAppArchive.xcarchive
  1. 找到UnityFramework的构建设置文件(一般在Products/Library/Frameworks/UnityFramework.framework/Info.plist或者归档内的xcarchive/Products/Applications/YourApp.app/Frameworks/UnityFramework.framework/Info.plist),添加或修改以下键值对:
<key>CODE_SIGN_REQUIRED</key>
<string>NO</string>
<key>CODE_SIGN_STYLE</key>
<string>Automatic</string>
  1. 重新打包成.xcarchive格式,再执行导出命令。

这个方法步骤相对繁琐,一般作为前两个方案的备选。

问题根源

当使用signingStyle=manual时,xcodebuild会强制给归档中的所有目标(包括主APP和嵌入式框架)应用指定的provisioning profile,但UnityFramework作为嵌入式框架,本身不需要独立的配置文件——Xcode手动导出时会自动识别这一点,但命令行的手动签名模式没有这个智能判断,因此触发了报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 06:57:42