xcode7 - Xcode 7 y ENABLE_BITCODE=YES no funciona
(9)
He seguido varios subprocesos en torno a la nueva configuración ENABLE_BITCODE en Xcode, también he intentado todo lo que he podido (admití que no soy un xcode pro) pero todavía no puedo hacer que el proyecto se compile para usarlo en mi teléfono de prueba.
Mi aplicación funciona bien en el simulador, pero no puedo implementarla en mi iPhone para realizar pruebas. En este último, acabo de instalar iOS 9 beta.
Ahora, aquí está el mensaje de error que recibo. Parece que la configuración no afecta la biblioteca PARSE.com, ¿eso es parte de mi proyecto? ¿Cómo puedo hacer que mi proyecto se implemente en mi teléfono? Gracias por cualquier consejo
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)
¿Está seguro de que ha seleccionado
Enable Bitcode
de
Enable Bitcode
en
NO
contra la configuración de compilación que está utilizando (por ejemplo,
DEBUG
)?
Puede verificarlo en project-> target-> build settings-> search
enable bitcode
-> set
NO
en
DEBUG
(es bueno recordar intentar actualizar las bibliotecas antes del lanzamiento de la prueba, tal vez ya contenga bitcode).
Luego edite el esquema -> Ejecutar -> verifique si tiene la configuración de
DEBUG
atm.
Acabo de configurarlo para mi proyecto.
MyProjectTarget -> Configuración de compilación -> Activar código de bits = NO
Como todos decían, la respuesta está
establecida
Enable Bitcode
de
Enable Bitcode
en
No
en la configuración de compilación
, pero creo que algunos de ustedes podrían estar interesados en hacerlo desde la
línea de comandos
.
Mi proyecto Xcode está siendo generado por Unity y no quiero ninguna intervención manual en la configuración del proyecto Xcode.
Tal vez haya una mejor manera o una herramienta que pueda editar la Configuración de compilación un poco como
PlistBuddy
permite actualizar valores en archivos
plist
.
No conozco ninguna herramienta que haga esto para la configuración de compilación, así que estoy usando
sed
.
sed: ejecuta reemplazos basados en expresiones regulares.
Cómo configurar
Enable Bitcode
de
Enable Bitcode
en
No
desde la línea de comandos:
Aquí, el nombre de mi proyecto es
Unity-iPhone
así que ejecuto el siguiente comando desde la raíz de mi proyecto Xcode:
sed -i -e ''s/ENABLE_BITCODE = YES;/ENABLE_BITCODE = NO;/g'' /
Unity-iPhone.xcodeproj/project.pbxproj
-e - especifica comandos sed para ejecutar
-i - edita archivos en el lugar, ejecutando scripts por separado para cada archivo
Elimine
-i
si solo desea una vista previa de lo que hace;)
Tenga en cuenta que
todas
sus configuraciones de compilación se cambiarán con este comando, la línea
ENABLE_BITCODE = YES;
apareció 6 veces en mi
project.pbxproj
.
¡Ahora mis pasos de compilación se pueden automatizar completamente ya que fastlane se encarga del resto!
También me enfrenté al mismo problema en Xcode7. Solución para esto:
-
ir al
PROJECT
-
Settings
compilación -
seleccione
All Tab
-
escriba en la búsqueda
Enable Bitcode
-
Update Flag
aNo
(que estará debajo de su proyecto (segunda columna))
Tenga en cuenta que para los proyectos que usan CocoaPods, debe establecer
ENABLE_BITCODE = NO
tanto en el proyecto como en los objetivos del proyecto del contenedor Pods.
Este error
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)
fue resuelto por:
Tuve un problema similar con la biblioteca de cacao de GoogleAnalytics, y la biblioteca no estaba compilando para iPhone 6 con iOS 8.
Mi solución fue pasar a NO el indicador "Habilitar código de bits" en el destino del proyecto de aplicación, no en el proyecto Pods.
pruebe este comando en la terminal si no puede cambiar la configuración de BITCODE dentro del proyecto,
xcodebuild -target "target" -configuration "configuración" ENABLE_BITCODE = NO