2012-04-25 17 views
-1

の最近のバージョンで古いベースSDKとruningてアプリ、しかし私は、マックOS:これは初心者の質問に聞こえるかもしれないOS

のMac OSに新たなんだここで私は、古いベースSDKのletでコンパイルされたアプリケーションを持っています10.5バージョンといい、Mac OS 10.5バージョンでは問題なく動作しています。

最近のバージョンのMac OS 10.6、10.7では、正しく動作しないことがあります。

古いバージョンのOSは新しいバージョンのOSで互換性を維持する必要があります。基本的に、Appleが新しいバージョンのMac OSの古いアプリケーションとの互換性を維持していることを知りたいですか?

+0

これは正常に動作するはずです。おそらく、最新のOSにしか表示されない潜在的なバグです。 –

+0

例を挙げてください。 Macがアプリケーションの下位互換性をどのように処理するのか? – deimus

+0

あなたのOSを新しいバージョンにアップグレードすると、すべての古いアプリが突然動作しなくなるのですか? –

答えて

0

アップルは通常、APIの下位互換性を保証するために、OSのアップグレード時に古いアプリケーションが壊れないように非常に注意しています。彼らはAPISを削除しませんが、廃止予定とマークします。

あなたのアプリケーションがサポートされていない何かをしていたか、AppleがAPIの実装を変更したために公開されたバグがあった可能性が高いです。私の頭の上オフ

いくつかの原因が考え

  • あなたのアプリが変更されているAppleのプライベートAPIを使用しています。
  • あなたのアプリは、実装が変更されたAPIにいくつかの無効なパラメータを渡します(例では、APIがNSIntegerを要求するintを使用している可能性があります)。
  • あなたのアプリは無意識のうちに現在解決されているバグを悪用しています(ガーベッジコレクションやNSOperationQueuesは10.5に存在しましたが、ベータ版でした)。

-Wall警告フラグおよび有効静的アナライザで、最新のAPIに対する現在のXcodeを使用してアプリケーションを再コンパイルしてみます。これは、廃止予定のAPIを使用している場所、pargumentと戻り値の型に関する間違った前提、およびその他の問題のホストを示します。

+0

OK、それを得ました、詳細をありがとう、私が聞きたかったもの。もう1つの質問と私は答えとしてマークしています。最新のAPIをコンパイルすると、最新の利用可能な基本SDKを設定することを意味しますか?その場合、私は多くの減価償却された警告を得るでしょう。ベース10.5 SDKを使用してコンパイルして、各Mac OS Xの問題を個別に修正する必要はありませんか? – deimus

+1

@deimus:申し訳ありません、はい、10.7になる最新の基本SDKです。これは、すべての廃止予定の警告を取得する*だけです。これらを個別に処理する場合は、最新の基本SDKを使用しますが、デプロイメントターゲットは10.5、または10.5 SDKに対してコンパイルしてください – JeremyP

関連する問題