And*_*obs 9 configuration frameworks build objective-c ios
我做了一个xcode项目,我做了一些安全工作,他们让我混淆方法名称
像这样
#define specialMethod a9328238
+(void) specialMethod
{
// do security stuff
}
Run Code Online (Sandbox Code Playgroud)
我从项目(项目A)创建了一个.framework库,并将其包含在另一个项目(项目B)中.
但是当我使用Release构建配置运行(项目B)时,它总是像这样崩溃.
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[SecurityClass a9328238]: unrecognized selector sent to class 0x337cc4'
Run Code Online (Sandbox Code Playgroud)
因此它在尝试访问该方法时崩溃.
但是当我使用Debug构建配置运行(项目B)时,它运行顺畅
(我将所有构建配置设置保留为默认值)
您在哪里#define进行混淆?它是在头文件(.h)或.m框架的实现文件()中吗?
为使混淆有效,必须将其置于实现和调用者都包含的文件中.
您还可以通过检查预处理文件来检查预处理是否正常.选择实施文件并转到菜单Product > Generate Output > Generate Preprocessed File(您可以选择屏幕底部的配置).