Mi objetivo es utilizar libphonenumber, la biblioteca de manejo de números de teléfono de google para un proyecto de iPhone en el que estoy trabajando.libphonenumber para iOS o objetivo-c puerto
Después de descargarlo (y muchas muchas horas), cumplí con la versión C++ de la biblioteca y construyó un número de archivos ".a" y ".dylib", de los cuales asumí que debo importarlos en mi xCodeProject para acceder a esas funciones de C++.
Así que importé "libphonenumber.a" en mi proyecto, actualicé mi objetivo, las configuraciones de compilación, las fases de compilación y las rutas de búsqueda de bibliotecas, según las necesidades.
Construcción del proyecto de Xcode para el dispositivo & pase simulador, sin embargo me da la siguiente advertencia: "ld: Advertencia: el archivo ignorando ../XcodeProjects/libphonenumber/build/libphonenumber.dylib, el archivo fue construido para el formato de archivo no compatible cuales no es la arquitectura vinculada (armv7) ". (o i386 al compilar para el simulador)
Entiendo de esto que debo compilar el número libphon para la arquitectura i386 y/o armv7 correcta. Así que traté de hacerlo, pero rápidamente me di cuenta de que esto también me obliga a reconstruir las 3 bibliotecas dependientes de libphonenumber, para las arquitecturas i386/armv7 para que libphonenumber's compile ahora correctamente. Eventualmente, renuncié a eso, comenzó a verse como un gran desastre por delante de mí.
Después de todas mis pruebas, me quedo con
3 Preguntas:
1) ¿Cómo Puedo compilar libphonenumber biblioteca de C++ para su uso con las arquitecturas i386/ARMv6/ARMv7.
2) Cuando uso una biblioteca de C++, ¿mi suposición es correcta? ¿Es solo cuestión de importar el archivo ".a" que resulta de la compilación, y simplemente señalarlo en el encabezado de mis archivos de proyecto xCode? ¿Cuáles son exactamente los pasos para incluir y usar bibliotecas C++ y acceder a sus funciones desde object-c dentro de xCode?
3) Encontré LPNKit, un puerto objetivo-c para libphonenumber, pero está incompleto. ¿Alguien ha oído hablar de él y ha tenido suerte al usarlo? ¿O alguien tiene un puerto object-c para libphonenumber que está completo, funcionando, con instrucciones sobre cómo compilarlo e instalarlo correctamente?
Cualquier ayuda o consejo sobre cómo hacer que esta biblioteca funcione en iOS sería muy apreciada.
Actualización:
Terminé usando la versión de JavaScript libphonenumber, sumando todos los archivos a mi paquete, incluyendo todos los referenciados bibliotecas javascript y el uso de UIWebView y stringByEvaluatingJavaScriptFromString para ejecutar funciones. También podría hacer que UIWebview haga referencia a la biblioteca de JavaScript en línea (prefiero tener todo lo local para no depender de una conexión a Internet).
Aquí está una muestra de lo que hice:
variableswebView_ = [[UIWebView alloc] init];
[webView_ loadHTMLString:
@"<script src='base.js'></script>"
"<script>"
"goog.require('goog.dom');"
"goog.require('goog.json');"
"goog.require('goog.proto2.ObjectSerializer');"
"goog.require('goog.string.StringBuffer');"
"</script>"
"<script src=\"phonemetadata.pb.js\"></script>"
"<script src=\"phonenumber.pb.js\"></script>"
"<script src=\"metadata.js\"></script>"
"<script src=\"phonenumberutil.js\"></script>"
"<script src=\"asyoutypeformatter.js\"></script>"
"<script src=\"normalize.js\"></script>"
baseURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] resourcePath]]];
NSString *function = [[NSString alloc] initWithFormat: @"phoneNumberParser('%@','%@','')", phoneNumber, ISOCountryCode];
NSLog(@"function is: %@", function);
NSString *result =[webView_ stringByEvaluatingJavaScriptFromString:function];
El resultado me pone el número formateado.
Espero que ayude a cualquiera que se encuentre con el mismo problema que yo.
¿cómo lo recompilaste y cuáles son las dependencias que tienes? – LordT
Primero puse "i386" en "CMAKE_OSX_ARCHITECTURES: STRING =" en el archivo "CMakeCache.txt" para el proceso cmake, y luego volví a compilar. Las bibliotecas dependientes son [boost] (http://www.boost.org/), [protobuf] (http://code.google.com/p/protobuf/), y [googletest] (http: // code .google.com/p/googletest /). – YoCoh
¿Alguna vez tuvo éxito al portar el framework libphonenumber al Objective C? Necesito exactamente lo mismo para mi aplicación iOS. ¡Si fuera tan amable de compartirlo conmigo, sería genial! Gracias por adelantado. –