Xcode 6 позволяет вам экспортировать .ipa из архива для распространения adhoc сборок. Раньше требовалось иметь правильный provisioning profile и distribution certificate на вашем ПК. Начиная с Xcode 6 вам надо быть членом команды в Developer Program account и у вас должны быть права делать distribution build. Это означает, что вам надо быть team agent.
Сборка через xcodebuild
Начинаем с очистки
xcodebuild clean -project $projectname.xcodeproj -configuration Release -alltargets
Далее скрипт собирает и архивирует приложение. Используем параметр -archivePath для указания пути архива.
xcodebuild archive -project $projectname.xcodeproj -scheme $schemename -archivePath $projectname.xcarchive
Наконец экспортируем архив в файл .ipa.
xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile “Provisioning Profile Name”
Provisioning profile заключает в себе signing identity, но вы можеет указать его через параметр -exportSigningIdentity.
Подводные камни
Можно потратить много времени на указание корректного значения для параметра -exportProvisioningProfile. Я вначале думал, что это должно быть имя файла для provisioning profile. Я пробовал с и без расширения .mobileprovision, но не сработало. Я указывал относительный и абсолютный путь, но тщетно. Я даже пытался использовать UUID для provision profile вместо имени файла.
Оказалось, что надо использовать имя the provisioning profile так, как он называется в provisioning portal(account).
PS: краткий перевод статьи