继续this问题。

我在框架中嵌入了命令行实用程序。第三方使用该实用程序来处理某些处理。我无法使用该实用程序。

我的问题是,我不知道如何在磁盘上找到实用程序。它捆绑在我的主应用程序的框架中,但是我不确定如何获得正确的路径。

最佳答案

如果已为.framework的CFBundleIdentifier文件设置了正确的捆绑包标识符(Info.plist)条目,则可以使用NSBundlebundleWithIdentifier:方法获取表示框架的捆绑包,然后使用获取可执行文件的路径。只需确保为框架提供一个唯一的捆绑包标识符(与您的主应用捆绑包的捆绑包标识符不同)即可。

例如,假设我有一个pathForResource:ofType:CoolApp.app的应用程序捆绑包CFBundleIdentifier。它具有位于com.blah.CoolAppTextureKit.framework框架,并且具有CoolApp.app/Contents/Frameworks/TextureKit.frameworkCFBundleIdentifiercom.blah.TextureKit.frameworkResources文件夹中有一个名为TextureKit.framework的可执行文件。我可以使用以下代码获取textureUtility的完整路径:

NSString *path = [[NSBundle bundleWithIdentifier:@"com.blah.TextureKit.framework"]
                           pathForResource:@"textureUtility"
                                    ofType:@""];

10-08 01:47