Параметры 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 заботится об остальном!