繼續使用this問題。如何讓我的代碼發現一個嵌入式工具?
我有一個嵌入在框架中的命令行實用程序。該實用程序被第三方用於處理某些處理。我無法使用該實用程序。
我的問題是,我不知道如何在磁盤上找到我的實用程序。它捆綁在我的主應用程序中的一個框架中,但我不知道如何找到正確的路徑。
Halp?
繼續使用this問題。如何讓我的代碼發現一個嵌入式工具?
我有一個嵌入在框架中的命令行實用程序。該實用程序被第三方用於處理某些處理。我無法使用該實用程序。
我的問題是,我不知道如何在磁盤上找到我的實用程序。它捆綁在我的主應用程序中的一個框架中,但我不知道如何找到正確的路徑。
Halp?
只要你已經設置一個適當的捆綁標識符(CFBundleIdentifier
)條目的Info.plist
文件.framework的,你可以使用NSBundle
的bundleWithIdentifier:
方法以獲得代表框架捆綁,然後用pathForResource:ofType:
拿到路徑可執行文件。只要確保給框架一個唯一的包標識符(與主應用程序包的包標識符不同)。
例如,假設我有一個應用程序包CoolApp.app
,其CFBundleIdentifier
的com.blah.CoolApp
。它有一個TextureKit.framework
框架在CoolApp.app/Contents/Frameworks/TextureKit.framework
,並有CFBundleIdentifier
的com.blah.TextureKit.framework
。在TextureKit.framework
的Resources
文件夾中有一個名爲textureUtility
的可執行文件。我可以使用下面的代碼來獲取完整路徑textureUtility
:
NSString *path = [[NSBundle bundleWithIdentifier:@"com.blah.TextureKit.framework"]
pathForResource:@"textureUtility"
ofType:@""];
爲了澄清,你想從你的主應用程序包的代碼中編程獲取的路徑可執行命令行? Whereabouts是位於框架內的命令行可執行文件(例如,「Resources」文件夾等)? – NSGod 2013-03-25 18:23:47
是的,資源。 – ruipacheco 2013-03-25 21:58:04