如何在 2019 年使用正确的配置文件通过命令行构建 Xcode 项目?
How to build an Xcode project through command line in 2019 with the right provisioning profile?
我想自动化 ios Unity 构建。第一部分不是问题。它使用 xcodeproj 文件为 xcode 生成了整个文件夹。
我的目标是编写一个脚本来构建我的项目并将其上传到应用商店的试飞。我设法使用这些命令获得了一个 .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 经常改变他们这样做的方式,以至于使所有关于此的在线资源变得无用
您可以创建一个包含用于分发的配置文件的 .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
,但如果需要,您可以将其扩展为 enterprise
、ad-hoc
,并替换为相应的配置路径.
(P.S。我不使用 -allowProvisioningUpdates
所以你可以尝试删除它。)
我想自动化 ios Unity 构建。第一部分不是问题。它使用 xcodeproj 文件为 xcode 生成了整个文件夹。
我的目标是编写一个脚本来构建我的项目并将其上传到应用商店的试飞。我设法使用这些命令获得了一个 .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 经常改变他们这样做的方式,以至于使所有关于此的在线资源变得无用
您可以创建一个包含用于分发的配置文件的 .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
,但如果需要,您可以将其扩展为 enterprise
、ad-hoc
,并替换为相应的配置路径.
(P.S。我不使用 -allowProvisioningUpdates
所以你可以尝试删除它。)