继续this问题。
我在框架中嵌入了命令行实用程序。第三方使用该实用程序来处理某些处理。我无法使用该实用程序。
我的问题是,我不知道如何在磁盘上找到实用程序。它捆绑在我的主应用程序的框架中,但是我不确定如何获得正确的路径。
?
最佳答案
如果已为.framework的CFBundleIdentifier
文件设置了正确的捆绑包标识符(Info.plist
)条目,则可以使用NSBundle
的bundleWithIdentifier:
方法获取表示框架的捆绑包,然后使用获取可执行文件的路径。只需确保为框架提供一个唯一的捆绑包标识符(与您的主应用捆绑包的捆绑包标识符不同)即可。
例如,假设我有一个pathForResource:ofType:
为CoolApp.app
的应用程序捆绑包CFBundleIdentifier
。它具有位于com.blah.CoolApp
的TextureKit.framework
框架,并且具有CoolApp.app/Contents/Frameworks/TextureKit.framework
的CFBundleIdentifier
。 com.blah.TextureKit.framework
的Resources
文件夹中有一个名为TextureKit.framework
的可执行文件。我可以使用以下代码获取textureUtility
的完整路径:
NSString *path = [[NSBundle bundleWithIdentifier:@"com.blah.TextureKit.framework"]
pathForResource:@"textureUtility"
ofType:@""];