Архив xcodebuild не проходит проверку ITMS

Наше приложение имеет приложение watchkit + расширение. Архивы из XCode IDE всегда проходят проверку в магазине iTunes. Однако архивы, созданные с помощью командных инструментов xcodebuild (Xcode 6.4; версия сборки 6E35b), не проходят эту проверку со следующими ошибками:

ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'aps-environment' in 'Payload/TheDodo.app/PlugIns/DodoExtension.appex/DodoExtension'."

ERROR ITMS-90164: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. According to the provisioning profile, the bundle contains a key value that is not allowed: '##########.###.##########.######' for the key 'application-identifier' in 'Payload/TheDodo.app/PlugIns/TheDodoWatchKitExtension.appex/TheDodoWatchKitExtension'"

ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'aps-environment' in 'Payload/TheDodo.app/PlugIns/TheDodoWatchKitExtension.appex/TheDodoWatchKitExtension'."

ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value '##########.###.##########.######' for key 'application-identifier' in 'Payload/TheDodo.app/PlugIns/TheDodoWatchKitExtension.appex/TheDodoWatchKitExtension' is not supported. This value should be a string starting with your TEAMID, followed by a dot '.', followed by the bundle identifier."

ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'aps-environment' in 'Payload/TheDodo.app/PlugIns/TheDodoWatchKitExtension.appex/TheDodoWatchKitApp.app/TheDodoWatchKitApp'."

ERROR ITMS-90163: "Invalid Code Signing Entitlements. The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile. The bundle contains a key that is not included in the provisioning profile: 'com.apple.security.application-groups' in 'Payload/TheDodo.app/PlugIns/TheDodoWatchKitExtension.appex/TheDodoWatchKitApp.app/TheDodoWatchKitApp'."

Makefile для архивации и экспорта выглядит примерно так:

/usr/bin/xcodebuild -verbose -verbose -workspace 'rebelmouse.xcworkspace'  -scheme TheDodo -configuration "App Store" -sdk 'iphoneos' -archivePath /tmp/TheDodo.xcarchive -derivedDataPath /tmp/ROJECT.Ji9vwyH0 APPLICATION_BUILD_VERSION=2456 archive

/usr/bin/xcodebuild -exportArchive -exportFormat ipa -archivePath /tmp/TheDodo.xcarchive -exportPath /tmp/TheDodo.ipa -exportWithOriginalSigningIdentity

Любое предложение / помощь очень ценится. Заранее спасибо.


person Sandeep Chayapathi    schedule 13.08.2015    source источник
comment
Вы нашли решение этой проблемы? сижу с такой же проблемой...   -  person Mattias Farnemyhr    schedule 26.08.2015
comment
Пока нет решения, надеюсь, XCode 7 решит эту проблему. Задал тот же вопрос на форумах Apple, и был такой ответ - forums.developer.apple.com/thread/ 14378   -  person Sandeep Chayapathi    schedule 26.08.2015
comment
Интересный ответ. Однако, к сожалению, решения так и не нашлось. Спасибо.   -  person Mattias Farnemyhr    schedule 27.08.2015


Ответы (2)


Отвечаю на это на случай, если кто-то еще застрял в той же лодке.

С Xcode 7.0 xcodebuild получил новую опцию командной строки для экспорта архива, а именно exportOptionsPlist , это занимает полный путь к plist, который настраивает архив.

Вам больше не нужно устанавливать -exportFormat

xcodebuild --help перечисляет детали plist.

Для корпоративных сборок я использую этот plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>enterprise</string>
</dict>
</plist>

Для сборок App Store замените enterprise на app-store.

person Sandeep Chayapathi    schedule 27.10.2015

сообщите xcodebuild имя используемого профиля обеспечения вместо его «автоматического поиска»:

 xcodebuild -exportArchive -exportFormat ipa -archivePath "FOLD/FILE.xcarchive" -exportPath "FOLD/FILE.ipa" -exportProvisioningProfile "NAME" > /dev/null || exit 1
person Daij-Djan    schedule 18.08.2015
comment
к сожалению, это не сработает, если приложение имеет расширение Watchkit, поскольку оба они используют разные профили подготовки. - person Sandeep Chayapathi; 18.08.2015
comment
Ах хорошо. Тогда спасибо ???? - person Daij-Djan; 18.08.2015