如何让我的代码发现嵌入式实用程序?

时间:2013-03-25 17:23:34

标签: xcode macos cocoa frameworks

继续this问题。

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

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

HALP?

1 个答案:

答案 0 :(得分:1)

如果您为.framework的CFBundleIdentifier文件设置了正确的包标识符(Info.plist)条目,则可以使用NSBundle的{​​{3}}方法获取表示框架的bundle,然后使用bundleWithIdentifier:获取可执行文件的路径。只需确保为框架提供唯一的包标识符(与主应用程序包的包标识符不同)。

例如,假设我的应用包CoolApp.app的{​​{1}}为CFBundleIdentifier。它有一个com.blah.CoolApp框架,位于TextureKit.frameworkCoolApp.app/Contents/Frameworks/TextureKit.frameworkCFBundleIdentifiercom.blah.TextureKit.framework Resources文件夹中的TextureKit.framework文件夹是名为textureUtility的可执行文件。我可以使用以下代码获取textureUtility的完整路径:

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