6

Xcode 3.2.X (Snow Leopard) で開発された PyObjC (または Cocoa-Python) アプリケーションを 10.5 にデプロイしようとしていますが、これは 10.6 システムで完全に正常に動作します。

アプリケーションは 10.5 で起動しません。起動時にクラッシュし、次のエラー メッセージが表示されます (クラッシュ レポートを参照)。

Dyld エラー メッセージ: ライブラリが読み込まれていません: /System/Library/Frameworks/Python.framework/Versions/2.6/Python Referenced from: /Users/myuser/Documents/myApp.app/Contents/MacOS/myApp Reason: image not found

どこかで Xcode が Versions/2.6 python フレームワーク パスをハードコードしているようです (たとえば、Versions/Current として設定するのではなく)。

ただし、このリンク パスを変更して Current (または 2.5、場合によっては条件付き) に設定できる場所を見つけることができませんでした...

4

2 に答える 2

1

表示されているパスは、リンク先の Python フレームワークのバージョンへの正当なパスである可能性があります。これは、少なくとも SnowLeopard の最新バージョン (10.6.5) の正しいパスです。Xcode プロジェクトでフレームワークへのパスを正しく設定している可能性があります。

推測するなら、このクラッシュが発生した場合、Python フレームワークの 2.6 バージョンが存在しない別のバージョンの Mac OS X で実行していると言えます。この問題を調べるには、Python フレームワークに移動し、このエラーが発生したシステムで使用可能なバージョンを一覧表示してみてください。

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

それはどのような出力をもたらしますか?バージョン 2.6 のディレクトリが表示されていないと思います。これを実行している Mac OS X のバージョンはどれですか? このエラーが発生しているシステムでアプリケーションを実行するには、システムの以前のバージョンに対してアプリケーションをコンパイルおよびリンクする必要がある場合があります。

于 2010-12-03T03:12:58.420 に答える
0

XCode には、最近の Max OS X バージョンから以前の Max OS X バージョンをターゲットにするために使用できるいわゆる SDK があります。

現在インストールされている SDK は、/Developer/SDKs にあります。追加の SDK は、XCode DVD からインストールできます。

XCodeで作成したプロジェクトでは、以下の方法でSDKを選択できます。Get info of a target を開き、Architectures セクション内の Base SDK 設定を見つけます。必要な SDK を選択して再構築します。

たとえば、Mac OS X 10.5 SDK には Python バージョン 2.5 および 2.3 が含まれており、現在のバージョンは 2.5 を指しています。

于 2011-01-16T21:24:07.287 に答える