Xcode 7 GM создал универсальный архив вместо архива приложений iOS

Недавно я начал использовать Xcode 7 GM. Когда я архивирую свой проект, я получаю общий архив Xcode вместо архива iOS.

Я пробовал почти все следующее:

Я сравнил содержимое предыдущего успешного архива и другую структуру папок для некоторых компонентов:

  • Библиотеки Swift находятся в подпапке
  • Расширение приложения находится за пределами пакета .app
  • Отсутствует ключ info.plist

введите описание изображения здесь

Кто-нибудь еще сталкивается с этой проблемой? Если да, то решились ли вы и как?

Изменить

Мы используем Cocoapods 0.38.2

Ответ 1

OP здесь. Члены моей команды все пробовали бета-версию Cocoapods, и она исправила проблему для нас. Поэтому я собираюсь принять свой собственный ответ.

Хотя это может решить проблему, я считаю, что Christian Navelot ответит, что он не будет масштабируемым и, безусловно, не поддается управлению внутри команды.

Кроме того, мы все пытались использовать бета-версию cp без удаления фазы сборки Copy Pod Resources. Это означает, что я не буду принимать ответ Тодда Андерсона.

Мы также не используем статические библиотеки, мы используем фреймворки (aka use frameworks! внутри подфайла).

Спасибо всем, кто внес свой вклад в этот вопрос. Похоже, мы все попали в одну лодку по Xcode 7! Ура!

Ответ 2

Я добавляю ту же проблему: старый проект Xcode, Xcode 7 (а не GM, версия App Store) и Cocoapods. Я много тренировался, безуспешно использовал Cocoapds 0.39 b3 и b4, изменил параметры в настройках Build, но, наконец, для меня проблема была показана mrezk в https://github.com/CocoaPods/CocoaPods/issues/4021:

Отсутствует ApplicationProperties в Info.plist

Поскольку я не привык к работе с Info.plist и этими ключами, я нашел в форумах Apple Dev очень полезный ответ: https://forums.developer.apple.com/thread/17063

В общем, для новичков info.plist, таких как я;):

  • Архивный проект
  • Организатор покажет общий архив Xcode
  • Щелкните правой кнопкой мыши, Показать в поиске
  • Щелкните правой кнопкой мыши, покажите содержимое пакета
  • Откройте файл Info.plist в редакторе XML
  • Поскольку mochs указывает, добавьте эти строки в раздел:
<key>ApplicationProperties</key>  
<dict>  
  <key>ApplicationPath</key>  
  <string>Applications/<<APP_NAME>>.app</string>  
  <key>CFBundleIdentifier</key>  
  <string><<BUNDLE_IDENTIFIER>></string>  
  <key>CFBundleShortVersionString</key>  
  <string><<YOUR_MARKETING_NUMBER>></string>  
  <key>CFBundleVersion</key>  
  <string><<YOUR_BUILD_NUMBER>></string>  
  <key>SigningIdentity</key>  
  <string>iPhone Distribution: <<CERTIFICATE_NAME>> (<<CERTIFICATE_ID>>)</string>  
</dict>

и замените теги своими собственными значениями.

Сохранить, закрыть Xcode, дважды щелкнуть по архиву: он должен открыть в Organizer в виде архива типа iOS.

Благодаря mrezk и mochs для решения.

Ответ 3

В моем случае исправление установки сборки "Installation Directory" во всех статических библиотеках устранило проблему. Ранее он был установлен в /usr/local/lib.

При использовании "Сохранить встроенный продукт" в качестве метода экспорта папка "Продукты" получила эти подкаталоги. Это то, что указывало мне в этом направлении.

Я использую cocoapods 0.38.2.

Ответ 4

Другие ответы, упомянутые здесь, были временными исправлениями, но каждое требуемое ручное усилие либо после каждого архива, либо после каждого pod install.

Новое, лучшее решение - обновить cocoapods до последней версии и удалить фазу сборки "Copy Pod Resources" из каждого расширения приложения.

Подробнее см. https://github.com/CocoaPods/CocoaPods/issues/4021.

Ответ 5

У меня была аналогичная проблема с XCode7.1.1 и проектом приложения с WatchKit Extension. Я исправил проблему на следующем шаге

  • Откройте "Настройки сборки" моей целевой задачи и установите НЕТ в "Пропустить установку".

  • Откройте "Настройки сборки" моей целевой цели WatchKit и установите YES на "Пропустить". Установить "

  • Откройте настройки сборки для моего приложения WatchKit App и установите YES на "Пропустить Установить "

Тогда я мог бы сделать iOS-архив.