我有一个使用 Unity for iOS 生成的 xCode 项目。
构建完成并生成存档后,我尝试使用 Enterprise 方法从命令行导出存档。
当我直接从 xCode 分发应用程序并进入签名步骤时,我们可以看到:UnityFramework.framework:不需要配置文件。如果我点击下一步,导出将毫无问题地完成,我将有一个 .ipa
问题是我想通过命令行将其作为 CI/CD 管道的一部分来执行。
命令如下:
xcodebuild -exportArchive -exportOptionsPlist /path/exportOptions.plist -archivePath '/pathToArchive' -exportPath /exportPath
这是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>provisioningProfiles</key>
<dict>
<key>com.inhouse.test</key>
<string>In House Test Profile</string>
</dict>
<key>signingCertificate</key>
<string>Apple Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>teamID</key>
<string>XXXXXXXX</string>
</dict>
</plist>
这是错误消息:
错误:exportArchive:UnityFramework.framework不支持配置文件。
我的印象是,我遇到的问题是从命令行有已签名的 UnityDesign.app,但也有不需要配置文件的 UnityFramework.framework。所以我在签名阶段总是遇到同样的错误。
有人有停用 UnityFramework.framework 签名的解决方案或其他解决方案吗?
更新的解决方案:
解决方案是使用 Fatlande
update_code_signing_settings
脚本看起来像这样:
update_code_signing_settings(
path: "./Build_iOS/Unity-iPhone.xcodeproj",
use_automatic_signing: true,
team_id: "TEAM ID",
bundle_identifier: "BUNDLE ID",
code_sign_identity: "iPhone Developer",
targets: "Unity-iPhone"
)
添加
skip_profile_detection: "true"
对我有用。
build_app(scheme: "Unity-iPhone",
export_method: "ad-hoc",
workspace: "Build/IOS/Unity-iPhone.xcworkspace",
output_directory: "Build/IOS/output",
skip_profile_detection: "true",
export_options: "fastlane/DevExportOptions.plist",
output_name: "out.ipa")