我想自动化用于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经常改变其执行方式,从而使与此有关的所有在线资源无用
答案 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
,但是您可以将其扩展到enterprise
,ad-hoc
(如果需要),并替换为各自的供应路径。 / p>
(请注意,我不使用-allowProvisioningUpdates
,所以您可以尝试将其删除。)