提交App Store审核被拒,说是使用了私有api。
“com.apple.springboard.lockcomplete”就是这个玩意儿。全局范围搜索,并没有,所以考虑到应该是一些三方sdk的问题。于是咱得找到是哪个sdk使用了这个私有api啊。这里就需要终端命令:
打开终端,首先cd到工程文件夹下面,然后利用命令行:“grep -r” 空格 加上苹果审核文件里说的私有api名称,我这里就是“com.apple.springboard.lockcomplete” 空格"."注意最后这个"."不能掉;
发现问题了,找到那个使用了该私有api的三方了,找最新的sdk替换之后就行了。如果不能找到清洁的sdk进行替换,那可能就只能删掉了,这个根据自己项目的实际情况来定。
还有一种方式是通过另一种命令找到项目中包含“com.apple.springboard.lockcomplete”的字符串,当然你也可以只搜索其中一段,比如“springboard”。具体方法如下:
首先将你提交审核的ipa重命名为zip格式,然后解压,如果有看到两个文件夹Payload、Symbols,就表示没问题,可以继续往下操作,cd到Payload里面的app,注意,不是cd到Payload,而是cd到Payload里面的app,然后执行如下命令:strings - -a -arch armv7 "项目名称" | grep "私有api字符串"。运行之后,能搜索出包含"私有api字符串"的字符串。然后对搜索出来的字符串一一进行上面第一种方式,这两种方式结合,就能更细致的找出哪些三方sdk包含私有api。以上只是个人开发中遇到的问题,不敢保证一定正确有效。至少我使用这种方式解决了问题。
网友评论