我想为了研究目的测试一些东西(不是App!)其中我想使用Xcode 9.2 (iOS 11)中的私有框架。为此,我需要将我希望使用的私有框架导入到我的Xcode项目中。
但在Xcode 9.2中,文件夹结构中不存在私有框架文件夹。
有什么想法可以让我做到吗?
发布于 2018-03-23 05:32:40
私有框架只是一个包,就像一个公共框架。您可以使用以下内容显式地加载它:
if let framework = Bundle(path: "/System/Library/PrivateFrameworks/BatteryCenter.framework") {
// Works only on real devices
framework.load()
}但是您需要对包含的类进行声明。您可以使用class-dump作为目标C头创建它们,并将over桥接头导入Swift中。
使用class-dump执行class-dump /.../PrivateFrameworks/XXX.framework/XXX。您需要框架作为二进制文件,而不是作为*.tbd文件。BatteryCenter.framework示例
类转储/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/BatteryCenter.framework/BatteryCenter
这将为框架中包含的所有类打印类声明。
注意,在设备或模拟器上,您应该使用
/System/Library/PrivateFrameworks/BatteryCenter.framework用来装包裹的。
https://stackoverflow.com/questions/49442883
复制相似问题