您的位置首页百科问答

【几维安全】如何生成包含Bitcode的静态库

【几维安全】如何生成包含Bitcode的静态库

的有关信息介绍如下:

【几维安全】如何生成包含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. 加密静态库

将该静态库上传到静态库加密板块,完成加密保护。