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-архив.