私有API检查工具详解
今天,一朋友发布的版本被拒了,收到的苹果 邮件如下:

查看邮件内容,因为用到了私有API被拒,到底哪里用到了私有API呢,百度一下,发现有个很好用的私有API检查工具。本文将带你搭建一个web站点,直接将IPA文件拖放网页,就可以将项目中使用的API一目了然地显示出来。
准备工具
1.下载ios-private-api-checker-masterhttps://github.com/hustcc/iOS-private-api-checker。
2.下载已经build好的ios_private.db库,将 ios_private.db 放入到iOS-private-api-checker的根目录,(备注:ios_private.db 下载地址: https://pan.baidu.com/s/1kBKa6QNSXfQazAYepXRJYQ)。
完成后,打开 终端:
3.cd 到ios-private-api-checker-master目录下,创建一个tmp目录(终端命令:mkdir tmp),并且修改tmp的权限(终端命令:sudo chmod -R 777 tmp)
4. 在终端输入sqlite3 , 出现这个表示已经安装了sqlite,没有则参考 http://www.runoob.com/sqlite/sqlite-installation.html 进行安装,如果安装正确的话,会出现以下:

5.配置flask环境,mac下默认已经安装了python,不信你可以在终端输入python --version,就可以查看到相应的版本。
重新打开终端
6.接着安装python的包管理器pip ,先下载 get-pip.py : https://bootstrap.pypa.io/get-pip.py(终端执行:curl -o get-pip.py https://bootstrap.pypa.io/get-pip.py),下载完成后,执行sudo python get-pip.py进行安装。
7.安装virtualenv,virtualenv 为每个不同项目提供一份 Python 安装。终端执行:sudo pip install virtualenv.
8. 开始配置flask环境,cd 到ios-private-api-checker-master目录下,执行virtualenv flask,创建了一个flask文件夹,接着执行:cd flask,然后再执行:source bin/activate,激活环境.接着再执行:pip install flask,安装flask。
9.回到根目录。执行:cd -,安装 macholib(执行:pip install macholib)。
执行 pip install macholib 出现问题,从下图两行爆红字可以看出,安装macholib的前提是需要提前安装好:nose 和 tornado

nose 的安装-------->终端输入 easy_install nose
tornado的安装-------->命令行安装
1.安装 brew ------>终端输入:ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 。
2.安装 wget------->终端输入:brew install wget 。
3.下载 pip 脚本----->终端输入:wget https://bootstrap.pypa.io/get-pip.py。
4.安装 pip-------->终端输入:sudo python get-pip.py 。
5.安装Tornado----->终端输入:sudo pip install tornado 。
以上完成后,要重新从上面的第8条开始继续操作,为了要激活环境,
9.以上完成后,就可以开始执行了run_web.py了,终端输入:python run_web.py,服务启动后,会告诉你在那个端口开启,打开浏览器,直接输入即可,接下在网页中,直接将你的IPA包拖进去就可以了,一会就可以看到分析信息了。

在浏览器中打开上图红框内的地址,把打好的ipa包拉进去,过几秒就会看到如图:


从以上可以看出,并没有用到私有API,可以回复邮件给苹果,再从新打包上线。