2014-09-25 303 views
0

我必須挖掘並更新一個我三年前上一次工作的舊項目。它必須在PowerPC Mac上運行在10.5以下。我有一臺運行Xcode 3.1.2的PowerPC Mac。該應用程序使用包含在Xcode項目中的外部框架作爲依賴項。如何在Xcode 3中設置框架的搜索路徑?

當我嘗試運行該應用的發佈版本時,它未找到嵌入式框架。我查看了應用程序包並驗證了該框架正在被正確複製。 otool -L告訴我它正在尋找/Library/Frameworks/SM2DGraphView.framework/Versions/A/SM2DGraphView

正確運行的應用程序的Debug版本正在查找(並找到)/Users/hyades/Development/SM2DGraphView 1.6 mine/SM2DGraphView Source/build/Debug/SM2DGraphView.framework/Versions/A/SM2DGraphView

我曾在英特爾和PowerPC機器上構建過應用程序的工作副本,它們都在正確的路徑中尋找:@executable_path/../Frameworks/SM2DGraphView.framework/Versions/A/SM2DGraphView

我已經去發佈配置的構建設置,並將框架搜索路徑設置爲@executable_path/../Frameworks,但otool -L仍然表示它正在尋找/Library/Frameworks。如何讓Xcode告訴應用程序在@executable_path/../Frameworks而不是/Library/Frameworks中搜索框架?我不記得之前必須做任何特定的項目設置。這不是我最初用於開發的機器。它可能是全球Xcode設置嗎?

回答

1

我從來沒有想過爲什麼行爲會改變,但我確實弄清楚瞭如何解決它。我添加了一個運行腳本生成階段使用這個命令:

install_name_tool -change /Library/Frameworks/SM2DGraphView.framework/Versions/A/SM2DGraphView @executable_path/../Frameworks/SM2DGraphView.framework/Versions/A/SM2DGraphView $TARGET_BUILD_DIR/$EXECUTABLE_PATH

現在我的應用程序看起來在自己捆綁了框架。