如何在2019年通过命令行使用正确的配置文件构建Xcode项目?

时间:2019-05-15 08:37:09

标签: ios xcode unity3d xcodebuild

我想自动化用于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经常改变其执行方式,从而使与此有关的所有在线资源无用

1 个答案:

答案 0 :(得分:1)

您可以创建一个.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(如果需要),并替换为各自的供应路径。 / p>

(请注意,我不使用-allowProvisioningUpdates,所以您可以尝试将其删除。)