ios - 如何在 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 经常改变他们的方式来做到这一点,以至于所有关于这个无用的在线资源
解决方案
您可以创建一个 .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
并替换为相应的配置路径。
(PS我不使用-allowProvisioningUpdates
所以你可以尝试删除它。)
推荐阅读
- game-engine - 我可以在执行时安全地更改着色器可见 DescriptorHeap 的内容吗
- reactjs - 网页加载缓慢
- python - matplotlib.pyplot 散点图仅在图中显示单个点,即使具有不同的值
- python - Django查询集按其中一个字段中的项目匹配列表排序
- python - File operations - filtering data from txt file in python
- java - 如何在对象列表中查找对象并通过其 ID 保存 - SpringBoot
- maven - 如何将集成测试工件临时放置到 Jenkins Workspace
- postgresql - 如何为 Liquibase 中的枚举添加新值?
- python - 通过“python -m pip install”安装需求随机抛出 WinError5 异常
- haskell - 数据类型声明中的 a 代表什么?