不幸的是,Apple没有在OSX上包含libicucore
的头文件。有什么办法可以使用这个库吗?我只需要一些简单的功能,ICU太大,无法与我的应用捆绑在一起。它看起来像ICU版本53.1.0,这是最新的:
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)
让事情变得复杂的是,我很难找到ICU的核心目标所包含的内容。我可以使用nm
手动检查库中是否存在特定符号:
jeroen$ nm /usr/lib/libicucore.dylib | grep ToUpper
00000000000b74c9 T _u_strToUpper
000000000006ff70 T _ucasemap_utf8ToUpper
现在我可以从ICU的53.1.0版本手动获取u_strToUpper
的标题,但这是很多工作。有没有更好的方法在OSX上查找或生成ICU core 53.1.0的头文件?
答案 0 :(得分:2)
看起来我最好的选择是抓住apple website的标题。此存储库还包括libicucore.dylib
的makefile,它使用--with-data-packaging=archive
将ICU数据表放在独立文件/usr/share/icu/icudt51l.dat
中。
答案 1 :(得分:2)
您可以从Apple的网站或ICU官方网站下载头文件,并链接到系统的libicucore
库。
但您无法将产品上传到App Store或Mac App Store。它会立即被拒绝,因为它使用私有API。 iTunes Connect具有自动脚本,可在您上传新二进制文件后检测此类引用。