ios iphone xcode xcode5 core-plot
https://code.google.com/p/core-plot/downloads/detail?name=CorePlot_1.4.zip&can=2&q=puse aquíCorePlot_1.4.zip

ios - falta la arquitectura requerida x86_64 en el archivo libCorePlot-CocoaTouch.a



iphone xcode (9)

De acuerdo con el tutorial de Ray Wenderlich , hice lo siguiente:

Paso 1: descargué CorePlot_1.4.zip en el sitio web oficial

Paso 2: agregué a mi proyecto la carpeta CorePlotHeaders y la biblioteca estática llamada libCorePlot-CocoaTouch.a (marcando "Copiar elementos en la carpeta del grupo de destino (si es necesario)" )

Paso 3: agregué en el campo Otros indicadores de vinculador lo siguiente: -ObjC

Paso 4 : Me registré en Link Binary with Libraries si los marcos libCorePlot-CocoaTouch.a y QuartzCore estaban aquí

Resultado: cuando compilo mi proyecto, funciona bien cuando uso Iphone Retina (4 pulgadas) . Pero cuando uso Iphone Retina (4 pulgadas de 64 bits) recibí el siguiente mensaje cuando intento compilar y ejecutar:

ld: warning: ignoring file /blah/blah/libCorePlot-CocoaTouch.a, missing required architecture x86_64 in file /blah/blah/libCorePlot-CocoaTouch.a (3 slices)

Aquí el mensaje completo:

ld: warning: ignoring file /Users/me/Desktop/project/libCorePlot-CocoaTouch.a, missing required architecture x86_64 in file /Users/me/Desktop/project/libCorePlot-CocoaTouch.a (3 slices) Undefined symbols for architecture x86_64: "_CPTDecimalFromCGFloat", referenced from: -[PatientConstanteVisualiser configurePlots] in PatientConstanteVisualiser.o -[PatientConstanteVisualiser configureAxes] in PatientConstanteVisualiser.o "_CPTDecimalFromInteger", referenced from: -[PatientConstanteVisualiser configureAxes] in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTAxisLabel", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTColor", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTFill", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTMutableLineStyle", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTMutableTextStyle", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTPlotSymbol", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTScatterPlot", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTTheme", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_OBJC_CLASS_$_CPTXYGraph", referenced from: objc-class-ref in PatientConstanteVisualiser.o "_kCPTStocksTheme", referenced from: -[PatientConstanteVisualiser configureGraph] in PatientConstanteVisualiser.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Pasé varias horas en este tema ... Por favor ayuda ...


CorePlot ha lanzado 1.5.1 para trabajar con Xcode 5.1. Solo necesita copiar la carpeta CorePlotHeaders y el archivo libCorePlot-CocoaTouch.a a su proyecto.

Puedes descargarlo desde here .


La solución más simple que me funciona: vaya a su proyecto> configuración de compilación> arquitectura. Cambie la arquitectura como armv7 y elimine otras como armv6, etc., como se indica en la siguiente imagen:


Seguí el documento oficial " Uso de Core Plot en una aplicación " en Xcode 7.2.1 con iOS SDK 9.2. Recibí el mismo error incluso si el .a admitía arm64, hasta que agregué el indicador de vinculador ''-lCorePlot-CocoaTouch'' además de ''-OjbC''.


Si desea una versión de 64 bits de Core Plot, tendrá que crear una nueva versión de la biblioteca estática. Las compilaciones de Arm64 requieren iOS 7, pero Core Plot también admite versiones anteriores, por lo que la biblioteca preconfigurada es solo de 32 bits.

Abra CorePlot-CocoaTouch.xcodeproj y cambie la configuración de la arquitectura a "Arquitecturas estándar (incluyendo 64 bits)". Cree el destino de la "Biblioteca universal" e incluya la biblioteca estática resultante en lugar de la que se incluye con Core Plot 1.4 o use la configuración del proyecto dependiente.


Si no quieres pasar por el proceso de descarga y creación del proyecto, construí la biblioteca universal (para armv7, armv7s y arm64) y la puse aquí .

Esto se construye a partir del ID de confirmación de coreplot cc0a18cef8915f4a11e0699e9429c0a2f0018b42.


Si probó todo lo anterior pero aún no funciona, intente configurar -ObjC -lCorePlot-CocoaTouch en ''Otros indicadores de vinculador'' en ''Crear configuración'' o en el objetivo de su proyecto.


Tengo los mismos errores con Xcode7.3 + CocoaPod. Y solucioné el problema con otros indicadores de vinculador = $ (heredado).

Por supuesto, esta configuración solo es válida con CocoaPod.


Tratar:

lipo -info libCorePlot-CocoaTouch.a

Está demostrando que la biblioteca está construida para armv7, armv7s y i386 (simulador de 32 bits) y eso no incluye el simulador de 64 bits. Tendrás que compilar la lib para el simulador de 64 bits y después podrás usar lipo para agregar la lib de 64 bits a libCorePlot-CocoaTouch.a.

Salida:

Architectures in the fat file: libCorePlot-CocoaTouch.a are: armv7 armv7s i386

PD: Tampoco va a funcionar en el iPhone 5S (no arm64).

EDITAR:

Estos son los pasos que debe realizar para producir un binario que tenga las arquitecturas arm64 y x86_64:

  1. descargue CorePlot_1.4 desde https://code.google.com/p/core-plot/downloads/detail?name=CorePlot_1.4.zip&can=2&q=
  2. Abra el proyecto Xcode (CorePlot-CocoaTouch.xcodeproj) ubicado en CorePlot_1.4 / Source / framework
  3. Seleccione "Arquitecturas estándar" para "arquitecturas" y "Último iOS (iOS 7)" para "Base SDK"
  4. Construye la biblioteca (CMD + B)
  5. Vaya a CorePlot_1.4 / Source / build / en el terminal
  6. Ejecute lipo -create ./Debug-iphoneos/libCorePlot-CocoaTouch.a ./Debug-iphonesimulator/libCorePlot-CocoaTouch.a -output core_plot_all.a
  7. Agregue la lib recién creada (core_plot_all.a) a su proyecto
  8. Usted está listo para ir

cambiar la configuración de la arquitectura de Xcode