排查私有API

Posted dzldzl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排查私有API相关的知识,希望对你有一定的参考价值。

一、排查问题

首先,来看一下上面的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.

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

二、解决问题 ①

  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调试工具,调整到其他位置。

?





以上是关于排查私有API的主要内容,如果未能解决你的问题,请参考以下文章

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

一个C++工程CPU占用100%问题的排查

一个C++工程CPU占用100%问题的排查

在片段的私有函数中使用 adapterPosition

在 iOS 上调用 sysctl 来获取后台进程列表是私人电话吗?

onActivityResult 未在 Android API 23 的片段上调用