前言

作为iOS开发人员,相信大多数伙伴都对怎么获取iOS的私有API很有兴趣,最近通过查找资料,总结了以下三种方法,希望对你有用。

第一种(class-dump)

不得不说这是一个很棒的工具,安装和使用都很方便。

安装

nygard/class-dump下载工程,编译之后就会获得class-dump,把它放到

"/usr/bin"

文件夹里,注意,这个地址根据系统的不同有所差别,我的系统是

10.10.5

,低版本的系统有些是

"/usr/local/bin"

,这个根据根据自己的系统注意一下即可。

注意:在iOS9之前,即Xcode7之前,可以直接去Class-dump即可,但是iOS9之后用这个版本导出的话会报下错

Input file (/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks/ChatKit.framework) doesn't contain an executable.

这是因为iOS9增加了一个叫

"the __DATA_CONST segment"

的东东。

使用

首先修改class-dump的权限

$ chmod 777 class-dump

注意,这个步骤得在class-dump所在的文件夹的根目录下执行。

然后就可以使用了,具体如下:

class-dump -H /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks/ChatKit.framework -o <存储地址>

这样就会导出ChatKit.framework框架未公开的头文件到你存储的地方。

第二种(class-dump + DumpFramework.pl)

这个方法比第一种方法强大的地方就是可以通过一条命令把所有的私有API的头文件导出到一个叫

header

的文件夹里。

安装

class-dump的安装见第一种方法,DumpFramework.pl可以去shuhongwu/HackSpringDemo下载,放在任意目录下都可。

配置

打开DumpFrameworks.pl文件,把下面的地址改成你自己的地址

dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/Frameworks',
'Frameworks'); dump_frameworks('/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk/System/Library/PrivateFrameworks',
'PrivateFramework');

注意:

'Frameworks'

一定要换行。还有这里导出的是模拟器的私有API,因为class-dump 作用的对象必须是未经过加密的可执行文件,而从 app store 下载的 app 都是经过签名加密的,所以两个iPhoneSimulator.platform地方不能换成iPhoneOS.platform.

使用

cd到DumpFrameworks.pl的路径,并执行

$ ./DumpFrameworks.pl

如没有问题的话,所有需要的头文件都已经导出到

~/user/header

文件夹里。

第三种方法(clone)

其实这是一种偷懒的办法,可以直接去nst/iOS-Runtime-Headers下载就可以了,这里会随时更新。

后话

利用私有API确实很酷,可以根据自己的需要和爱好做出好多很酷的效果,但是如果需要上传AppStore的话,建议不要使用,因为这是苹果官方严令禁止的。如果你觉得可以通过加密的方法躲过审查的话,你可以看看独家工程逆向

 

怎么获取iOS的私有API的更多相关文章

  1. 【原】iOS查找私有API

    喜接新项目往往预示的会出一堆问题.解决问题的同时往往也就是学到更多东西的时候,这也许就是学习到新东西最直接最快速的方法吧! 小编经过努力,新项目终于过测试了,可是被苹果大大给拒了,好苦啊,最近的审核真 ...

  2. iOS private-api-checker私有API检测

    转自: http://www.jianshu.com/p/07779e293ca7 注:  '根目录' 指的是 private-api-checker 包的目录 iOS-private-api-che ...

  3. (iOS)私有API的使用(原创)

    最近在做企业级程序,需要搞设备的udid等信息,但是ios7把udid私有化了,不公开使用.所以研究了一下ios的私有api. 调查了一下文章,发现这方面的文章不多,国内更是不全,高手们都懒得写基础教 ...

  4. IOS私有API的使用(转)

    最近在做企业级程序,需要搞设备的udid等信息,但是ios7把udid私有化了,不公开使用.所以研究了一下ios的私有api.   调查了一下文章,发现这方面的文章不多,国内更是不全,高手们都懒得写基 ...

  5. class-dump获取iOS私有api

    转自:http://blog.csdn.net/sunyuanyang625/article/details/41440167 获取各类iOS私有api 安装工具class-dump 资源地址http ...

  6. ios中通过调试来使用私有api

    转自:http://blog.csdn.net/cubepeng/article/details/11284173 OS不允许使用ios私有api,使用私有api可以获得意想不到的效果 ,同时使用私有 ...

  7. iOS 私有API调用

    最近自己在做一个小程序,想实现一个一键设置手机壁纸的功能.但在iOS公开的API里找不到相关的方法,只能从私有API入手. 网上有不少教程,不过都不是很详细.从google和https://stack ...

  8. iOS - APP审核Guideline 2.5.1被拒,使用了私有API

    最近iOS 审核被拒,说是使用了私有API:com.apple.springboard.lockcomplete 具体内容如下: 发件人 Apple . Performance: Software R ...

  9. iOS buttonWithType:101 苹果私有api

    无意中发现,有人创建UIButton这样写 UIButton *previousButton = [UIButtonbuttonWithType:101]; 一看原来是私有api UIButton * ...

随机推荐

  1. c/c++ 指针理解(1)

    指针是一个变量,存放变量的地址

  2. 关注微信 即可连上wifi 的设计思路

    这个功能之前是在知乎上有人在询问后台的实现逻辑,然后才知道的。其实对微信的各种关注,实在是不想沾惹。 但是这个功能很有意思,当我关注了你,那么就可以在你的店里上wifi 。如果取消则立刻不能上网。 这 ...

  3. 关于学习Knockoutjs--入门(一)

    前段时间做项目一直在用knockout,虽然用着不怎么利索,但是知识是一点一点探索的. 首先介绍一下 Knockout是什么? 他是一个很优秀的js库,他最大的功能就是实现双向绑定,它可以帮助你仅使用 ...

  4. JS中Float类型加减乘除 修复

    MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好, ...

  5. JSON 格式说明

    一维json { "sn" : "CS20160918095444121640", "suitstypes_id" : "47&q ...

  6. 【java报错】Could not instantiate listener

    这个错误以前出现过好几次,莫名其妙的出现,莫名其妙的解决掉...昨天好好的,今天又出现了,记下来 2015-03-03 09:38:45.105:INFO:oejs.Server:jetty-8.1. ...

  7. ucenter的单点登录

    所谓单点登录,无非就是几个站点共用一个用户中心,实现同步登陆,同步退出. 服务器端:Loog SSO . 客服端: ucenter,说实话dz商业化确实让php发展了不少. ucenter 基本原理: ...

  8. 配置cas

    在给tomcat配置好证书的基础上做一下操作(可以根据上一篇博客进行配置) 1.cas服务端配置(最后更改一下服务器tomcat的端口号) 第一步:下载cas-server-3.4.2.1-relea ...

  9. Doolitter分解 三对角矩阵分解 拟三对角分解

    #include <cstdio> #include <cstdlib> #include <algorithm> #include <cmath> # ...

  10. 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...