Desafortunadamente, Apple no ha incluido archivos de encabezado para libicucore en OSX. ¿Hay alguna manera de que pueda usar esta biblioteca? Solo necesito una funcionalidad simple y la ICU es demasiado grande para combinarla con mi aplicación. Parece la versión 53.1.0 de ICU, que es bastante reciente:
jeroen$ otool -L /usr/lib/libicucore.dylib libicucore.dylib: /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 53.1.0) /usr/lib/libc++.1.dylib (compatibility version 1.0.0, current version 120.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0) Lo que complica las cosas es que me cuesta averiguar qué se incluye con el objetivo principal de la UCI. Puedo usar nm para verificar manualmente si un símbolo en particular está presente en la biblioteca:
jeroen$ nm /usr/lib/libicucore.dylib | grep ToUpper 00000000000b74c9 T _u_strToUpper 000000000006ff70 T _ucasemap_utf8ToUpper Ahora puedo tomar manualmente los encabezados para u_strToUpper de la versión 53.1.0 de ICU, pero eso es mucho trabajo. ¿Hay una mejor manera de encontrar o generar los encabezados para ICU core 53.1.0 en OSX?
Puede descargar archivos de encabezado desde el sitio web de Apple o desde el sitio web oficial de ICU y enlazarlos con la biblioteca libicucore del sistema. Pero no puede cargar un producto en App Store o Mac App Store. Será rechazado inmediatamente como uno que usa API privada. iTunes Connect tiene un script automático que detecta dichas referencias después de cargar un nuevo binario.
Parece que mi mejor opción es obtener los encabezados del sitio web de Apple . Este repositorio también incluye el archivo MAKE para libicucore.dylib que utiliza --with-data-packaging=archive para colocar las tablas de datos de ICU en un archivo independiente /usr/share/icu/icudt51l.dat .