怎么获取iOS的私有API

前言

作为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的话,建议不要使用,因为这是苹果官方严令禁止的。如果你觉得可以通过加密的方法躲过审查的话,你可以看看独家工程逆向

时间: 2024-08-06 20:02:36

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

class-dump获取iOS私有api

转自:http://blog.csdn.net/sunyuanyang625/article/details/41440167 获取各类iOS私有api 安装工具class-dump 资源地址http://download.csdn.net/detail/map625/8191343 运行class-dump并编译src项目 编译之后在produce中找到编译好的class-dump将其拷贝到/usr/local/bin下 将xcode下的framwork导出.h文件 例,我导出的是coreTe

iOS私有API 以及api与sdk的解释

IOS的API分为四种: Published API(公开的API)(或者Documented API) 还有两类:私有API:Private API和未公开API:UnPublished API(或者Undocumented API). 私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有使用说明.代码介绍等记录的API. 按苹果的说法,未公开的API是还不够成熟,可能还会变动的API,等完全成

iOS私有API

IOS的API分为四种: Published API(公开的API)(或者Documented API) 还有两类:私有API:Private API和未公开API:UnPublished API(或者Undocumented API). 私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有使用说明.代码介绍等记录的API. 按苹果的说法,未公开的API是还不够成熟,可能还会变动的API,等完全成

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

转自:http://blog.csdn.net/cubepeng/article/details/11284173 OS不允许使用ios私有api,使用私有api可以获得意想不到的效果 ,同时使用私有api是一个程序员的技术体现之一.至于怎么通过apple的审核,其实是有些办法的,但是不属于今天讨论的范围.私有api可以通过 dump头文件获得,也可以去github clone一份现成的,但是还是推荐自己去dump.但是我们今天不是讨论,如何使用dump到的api,而是通过一个例子来讨论如何通过

IOS私有API的使用

首先要使用class-dump 和dumpFrameworks.pl 工具 将ios的framework导出来. 以下是工具的下载地址: class-dump下载地址http://www.codethecode.com/projects/class-dump/ DumpFrameworks.pl原来的下载地址不能用了,我在github上的别人的越狱程序里面找到的. 将下载好的 class-dump 放入usr/local/bin 下. 如果 '/usr/local/bin' 不知道在哪里,可以在

iOS 百度地图报私有api的解决方案

1.Build Settings-->搜索other linker Flags-->将other linker Flags设置为-objc 2.用2.1.1的版本的百度地图 3.换高德地图 iOS 百度地图报私有api的解决方案

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

最近iOS 审核被拒,说是使用了私有API:com.apple.springboard.lockcomplete 具体内容如下: 发件人 Apple 2. 5 Performance: Software Requirements Guideline 2.5.1 - Performance - Software Requirements Your app uses or references the following non-public APIs: com.apple.springboard.

关于Apple的私有API

介绍 一.基本知识 iPhone中的API除了公开的 API:Published API外(或者叫文档中记录的API:Documented API),还有两类API:私有API:Private API和未公开的API:UnPublished API(或者叫文档中未记录的API:Undocumented API).其中私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有使用说明.代码介绍等记录的AP

获取iOS设备型号的方法总结

三种常用的办法获取iOS设备的型号: 1. [UIDevice currentDevice].model (推荐): 2. uname(struct utsname *name) ,使用此函数需要#include : 3.sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen) ,使用此函数需要#include ,#include: 推荐使用第一种方法,为最上层的API,在项目开发