2014-09-25 321 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

现在我的应用程序看起来在自己捆绑了框架。