Новые предупреждения в iOS 9

У меня есть это новое предупреждение о Google Framework в моем приложении:

(null): СРОЧНО: весь биткод будет удален, потому что "/Пользователи/MyName/Library/Mobile Документы/ком ~ яблоко ~ CloudDocs/имя_папки/имя_приложение/GoogleMobileAds.framework/GoogleMobileAds (GADSlot + AdEvents.o)" был построен без битового кода. Вы должны перестроить его с включенным битовым кодом (Настройка Xcode ENABLE_BITCODE), получить обновленную библиотеку из поставщика или отключить бит-код для этой цели. Примечание. Это будет ошибки в будущем.

Xcode 7 дает мне около 204 предупреждений об этой же концепции, и я не мог обойти это. Также у меня есть проблема с доступом к сети из моего приложения. Это ошибка из области отладки:

-canOpenURL: не удалось URL: "kindle://home" - ошибка: "Это приложение не разрешено запрашивать схему разжечь"

Все эти проблемы отсутствовали в iOS 8.

Ответ 1

Ваша библиотека была скомпилирована без битового кода, но опция битового кода включена в настройках вашего проекта. Скажите NO - Enable Bitcode в целевых настройках сборки и настройках библиотеки, чтобы удалить предупреждения.

Для тех, кто задается вопросом, нужен ли разрешающий биткод:

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

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

Ответ 2

После Xcode 7 опция биткода будет включена по умолчанию. Если ваша библиотека была скомпилирована без битового кода, но опция битового кода включена в ваших настройках проекта, вы можете:

  • Обновите свою библиотеку с помощью битового кода,
  • Скажите "НЕТ" включить "Биткод" в ваших настройках сборки

Enter image description here

И настройки библиотеки для удаления предупреждений.

Для получения дополнительной информации перейдите в документацию по биткоду в библиотеке разработчика.

И WWDC 2015 Сессия 102: "Платформы состояния Союза"

Enter image description here

Ответ 3

В моем случае для избежания этой проблемы:

  • Убедитесь, что вы имеете дело с Xcode 7, а не с более низкими версиями. В нижней версии этот флаг не существует.

  • Настройка: Проект > Параметры сборки > Все > Параметры сборки > Включить биткод = НЕТ

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

Ответ 4

Метод canOpenUrl находится в iOS 9 (из-за конфиденциальности) изменен и не имеет права использовать его больше. Поставщик баннера проверяет установленные приложения, чтобы они не отображали баннеры для уже установленного приложения.

Это дает все операторы журнала, такие как

-canOpenURL: не удалось URL: "kindle://home" - ошибка: "Это приложение не разрешено запрашивать разбор схемы"

Поставщики должны обновить свою логику для этого.

Если вам нужно запросить установленные приложения/доступные схемы, вам необходимо добавить их в ваш файл info.plist.

Добавьте ключ 'LSApplicationQueriesSchemes' к вашему plist как массив. Затем добавьте строки в этот массив, например "kindle".

Конечно, это не вариант для баннеров (так как они динамические), но вы все равно можете запросить этот способ для своих приложений или других приложений, таких как Twitter и Facebook.

Документация метода canOpenUrl: canOpenUrl:

Документация о ключе LSApplicationQueriesSchemes

Ответ 5

Если вы используете CocoaPods и хотите отключить биткод для всех библиотек, используйте следующую команду в подкадре

post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['ENABLE_BITCODE'] = 'NO'
        end
    end
end

Ответ 6

Отказ от ответственности: он предназначен для тех, кто поддерживает рабочий процесс непрерывная интеграция, требующий автоматического процесса. Если вы этого не сделаете, используйте Xcode, как описано в Javier answer.

Это помогло мне установить ENABLE_BITCODE = NO через командную строку:

find . -name *project.pbxproj | xargs sed -i -e 's/\(GCC_VERSION = "";\)/\1\ ENABLE_BITCODE = NO;/g'

Обратите внимание, что это может быть неустойчивым в версиях Xcode. Он был протестирован с Xcode 7.0.1 и в рамках проекта Cordova 4.0.

Ответ 7

Чтобы устранить проблемы с ошибкой canOpenURL. Это связано с тем, что в iOS9 появилась новая функция безопасности при работе с транспортными средствами

Прочитайте это сообщение, чтобы исправить эту проблему http://discoverpioneer.com/blog/2015/09/18/updating-facebook-integration-for-ios-9/

Ответ 8

Эта проблема была недавно исправлена ​​(Nov 2010) Google, см. https://code.google.com/p/analytics-issues/issues/detail?id=671. Но имейте в виду, что в качестве хорошего исправления это приносит больше ошибок:)

Вам также придется следовать приведенному здесь методу инициализации: https://developers.google.com/analytics/devguides/collection/ios/v2.

Последние инструкции будут давать вам головную боль, потому что ссылаются на утилиты, не включенные в состав. Ниже проиграет коко-капод

// Configure tracker from GoogleService-Info.plist.
NSError *configureError;
[[GGLContext sharedInstance] configureWithError:&configureError];
NSAssert(!configureError, @"Error configuring Google services: %@", configureError);