Your app uses or references the following non-public APIs的解决方案

之前接了一个旧的项目,代码混乱,年代久远,不得不吐槽一波,好不容易改完需求提交代码,说用到了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用到了,下面是查找过程:

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

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

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

    这里写图片描述

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

    这里写图片描述

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

总结: 像我的项目就是AMapSearchKit这个SDK已经是很早之前的SDK了,苹果公司可能更新了non-public APIs,而之前老的SDK用到了或者名称是类似的名称,导致应用审核不通过,没办法,干不过苹果公司就只能屈服了,要么更改方法名称要么换一个SDK,最后谢谢大家的阅读,有什么问题可以留言问我~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值