一、排查问题
首先,来看一下上面的Apple发送的审核被拒原因邮件,其中提到了两个重要的点:
这次Apple审核,相对以往来说更为严格,以下提到的两个问题,在以往的版本迭代中,没有被拒绝过。
问题 ①:
Additionally, your app uses or references the following non-public APIs:IOServiceMatching, IOServiceGetMatchingService, IORegistryEntryCreateCFProperties, IOObjectRelease
您的应用程序使用或引用以下非公开API:
IOServiceMatching, IOServiceGetMatchingService, IORegistryEntryCreateCFProperties, IOObjectRelease
问题 ②:
Your app also uses the "prefs:root=" non-public URL scheme, which is a private entity. 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.
您的应用程序还使用
在App Store中不允许使用非公开API,因为如果这些API发生变化,可能会导致用户体验不佳。prefs:root=
非公开URL方案,这是一个私有实体。
二、解决问题 ①
- 首先打开终端,cd到项目的当前目录中:
cd (drag and drop your project folder here) Your_Project_Path
- 分别输入以下命令行,来找到使用了
(私有API)
的SDK或者.a的静态库:
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep (私有API)
grep -lr "(私有API)" * | grep -v .svn | grep -v .md
- 根据终端的提示找到对应的地方,将SDK替换成官方最新的SDK,然后再用第2步再确认一遍,确认无误后提交代码。
若SDK中依旧包含私有API,根据实际情况做相应的处理。
解决方案:
目前ATSDK的使用场景,用于帮助开发人员快速查找分析性能,UI等方面问题,暂时在发布环境中弃用ATSDK,其中包含的测试入口,FLEX调试工具,调整到其他位置。?