文档方法名混淆
方法名混淆
预计阅读时间:10 分钟
什么是方法名混淆?
方法名混淆将有意义的方法名(如 loginWithUsername:password:)替换为无意义的随机字符串, 隐藏代码的业务逻辑。
混淆前
- (void)loginWithUsername:(NSString *)username password:(NSString *)password;
- (void)processPayment:(double)amount;
- (BOOL)validateUserInput:(NSString *)input;混淆后
- (void)zfj_4nM9k:(NSString *)zfj_8xK2m zfj_3pL7j:(NSString *)zfj_9mN4x;
- (void)zfj_6kX9m:(double)zfj_2nP8k;
- (BOOL)zfj_5jM3n:(NSString *)zfj_7xK9p;自动排除的方法
以下方法会自动排除,无需手动配置白名单:
生命周期方法
- • init / dealloc
- • viewDidLoad
- • viewWillAppear:
- • viewDidAppear:
委托方法
- • tableView:cellForRowAt:
- • collectionView:...
- • scrollViewDidScroll:
系统方法
- • description
- • isEqual:
- • hash
- • copy / mutableCopy
配置选项
启用方法名混淆
obfuscateMethod: true方法白名单
whitelist.methods混淆参数名
obfuscateParameter: true注意事项
- •使用 @selector() 的方法需要加入白名单
- •KVO 观察的属性对应的 setter/getter 需要排除
- •IBAction 方法会自动更新 Storyboard 引用