【几维安全】如何生成包含Bitcode的静态库
的有关信息介绍如下:
iOS编译生成包含Bitcode的静态库,需要Xcode7及其以上版本。Android下的静态库由NDK编译生成,为了更好的稳定性,建议使用Android-Ndk-R10及其以上版本。
一、iOS篇
如果上传的静态库不包含Bitcode,加密后的静态库不存在任何安全效果!
编译生成包含Bitcode的静态库,需要Xcode7及其以上版本
1. 打开您的静态库项目,将Build Settings中"Enable Bitcode"设置为"Yes";
2. 将Build Settings中"Skip Install"设置为"Yes";
3. 点击Product菜单下的Clean按钮,清理完毕后点击Archive按钮开始执行编译;
4. 执行成功后通过操作记录页面找到您的.a静态库,如下图
5. 确认静态库是否包含Bitcode,可执行 otool -l libDemo.a,通过Ctrl+F查找__bitcode的size是否大于1字节;如果没有或者为0x00000001在表示不包含Bitcode代码,请检查操作步骤!
二、Android篇
如果上传的静态库不包含Bitcode,加密后的静态库不存在任何安全效果!
Android下的静态库由NDK编译生成,为了更好的稳定性,建议使用Android-Ndk-R10及其以上版本。
1. 修改Application.mk文件,将NDK_TOOLCHAIN_VERSION指定为clang,如图1
NDK_TOOLCHAIN_VERSION := clang
2. 修改Android.mk文件,在LOCAL_CFLAGS中添加 -emit-llvm 选项,如图2:
O_LLVM :=-emit-llvmLOCAL_CFLAGS += $(O_LLVM)(注:如果是动态库,需修改为静态库:include $(BUILD_STATIC_LIBRARY))
3. 编译静态库项目
在项目路径下执行$NDK/ndk-build命令($NDK为您的NDK路径),执行成功后,在libs目录下会生成包含Bitcode的静态库。
4. 加密静态库
将该静态库上传到静态库加密板块,完成加密保护。



