排查私有API

1、排查问题

首先,来看一下上面的Apple发送的审核被拒缘由邮件,其中提到了两个重要的点:

此次Apple审核,相对以往来讲更为严格,如下提到的两个问题,在以往的版本迭代中,没有被拒绝过。shell

问题 ①:app

Additionally, your app uses or references the following non-public APIs:
IOServiceMatching, IOServiceGetMatchingService, IORegistryEntryCreateCFProperties, IOObjectRelease

您的应用程序使用或引用如下非公开API:
IOServiceMatching, IOServiceGetMatchingService, IORegistryEntryCreateCFProperties, IOObjectReleasesvn

问题 ②:工具

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.

您的应用程序还使用 prefs:root= 非公开URL方案,这是一个私有实体。
在App Store中不容许使用非公开API,由于若是这些API发生变化,可能会致使用户体验不佳。性能

2、解决问题 ①

  1. 首先打开终端,cd到项目的当前目录中:
cd (drag and drop your project folder here) Your_Project_Path
  1. 分别输入如下命令行,来找到使用了(私有API)的SDK或者.a的静态库:
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep (私有API)
grep -lr "(私有API)" * | grep -v .svn | grep -v .md

 
  1. 根据终端的提示找到对应的地方,将SDK替换成官方最新的SDK,而后再用第2步再确认一遍,确认无误后提交代码。

若SDK中依旧包含私有API,根据实际状况作相应的处理。测试

解决方案:
目前ATSDK的使用场景,用于帮助开发人员快速查找分析性能,UI等方面问题,暂时在发布环境中弃用ATSDK,其中包含的测试入口,FLEX调试工具,调整到其余位置。命令行

?调试

相关文章
相关标签/搜索