字符常量加密

  1. 字符串常量加密有什么用?

    可以隐藏某些功能的关键字,避免被扫描到。

  2. 为什么打开这个功能后有某些源码文件编译不过?

    这种情况下,请把该文件的相对路径加到混淆配置【排除文件-膨胀】里面(可以通过右键菜单 膨胀-排除 解决)

  3. 哪些情况下会引起编译错误?

    在 .m/.mm/.cpp/.c 文件中,函数定义中的 static NSString* a = @"aaa"; 这种形式的定义,都会引起编译错误,要解决的方法就是找到相应的源码文件,去掉(I)标识就可以(可以通过右键 膨胀-排除 解决) 而在.swift文件中,当string和NSString的类型推断引起了编译错误时,也是一样会导致编译错误,需要去掉(I)标识

  4. 会有常量加密不充分的情况么?

    会有这种情况,比如在 ObjC/cpp/c 里面在宏定义中的字符串常量,就不会被加密,或者有 static NSString* a = "MyStr"; 这种形式的定义,也不会被加密,这种情况下,要么修改源码,要么去掉源码的(I)标识

  5. Swift NSString 类型引起错误,怎么解决?

    要么去掉引起编译错误的文件上的(I)标识,要么在文件中加入一段文本 /*@CRAB_ENABLE_NSSTRING*/ (1.7.4 之前的版本,请使用 /*@ENABLE_NSSTRING*/)

  6. Swift 文件中某些部分不希望开启字符串加密,怎么解决?

    可以在代码中加入注释 @CRAB_DISABLE_STRING_ENCODE_BEGIN@CRAB_DISABLE_STRING_ENCODE_END 在这个2个注释中的字符串都不会被加密 (1.7.4以上的版本支持)

  7. 为什么我修改了文件后,编译时用的还是之前的文件?

    当工程进入到了混淆状态,这个时候就修改源码,其实你修改的是一个临时文件,这个文件不会被保存,最好的方式是点【重制】按钮恢复后,再修改源码

  8. 用了之前的混淆工具版本,生成的缓存文件有编译BUG,升级了新的工具后,为什么缓存不更新?

    请先点击混淆工具【重制】按钮,然后在出错的源码文件里面加个换行什么的,修改一下文件内容就行了