Я уже давно использую шаги командной строки, чтобы создать ipa приложения для iOS. Я боялся обновить ОС моей системы сборки до High Sierra, так как каждый раз в прошлом обновление ОС вместе с более новым xCode ломало все с точки зрения автоматизации сборок через командные строки.
Теперь, когда я нахожусь на High Sierra и использую xCode 9.4.1, я не могу сгенерировать .ipa на основе архива.
Следующая команда используется для генерации архива:
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone -configuration Release clean archive -archivePath ./build/archive DEVELOPMENT_TEAM=<TEAM_ID>
Это вылилось бы в файл archive.xcarchive, для которого я затем выполнил бы следующую команду:
xcodebuild -exportArchive -archivePath ./build/archive.xcarchive -exportOptionsPlist ./iOS_ExportOptions_DEV.plist -exportPath ./build/adhoc -allowProvisioningUpdates
Выполнение этой команды завершится с ошибкой:
2018-06-27 11:19:59.789 xcodebuild[27042:735265] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T/Unity-iPhone_2018-06-27_11-19-59.788.xcdistributionlogs'.
2018-06-27 11:20:21.364 xcodebuild[27042:735265] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7f9582c35d20>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
"Error Domain=IDEProvisioningErrorDomain Code=23 \"There are no accounts registered with Xcode.\" UserInfo={NSLocalizedDescription=There are no accounts registered with Xcode., NSLocalizedRecoverySuggestion=Add your developer account to Xcode}",
"Error Domain=IDEProfileLocatorErrorDomain Code=1 \"No profiles for 'com.MY.BUNDLE' were found\" UserInfo={NSLocalizedDescription=No profiles for 'com.MY.BUNDLE' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.MY.BUNDLE'.}"
)}
error: exportArchive: There are no accounts registered with Xcode.
Error Domain=IDEProvisioningErrorDomain Code=23 "There are no accounts registered with Xcode." UserInfo={NSLocalizedDescription=There are no accounts registered with Xcode., NSLocalizedRecoverySuggestion=Add your developer account to Xcode}
error: exportArchive: No profiles for 'com.MY.BUNDLE' were found
Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'com.MY.BUNDLE' were found" UserInfo={NSLocalizedDescription=No profiles for 'com.MY.BUNDLE' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'com.MY.BUNDLE'.}
** EXPORT FAILED **
Снова эта команда, чтобы взять архив и экспортировать ipa, работающий в Sierra под управлением xCode 9.1. Все положения на машине, а также необходимые сертификаты разработчика. Кроме того, я вошел в систему с моими учетными записями разработчиков в xCode. Самое большое раздражение во всем этом - то, что я могу вручную архивировать и создавать ipas, которые я могу отправить в itunes connect прямо в xCode, и все это работает.
Наконец, вот мой файл iOS_ExportOptions_DEV.plist:
<!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>ad-hoc</string>
<key>teamID</key>
<string>TEAM ID</string>
</dict>
</plist>
Если кто-то сталкивался с этим, пожалуйста, дайте мне знать, как вы решили это.