我想从任意包标识符创建一个包,
例如com.apple.iokit.IOStorageFamily
这不是一个不合理的事情,因为bundle ID应该
是唯一的,但明显的代码不起作用:
NSString* bID = @"com.apple.iokit.IOStorageFamily"; NSBundle* bundle = [NSBundle bundleWithIdentifier:bID];
此代码仅适用于您已加载的包
(问号,鸡和鸡蛋问题),事实上,
在您可以执行任何操作之前,您必须
了解比标识符更多的信息
.对于上面的ID样式,
我将最终组件转出并转换为其
/System/Library/Extensions/IOStorageFamily.kext
然后按路径加载.
这是最先进的技术还是有更普遍的方式?
用这个
NSString *path = [[NSWorkspace sharedWorkspace] absolutePathForAppBundleWithIdentifier:@"com.apple.TextEdit"];