私有apiNon-public API usage - The app references non-public selectors in—Your app uses or references

我们发现您的应用程序“PirHidup”1.0.0 (1) 最近交付的一个或多个问题。请更正以下问题,然后重新上传。

ITMS-90338:非公共 API 使用 - 该应用程序引用了 PirHidup 中的非公共选择器:databasePool:didAddDatabase:、databasePool:shouldAddDatabaseToPool:、setVideoFramerate:、setVideoSource:、setZOrder:、startPreview、stopPreview、zipArchiveDidUnzipFileAtIndexFilePathipped:totalunz :, zipArchiveProgressEvent:total:.如果您的源代码中的方法名称与上面列出的私有 Apple API 匹配,则更改您的方法名称将有助于防止此应用在以后的提交中被标记。此外,请注意上述一个或多个 API 可能位于您的应用程序附带的静态库中。如果是这样,它们必须被移除。如需更多信息,请访问 http://developer.apple.com/support/technical/ 上的技术支持信息

更新fmdb 声网 zipArchive即可

之前接了一个旧的项目,代码混乱,年代久远,不得不吐槽一波,好不容易改完需求提交代码,说用到了non-public APIs,搞了好久终于找到地方了,下面是我的解决过程,让大家少走弯路:

下面的被驳回的原因:

Your app uses or references the following non-public APIs:

setTimeOut:

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

原因是因为用到了名称叫setTimeOut:的api,在工程中检索了一下发现并没用用到,那肯定是在SDK或者.a的静态库里面用到了,这个项目的第三方很久没有更新了,估计是之前的SDK用到了,下面是查找过程:

首先打开终端,cd到项目的当前目录中:

cd (drag and drop your project folder here) Your_Project_Path
1
分别输入一下命令行,来找到使用了setTimeOut:的SDK或者.a的静态库:

find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep setTimeOut:
1


grep -lr "setTimeOut:" * | grep -v .svn | grep -v .md
1


根据终端的提示找到对应的地方,将SDK替换成官方最近的SDK,然后再用第二个步骤在确认一遍,确认无误后提交代码。

总结: 像我的项目就是AMapSearchKit这个SDK已经是很早之前的SDK了,苹果公司可能更新了non-public APIs,而之前老的SDK用到了或者名称是类似的名称,导致应用审核不通过,没办法,干不过苹果公司就只能屈服了,要么更改方法名称要么换一个SDK,最后谢谢大家的阅读,有什么问题可以留言问我~~
————————————————
版权声明:本文为CSDN博主「W_C__L」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wang631106979/article/details/52679484

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值