Параметры XCODE 7 и ENABLE_BITCODE = YES не работают

Я выполнил несколько потоков вокруг нового параметра ENABLE_BITCODE в Xcode, также попытался как можно больше (признал, что я не xcode pro), но все еще не могу скомпилировать проект для использования на моем тестовом телефоне?

Мое приложение отлично работает на симуляторе, но я не могу развернуть его на своем iPhone для тестирования. На последнем я только что установил бета-версию iOS 9.

Теперь вот сообщение об ошибке, которое я получаю. Похоже, что настройка не влияет на PARSE.com lib, которая является частью моего проекта? Как я могу запустить мой проект на свой телефон? Спасибо за любые советы.

    Ld /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-  bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse normal armv7
cd /Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods
export IPHONEOS_DEPLOYMENT_TARGET=8.0
export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -L/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse -F/Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods -filelist /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse.LinkFileList -install_name @rpath/Parse.framework/Parse -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=8.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseLib -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -ObjC -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1 -Xlinker -dependency_info -Xlinker /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Intermediates/Pods.build/Debug-iphoneos/Pods-Parse.build/Objects-normal/armv7/Parse_dependency_info.dat -o /Users/xxxxxx/Library/Developer/Xcode/DerivedData/graffiti-bnmizxueojwiqcbbnsvilljhosrw/Build/Products/Debug-iphoneos/Pods/Parse.framework/Parse

---
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: warning: -weak_framework is treated as -framework when used with -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES). Weak linking may still happen based on availability mark-up in headers
ld: '/Users/xxxxxx/Documents/DigitalTempusDev/graffiti/Pods/Parse/libParseLib.a(PFSQLiteDatabase.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Ответ 1

Вы уверены, что выбрали от Enable Bitcode до NO от используемой конфигурации конфигурации (например, DEBUG)? Вы можете проверить это в настройках проекта- > target- > build- > search Enable Bitcode → set NO в DEBUG (хорошо помнить, чтобы попытаться обновить библиотеки до тестовой версии, возможно, она будет содержать бит-код уже). Затем Edit Scheme → Run → проверьте, есть ли DEBUG config atm.

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

Ответ 2

Обратите внимание, что для проектов, использующих CocoaPods, вы должны установить ENABLE_BITCODE = NO как для проекта, так и для целей проекта контейнера Pods.

Эта ошибка

Ld /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils normal arm64
    cd /Users/maximveksler/Developer/ParseUI-iOS/Pods
    export IPHONEOS_DEPLOYMENT_TARGET=9.0
    export PATH="/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-beta.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch arm64 -dynamiclib -isysroot /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -L/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -L/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils -F/Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos -filelist /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils.LinkFileList -install_name @rpath/ParseTwitterUtils.framework/ParseTwitterUtils -Xlinker -rpath -Xlinker @executable_path/Frameworks -Xlinker -rpath -Xlinker @loader_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -fembed-bitcode-marker -ObjC -lParseTwitterUtilsLib -lsqlite3 -lz -framework AudioToolbox -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -weak_framework Accounts -weak_framework Social -fobjc-arc -fobjc-link-runtime -framework AudioToolbox -framework Bolts -framework CFNetwork -framework CoreGraphics -framework CoreLocation -framework Foundation -framework Parse -framework QuartzCore -framework Security -framework StoreKit -framework SystemConfiguration -single_module -compatibility_version 1 -current_version 1.8.1 -Xlinker -dependency_info -Xlinker /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Intermediates/Pods.build/Debug-iphoneos/ParseTwitterUtils.build/Objects-normal/arm64/ParseTwitterUtils_dependency_info.dat -o /Users/maximveksler/Library/Developer/Xcode/DerivedData/ParseUI-gwtgmlgbpobjfjfjgkiwdahqveos/Build/Products/Debug-iphoneos/ParseTwitterUtils.framework/ParseTwitterUtils

ld: '/Users/maximveksler/Developer/ParseUI-iOS/Pods/ParseTwitterUtils/libParseTwitterUtilsLib.a(PFTwitterAuthenticationProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

был разрешен:

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

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

Ответ 3

У меня была аналогичная проблема с библиотекой GoogleAnalytics cocoa pod, и библиотека не компилировалась для iPhone 6 с iOS 8.

Мое решение состояло в том, чтобы включить флаг "Включить биткод" в цель проекта приложения, а не в проект Pods.

Ответ 4

Я тоже столкнулся с такой же проблемой в Xcode7. Решение для этого:

  • перейти к PROJECT
  • build Settings
  • выберите All Tab
  • введите Enable Bitcode
  • Update Flag до No (который будет ниже вашего проекта (второй столбец))

Ответ 5

Я просто установил его для своего проекта.

MyProjectTarget → Настройки сборки → Включить биткод = НЕТ

Ответ 6

Если ваш биткод не отображается, выберите все. Когда xcode выбирает Basic, параметр вашего битового кода не отображается.

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

При выборе "Все" вы можете увидеть биткод. После этого установите для параметра "Нет" для рекламы введите описание изображения здесь

Ответ 7

Если вы не нашли флаг enable_bitcode. Нажмите вкладку "Все" на верхней панели инструментов рядом с панелью поиска. введите описание изображения здесь

Ответ 8

Как сказали все, ответ установите Enable Bitcode в No в настройках сборки, но я думаю, что некоторые из вас могут быть заинтересованы в том, чтобы сделать это из командной строки .

Мой проект Xcode генерируется Unity, и я не хочу ручного вмешательства в настройки проекта Xcode. Может быть, есть лучший способ или инструмент, который может редактировать настройки сборки так, как PlistBuddy позволяет обновлять значения в файлах plist. Я не знаю никакого инструмента, который делает это для настроек сборки, поэтому я использую sed.

sed: выполнить замену на основе регулярных выражений.

Как установить Enable Bitcode в No из командной строки:

Здесь мое имя проекта Unity-iPhone, поэтому я запускаю следующую команду из корня моего проекта Xcode:

sed -i -e 's/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g' \ 
Unity-iPhone.xcodeproj/project.pbxproj

-e - указать команды sed для запуска
-i - редактировать файлы на месте, запускать скрипты отдельно для каждого файла

Удалите -i, если вам нужен только предварительный просмотр того, что он делает;)

Обратите внимание, что все ваши конфигурации сборки будут изменены с помощью этой команды, строка ENABLE_BITCODE = YES; появилась 6 раз в моей project.pbxproj.

Теперь мои шаги сборки могут быть полностью автоматизированы, поскольку fastlane заботится об остальном!