2015-09-17 2 views
42

Как вы можете отключить биткод для ваших проектов и зависимостей cocoapod? Вот ошибка, которую я получаю при попытке запуска моего проекта с помощью Xcode 7.Отключить биткод для зависимостей проекта и cocoapods от Xcode7?

не содержит бит-код. Вы должны перестроить его с включенным битовым кодом (параметр Xcode ENABLE_BITCODE), получить обновленную библиотеку от поставщика или отключить биткод для этой цели. для архитектуры arm64

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

+0

возможно дубликат [Новые предупреждения в iOS9] (http://stackoverflow.com/a/30856364/3242031) –

ответ

123

Чтобы установить эту настройку таким образом, чтобы не получить переопределен каждый раз, когда вы делаете pod install вы можете добавить к вашему Podfile

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 
+0

Работа совершенная – ravinder521986

+0

Я сделал это, но также должен был отключить биткод в настройках сборки моего проекта. Ни один из них не зафиксировал это для меня. –

2

Перейти к настройкам сборки для цели, которую вы хотите отключить. Искать что-то, что говорит «Enable битового кода», установите его в п

+0

Спасибо! Первоначально он был отключен только для одной из целей. Как только я отключил их все, и я смог построить. – jherg

+0

Проблема с этим ответом заключается в том, что при повторном запуске установки pod вы потеряете настройку. Это нехорошее долгосрочное решение. –

+0

спасибо, его работа .... –

6

Существует способ создания целей CocoaPods с полным битовым кодом. Просто добавьте -fembed-bitcode возможности OTHER_CFLAGS каждый:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 
     cflags << '-fembed-bitcode' 
     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 

Я думаю, что этот путь лучше, чем отключение битового кода.

+0

Почему так лучше? – cberkay

+1

@cberkay Поскольку биткод был введен Apple специально и обеспечивает лучший пользовательский интерфейс, уменьшая время и размер установки. – werediver

1

Основываясь на этом сайте (https://medium.com/@heitorburger/static-libraries-frameworks-and-bitcode-6d8f784478a9) для основы я сделал:

#bitcode enable 
post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['ENABLE_BITCODE'] = 'YES' 

     if config.name == 'Release' 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'bitcode' 
     else 
      config.build_settings['BITCODE_GENERATION_MODE'] = 'marker' 
     end 

     cflags = config.build_settings['OTHER_CFLAGS'] || ['$(inherited)'] 

     if config.name == 'Release' 
      cflags << '-fembed-bitcode' 
     else 
      cflags << '-fembed-bitcode-marker' 
     end  

     config.build_settings['OTHER_CFLAGS'] = cflags 
    end 
    end 
end 
Смежные вопросы