ios - 如何在 iOS 中加载新生成的私有(private) API header ?

标签 ios iphone-privateapi

我在 iOS 方面很笨,尤其是在私有(private) API 方面。

我有要测试的应用程序,现在我需要使用私有(private) API(此应用程序不适用于 App Store)。

我从 iOS-Runtime-Headers 下载了生成的 header 下一步是什么?

/System/Library/ 下,我有包含 Frameworks、...、PrivateFrameworks 的库列表。

我是否需要用从 iOS-Runtime-Headers 复制的框架替换原来的框架?

因为我有其他仅使用 Public API 的应用程序,我不想破坏它们。

他们通过发布的链接告诉他们验证库,例如:

NSBundle *b = [NSBundle 
        bundleWithPath:@"/System/Library/PrivateFrameworks/GAIA.framework"];
BOOL success = [b load];

但是这里的路径指向原来的路径。

或者我错过了什么,

谢谢

最佳答案

首先,不要替换 Apple 提供的任何 header 。

通常,它通过以下两种方式之一完成:

1) 您可以将其中一些 header 复制到您的项目中,并像包含任何其他 header 一样包含这些文件

#import "SomeHeader.h"

2) 有时你必须对它们进行一些清理(编辑)。通常,这些 header 中包含类似 in 的内容:

#import "NSObject.h"

编译器将无法找到它,因为 NSObject 是内置类。所以,你需要删除它。

3) 如果您只需要其中的几种方法,那么 Tuukka Nori 解决方案是正确的。

除此之外,您还需要(静态或动态)链接到适当的私有(private)框架(仅包含 header 是不够的)。

关于ios - 如何在 iOS 中加载新生成的私有(private) API header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22989232/

相关文章:

iOS 以编程方式关闭静音振动 [私有(private) API]

ios - 使用 App-prefs :root? 是否被视为私有(private) API

ios - AirPlay iOS 接收器/录音机

ios - 捏缩放uiscrollview仅在x轴上

ios - NSArray 字典

ios - 长按时UILabel和UITextField(UITextView、UIWebView)一样可以实现 "select"和 "copy"吗?如何实现?

iphone - 是否有任何用于检测发送或接收的短信的iphone private api

iphone - 如何在移动 Safari 中计算可视区域的高度(即窗口高度减去地址和书签栏)?

android - 在 Viber 或 Telegram 等聊天应用程序中将客户端连接到服务器

iOS 11 列出所有应用程序