将10.5(Leopard)的PyObjC应用程序编译为xcode 10.6(Snow Leopard)

时间:2010-07-19 14:37:12

标签: python cocoa xcode pyobjc

我正在尝试在10.5上部署一个在Xcode 3.2.X(Snow Leopard)上开发的PyObjC(或Cocoa-Python)应用程序,它在10.6系统上运行得非常好。

应用程序无法在10.5上启动;它在启动时崩溃,并显示此错误消息(在崩溃报告中找到):

  

Dyld错误消息:     未加载库:/System/Library/Frameworks/Python.framework/Versions/2.6/Python     参考自:/Users/myuser/Documents/myApp.app/Contents/MacOS/myApp     原因:未找到图像

似乎某处Xcode硬编码了Versions / 2.6 python框架路径(而不是将其设置为Versions / Current)。

但是,我无法找到可以修改此链接路径的位置以设置为当前(或2.5,可能是有条件的)......

2 个答案:

答案 0 :(得分:1)

您所看到的路径很可能是您链接的Python框架版本的合法路径。这是最新版SnowLeopard(10.6.5)的正确路径,至少是这样。您可能已经在Xcode项目中正确设置了框架的路径。

如果我不得不猜测,我会说当你遇到这次崩溃时,你会在不同版本的Mac OS X上运行它,其中2.6版本的Python框架不存在。要探索此问题,请尝试导航到Python框架并列出您遇到此错误的系统上可用的版本:

cd /System/Library/Frameworks/Python.framework/Versions
ls -al

这给了什么输出?我猜它没有显示2.6版目录。您在运行此版本的Mac OS X?您可能需要针对早期版本的系统编译和链接您的应用程序,以使其在您看到此错误的任何系统上运行。

答案 1 :(得分:0)

XCode有所谓的SDK,可以用来定位最近的Max OS X版本。

目前已安装的SDK可在/ Developer / SDKs中找到。可以从XCode DVD安装其他SDK。

在使用XCode创建的项目中,可以通过以下方式选择SDK。打开获取目标信息,在“架构”部分中找到“基本SDK”设置。选择您需要的SDK并重建。

例如,Mac OS X 10.5 SDK包含Python版本2.5和2.3,当前版本指向2.5。