一.基本知识

iPhone中的API除了公开的API:Published API外(或者叫文档中记录的API:Documented API),还有两类API:私有API:Private API和未公开的API:UnPublished API(或者叫文档中未记录的API:Undocumented API)。其中私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没 有在苹果的官方文档中有使用说明、代码介绍等记录的API。后两种API是有区别的,按苹果的说法,未公开的API是还不够成熟,可能还会变动的API, 等完全成型了后会变成公开的API,但是目前不对其提供承诺,就是系统版本升级后可能会失效。而私有API是苹果明确不能使用的API。虽然两者有所区 别,但是在具体使用方法上是类似的。

二.具体介绍

1.导出生成私有API的头文件声明

使用私有或未公开的API,首先需要导出其对应的头文件,在头文件里有相关函数的声明。

工具:

class-dump

class-dump可以从编译后的Objective-C的二进制文件中提取对应的数据结构及函数等声明。

使用方法:

为了能在任意目录下使用class-dump命令,首先建议把class-dump文件拷贝到/user/local/bin/目录下,然后就可以在任意目录下执行以下命令:

class-dump /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/ >UIKit.h

以上命令就可以把iPhoneSimulator3.0.Sdk中Frameworks框架里的 UIKit.Framework框架的数据结构及函数声明等给提取出来,并且放在UIKit.h这个文件中,之后你就可以在这个头文件中找你需要API的 声明及其使用方式。以同样的方法,就可以挨个导出你需要那个框架中的API声明。

也可以用ericasadun写的DumpFrameworks.pl(文件中有部分注释说明)这个文件把私有框架下的 API头文件全部提取出来。使用方法也是首先把class-dump文件拷贝到/user/local/bin/目录下,然后在任意一个目录下执行. /DumpFrameworks.pl,然后就会在你的家目录下产生一个Headers文件夹,里面罗列了私有框架下的API头文件。

2.使用私有API

导出了私有API的头文件声明后,使用方法就比较简单了,首先在你的工程中包含进头文件,然后导入对应的框架,之后就可以类似提供了静态库的方式在我们的代码中使用这些私有API函数。

三.重要的在后面

iPhone编程中一些非常精致好玩的API都包含在私有API或未公开的API中,虽然我们可以以这种方式使用这些非 常好的API,但是这样做是存在一定风险的,首先未公开的API有变更的可能,这样在每个固件版本中,你的代码都有可能中断。同时,最大的问题是使用了私 有API的程序是不能放在App Store上销售的。因此如果我们只是为了好玩体验iPhone中这些精彩的API,那没关系。如果是为了做出程序放在App Store上销售的,那就不要动私有API的主意了。

飞机票:

转载于:https://www.cnblogs.com/MyBlogZH/p/5523327.html

iPhone私有API相关推荐

  1. iOS私有API检测扫描思路以及工具开发(Python3 + Django)

    不足之处 1.class-dump有些文件会报错,由于只支持OC runtime的方式获取,可执行文件是c或者swift都无法被dump 2.私有api在公开的Framework及私有的Private ...

  2. iOS私有Api检测

    个人原文博客地址: iOS私有Api检测 最近提交APP审核被苹果的审核人员是虐的不要不要的, 一直都说是使用了私有API 但是我使出了浑身解数, 也没找到自己写的代码里哪里用到了私有API, 最后网 ...

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

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

  4. class-dump获取iOS私有api

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

  5. iOS buttonWithType:101 苹果私有api

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

  6. Apple 如何知道你使用了私有API

    大约有三种方式 otool -L 这个工具可以清晰的列出你链接所有的库 像IO.Kit是不允许使用的 nm -u 这个工具可以清晰的列出你所有链接符号 如 C方法 OC方法 检查所有Selecter的 ...

  7. class-dump导出iOS系统私有库以及简单的私有API调用

    前言 This is a command-line utility for examining the Objective-C runtim information stored in Mach-O ...

  8. iOS设备中WiFi、蓝牙和飞行模式的开启与关闭(私有API)

    今天写了一段有关在iPhone程序中开关WiFi型号的代码,经测试运行良好. 我想不用我多说大家都应该知道以上的功能只能在越狱的设备中实现! 好了,闲话稍少叙,进入正题: 1.首先要在SpringBo ...

  9. [源码、文档、分享] iOS/iPhone学习系列、代码教程----~~~持续更新中~~~

    转自:http://www.devdiv.com/iOS_iPhone-iOS_iPhone%E5%AD%A6%E4%B9%A0%E7%B3%BB%E5%88%97%E3%80%81%E4%BB%A3 ...

最新文章

  1. 使用libFuzzer fuzz Chrome V8入门指南
  2. 为何说“内容+社交”是奥运发展化趋势?
  3. inet_ntop php,inet_ntop()
  4. Data Guard搭建困境突围(一)
  5. 坚持跑步与读书,方不辜负此生
  6. C# 多线程 与 委托
  7. 怎样让友情链接更加有效果
  8. 泰亚史诗萨拉斯服务器维护,泰亚史诗上古馈赠介绍 这个可是好东西
  9. 生产环境中Oracle常用函数总结
  10. ECC密钥结构和密码学基础
  11. Andrew Ng教你如何引领公司进入AI时代
  12. 高仿科学刀论坛源码 DZ模板
  13. javascript高级编程学习笔记(二)——继承
  14. freemarker ftl模板_Web开发人员必会的模板引擎技术之Freemarker
  15. centos7 安装 php7
  16. 节日日历for Ubuntu18.04
  17. word 公式下沉解决
  18. python如何实现单例模式_用Python实现设计模式——单例模式
  19. 博弈论学习笔记——拍卖原理
  20. 洛谷P1878 舞蹈课 贪心 堆

热门文章

  1. python:threading多线程模块-使用Queue模块保持线程同步
  2. 微软:SolarWinds 供应链攻击事件幕后黑手攻击全球24国政府
  3. 神秘黑客攻陷密码管理器 Passwordstate 部署恶意软件,发动软件供应链攻击
  4. 请君入瓮: 火眼自称遭某 APT 国家黑客组织攻击
  5. 电商巨头Shopify 两名员工被指窃取客户交易详情
  6. Kubernetes 竞争条件漏洞的发现过程简述
  7. 因缺思汀的绕过——实验吧
  8. [译] 如何用 Python 写一个 Discord 机器人
  9. 图论--tarjan求lca
  10. objective-c中的@selector()和 c /c++的函数指针