Проблема с компоновщиком Xcode 7 с SDK Google Maps

Я только что загрузил Xcode 7 beta 4 и пытаюсь создать мое приложение Swift 2.0, но я получаю следующую ошибку, которую я не могу понять:

ld: warning: -weak_framework рассматривается как -framework при использовании с -bitcode_bundle (настройка Xcode ENABLE_BITCODE = YES). Слабая связь может все же произойти в зависимости от наличия разметки в заголовках ld: 'Путь/Бобы/GoogleMaps/Каркасы/GoogleMaps.framework/GoogleMaps (GMSBillingPointRecorder.o)' не содержит битовый код. Вы должны перестроить его с включенным битовым кодом (Настройка Xcode ENABLE_BITCODE), получить обновленную библиотеку из поставщика или отключить бит-код для этой цели. для архитектуры arm64 clang: ошибка: команда компоновщика не удалась с кодом выхода 1 (используйте -v, чтобы увидеть Вызов)

Кто-нибудь знает, как решить эту проблему?

Ответы

Ответ 1

Я изменил флаг ENABLE_BITCODE на No и скомпилирован должным образом благодаря @Visput для ответа

Ответ 2

Значение ENABLE_BITCODE для НЕТ решает проблему.

Для тех, кто задается вопросом, безопасно ли его отключить. Да, это так.

В соответствии с Apple Doc

Биткод (iOS, watchOS)

Биткод - это промежуточное представление скомпилированной программы. Программы вы загружаете в iTunes Connect, которые содержат бит-код, будут скомпилированы и связанных с App Store. Включение битового кода позволит Apple повторите оптимизацию своего бинарного приложения в будущем без необходимости новую версию вашего приложения в магазин.

Xcode по умолчанию скрывает символы, созданные во время сборки, поэтому они Apple не читает. Только если вы решите включить символы, когда загрузив приложение в iTunes Connect, символы будут отправлены на Яблоко. Вы должны включать символы для получения отчетов о сбоях от Apple.

Примечание. Для приложений iOS биткод по умолчанию, но необязательный. если ты предоставить биткод, все приложения и фреймворки в комплекте приложений должны включить биткод. Для приложений watchOS требуется бит-код.

Биткод является частью новых усилий Apple для разбавления приложений. На момент написания этой статьи это необязательно, но потенциально может потребоваться позже. Я думаю, что Apple придает сообществам инфраструктур /libs время.

Изменить: В Xcode 7 вы загружаете приложение в iTunes connect в промежуточном состоянии с именем Биткод. Когда пользователи загружают ваше приложение, App Store автоматически создаст оптимизированную версию вашего приложения (то есть, если потребуется, 64-бит), чтобы соответствовать устройству, которое использует пользователь.

Теперь мы можем отключить биткод и дождаться обновления SDK Google Maps.

UPDATE

SDK 1.11.0 - теперь поддерживает биткод

https://developers.google.com/maps/documentation/ios-sdk/releases?hl=en

Ресурсы

Влияние вариантов сборки Xcode "Включить биткод" Да/Нет

https://developer.apple.com/library/prerelease/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html

https://www.hackingwithswift.com/ios9

Ответ 3

Просто, чтобы быть ясным, где можно отключить биткод: Target → Настройки сборки → Включить биткод → Нет

Отключить биткод

Изображение GIF любезно предоставлено @stevechen

Ответ 4

Google разрешил эту проблему в SDK версии 1.11.0 - декабрь 2015 года. См. примечания к выпуску:

Биткод теперь включен в двоичный файл SDK для всех архитектур устройств. (Проблема 8219).