私は、Mac OS X 10.6 のみのテクノロジーを利用するアプリケーションを構築していますが、10.5 Leopard との下位互換性を犠牲にすることはありません。
これを行う方法は、10.6 SDK をベース SDK として設定し、すべてのフレームワークを弱リンクし、次の説明に従って展開ターゲットを 10.5 に設定することです。
これは正常に機能します。Snow Leopard 専用の呼び出しを行う前に、セレクターまたはクラスが実際に存在することを確認する必要があります。または、電話をかける前に OS のバージョンを確認することもできます。
問題は、これが信じられないほど壊れやすいことです。10.6 で 1 回の呼び出しを行うと、Leopard との互換性が失われます。そのため、通常のコード コード補完機能を使用しても危険な場合があります。
私の質問: リリース ビルドを行う前に、どの呼び出しが 10.5 で定義されていないかを確認する方法はありますか? ある種の静的分析、または単なるトリック (ターゲットが他の SDK を設定しますか?) でさえ可能です。
何かをリリースする前に、Leopard マシンでテストする必要があるのは明らかですが、それでも、すべてのリリースの前にプログラムのすべてのパスをたどることはできません。
アドバイスをいただければ幸いです。
よろしくお願いします、
フランク