Category Archives: 错误分析(iOS)

The app references non-public selectors in xxxx: setGeometryDelegate:

很多人在App开发结束后提交苹果商店上传包时遭到拒绝,还未提交审核哦,刚上传完还在预发行里,构建版本为“无效的二进制文件”,苹果发来“贺电”,拒绝理由为:

  • The app references non-public selectors in xxxx: setGeometryDelegate:


这句话的大概意思是说,程序中调用了App的私有方法 setGeometryDelegate:,可我们搜索整个项目都没找到有调用该方法的代码,那肯定就是使用的第三方框架中有违反了这一条咯,网上找了相关资料,原来是百度地图干的。
百度官方也给了相关回应,在Other Linker Flags中加 -ObjC 即可,注意大小写!!!

修改好后重新打包上传,如果版本冲突就改下版本号或build号,打包重传。

邮件原文参考:[……]

继续阅读

关于自定义NSLog需要注意的一点 (自定义SALog)

相信很多开发人员都会自定义NSLog的输入方式,一方面可以自定义自己的输出格式,有利于调试程序,比如说日志输出时打印程序所在的文件与行数;另一方面有利控制日志的输出,比如调试时输出日志,但发布后不输出。
示例:

1
2
3
4
5
6
// 自定义输出 SALog(...)
#ifdef DEBUG
#define SALog(...) NSLog(@"%s-%d行:%@", __PRETTY_FUNCTION__, __LINE__, [NSString stringWithFormat:__VA_ARGS__])
#else
#define SALog(...)
#endif

问题来了,很多人都知道#ifdef DEBUG的意义在于只有调试时才输出日志,发布时不输出日志,但很多人都只知道在调试时确实有日志输出,可发布呢?无人关心了。其实有个地方是需要设置的,Product–Scheme–Edit Scheme–Info中的Build Configuration,如下图所示:[……]

继续阅读