У меня есть довольно типичное приложение iOS 8 iOS / ObjC / Xcode 6.4, которое включает расширение WatchKit. У меня нет проблем с ручной отправкой в App Store с помощью Xcode, используя опцию меню «Архив».
Мы используем сервер сборки (Bamboo, но это не имеет значения). Сервер сборки в настоящее время автоматизирует сборки и распространение через HockeyApp, но мы вручную собираем и загружаем в iTunes Connect с помощью Xcode. Мы хотели бы автоматизировать сборки для iTunes Connect, поэтому мы уверены, что одна и та же кодовая база используется как для HockeyApp, так и для iTunes Connect (как TestFlight, так и App Store).
У меня чертовски много времени, чтобы скрипт работал для iTunes Connect, из-за (я полагаю) трех целей, которые нуждаются в подписи (приложение iOS, расширение WatchKit и приложение Watch).
Я нашел этот ответ на связанный вопрос, который оказался очень полезным: https://stackoverflow.com/a/29605731. Это предлагает ввести переменные в настройки профиля обеспечения для трех целей. Это работает для строительства. Но этот вопрос не связан с загрузкой в iTunes Connect, где я вижу проблемы.
Итак, мой сценарий выглядит так:
APP_PROFILE="[the hex string]"
WATCHKITEXT_PROFILE="[another hex string]"
WATCHAPP_PROFILE="[one more hex string]"
Сначала делаю xcarchive:
xcodebuild archive -project myProject.xcodeproj -scheme "myScheme" -archivePath myProject.xcarchive APP_PROFILE="${APP_PROFILE}" WATCHKITEXT_PROFILE="${WATCHKITEXT_PROFILE}" WATCHAPP_PROFILE="${WATCHAPP_PROFILE}"
который отлично работает. Затем экспортирую архив в .ipa:
xcodebuild -exportArchive -archivePath "myProject.xcarchive" -exportPath "myPath" -exportFormat ipa APP_PROFILE="${APP_PROFILE}" WATCHKITEXT_PROFILE="${WATCHKITEXT_PROFILE}" WATCHAPP_PROFILE="${WATCHAPP_PROFILE}"
который также сообщает об успехе. Затем мне нужно отправить .ipa в iTunes Connect с помощью инструмента командной строки Application Loader (здесь я просто проверяю):
altool --validate-app -f "myProject.ipa" -u myUsername -p myPassword
который возвращает этот набор сообщений об ошибках:
Я получаю ту же ошибку, если использую графический интерфейс Application Uploader.
Я уверен, что использую правильные профили в скрипте, так как когда я экспортирую архив в Xcode, это три выбора Xcode (этот экспорт будет подтверждать / отправлять в порядке).
Я не понимаю, где искать дальше. Любая помощь приветствуется - спасибо!
Благодаря предложению @jefflynch в Twitter, я сравнил два .ipa немного больше, чем раньше. Версия Xcode имела файл archived-extended-sizes.xcent, отсутствующий в xcodebuild .ipa. Я переместил это, и он прошел проверку. Держать это открытым, пока я не подтвердю, что это реальное решение, а не просто маскировка другой проблемы ...