Создайте приложение iOS и распространяйте .ipa через TestFlight с Jenkins и Xcode 7

Apple выпустила обновление Xcode 7, которое сломало все снова.

Раньше нам приходилось иметь дело с

ResourceRules.plist: невозможно прочитать ресурсы

с помощью описанного хакера, например здесь. Некоторые люди удивляются, почему это даже произошло в первую очередь.

Однако при обновлении Xcode 7 они запретили использование Code Signing Resource Rules Path, указав эту ошибку, когда этот параметр установлен:

ОШИБКА ITMS-90339: "Этот пакет недействителен. Info.plist содержит недопустимый ключ" CFBundleResourceSpecification" в пакете

Этот question относится именно к этой проблеме с ответом, предлагающим удалить эту опцию из настроек сборки. Угадайте, что после удаления первая ошибка появляется, поэтому мы оказываемся в цикле.

Мой вопрос (конечно, как мы пришли в этот беспорядок, конечно):

Как мы исправим обе проблемы, поэтому iOS-здание работает в Jenkins и Xcode 7 с последующей загрузкой TestFlight?

Ответ 3

Я исправил ту же проблему, изменив настройки сборки Jenkins: Перейдите в раздел Конфигурация > Дополнительные параметры сборки Xcode и добавьте в Пользовательские аргументы xcodebuild

CODE_SIGN_RESOURCE_RULES_PATH = $(SDKROOT)/ResourceRules.plist

Ответ 4

Эти две команды отлично работали для меня:

  • Создать архив: xcodebuild -workspace "/path/to/something.xcworkspace" -схема "некоторая корпоративная" -конфигурация Release -CODE_SIGN_IDENTITY = "ваша личность" PROVISIONING_PROFILE = "61xyz111 -22x0-2345-123x-xyxxxxxx" archive -archivePath "/where/you/want/the/archive/xyz.xcarchive"

  • Создать IPA: xcodebuild -exportArchive -exportFormat IPA -exportProvisioningProfile "Имя вашего профиля" -archivePath "/where/you/saved/the/archive/xyz.xcarchive" -exportPath "/where/you/want/the/IPA/xyz.ipa"