首页 > 解决方案 > 如何在 2019 年使用正确的配置文件通过命令行构建 Xcode 项目?

问题描述

我想为 Unity自动化ios 构建。第一部分没有问题。它使用 xcodeproj 文件为 xcode 生成了一个完整的文件夹。

我的目标是编写一个脚本来构建我的项目并将其上传到 appstore 的试飞。我已经设法使用以下命令获取 .ipa 文件:

xcodebuild -project Unity-iPhone.xcodeproj -scheme "Unity-iPhone" -sdk iphoneos -configuration Release archive -archivePath export/build/ts2.xcarchive
xcodebuild -exportArchive -archivePath export/build/ts2.xcarchive -exportOptionsPlist info.plist -exportPath export/build -allowProvisioningUpdates

但是,当我尝试使用 altool 上传它时,它引发了关于使用错误的配置文件的错误。确实,它具有开发配置文件而不是分发配置文件。如何指定在签名时使用哪一个?

不幸的是,xcode 经常改变他们的方式来做到这一点,以至于所有关于这个无用的在线资源

标签: iosxcodeunity3dxcodebuild

解决方案


您可以创建一个 .plist,其中包含用于分发的配置文件。-exportOptionsPlist然后在参数中指向它。

如果要在脚本中动态执行此操作,可以像这样生成 .plist

    cat > "$BUILD_DIRECTORY/exportOptions.plist" <<EOF
<?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>method</key>
    <string>$EXPORT_METHOD</string>
    <key>provisioningProfiles</key>
    <dict>
        <key>$BUNDLE_IDENTIFIER</key>
        <string>$PATH_TO_PROVISION_PROFILE</string>
    </dict>
</dict>
</plist>
EOF

然后在-exportArchive步骤点上-exportOptionsPlist "$BUILD_DIRECTORY/exportOptions.plist"

对于 App Store,$EXPORT_METHOD应该是app-store,但如果需要,您可以将其扩展为enterprisead-hoc并替换为相应的配置路径。

(PS我不使用-allowProvisioningUpdates所以你可以尝试删除它。)


推荐阅读