2011-01-27 12 views
3

ここには、プラットフォームごとに異なる要件があることに気付きました。私はそれが単一のプロジェクトを構築することが可能かどうか疑問に思っていたが、それぞれのターゲットがMac OS X(CD /インストールビルドのようなもの)、Apple Mac Store、iOSデバイスである複数のターゲットがある。1つのプロジェクトをXCodeに保存できますが、Mac OS X、Apple Mac Store、iOSデバイス用に構築することはできますか?

もしこれについて間違った方法をしたら、私は知りたいです!私は主にPC上で開発していますが、App Storeの状態ではできるだけ広がりたいと思っています!

答えて

2

Macアプリストアと個別に配布されるMacアプリケーションのターゲットを別々にすることは簡単です。レシート確認コードが条件付きでアプリストアのターゲットに含まれ、他のターゲットには含まれないようにするだけで済みます。あなたのカスタムライセンススキームはもう一方の方法に含まれています。 2つのターゲットで異なるオペレーティングシステムをターゲットにすると、少し複雑になりますが、それは耐えられるものではありません。実行時にクラスやセレクターが存在するかどうかをテストして、

ちなみに、これらのターゲットには別ファイルInfo.plistも必要です。これは、アプリストアのターゲットにSparkleのようなものを追加する必要がないか、そういったものを含める必要があるだけでなく、それぞれのターゲットに固有のバンドル識別子が必要なためです。あなたがあなたのアップデーターを危険にさらしたくないと思っていたり、アップルが別の仕組みを使って配備したアプリを更新しようとしたりしないように、アプリストアがインストールされていて、しかし、これは実際にあなたのXcodeプロジェクトを編成することではなく、展開の問題です。

+0

ありがとうございます、これは可能ですが、私はこの方法でこのタスクをとにかく実行できません。関係なく、情報をありがとう! – Znoey

0

ほとんどの場合、はいです。すべてのMac/iOSアプリはObjective-Cで書かれ、コードは非常に似ています。ただし、iOSデバイスはMacとは異なる画面サイズを持ち、お互いにも異なることに注意してください。つまり、入力されたメタファーは異なり、UIは異なります。あなたが望むことを実行することは可能ですが、一度コードを作成して三度コンパイルすることはお勧めできません。

私はXcode 4を使用していないと言いました。異なるデバイス用に異なるビルドを行うことを検討している場合は、アプリロジックと入力ロジックをできるだけ個別に書きたいと考えています。次に、ビルドごとに1つずつ、複数のターゲットを作成します。ターゲットごとにコンパイラフラグを定義します。コードでは、これらのフラグを使用してビルドに適切なコードを使用します。

+0

ありがとうございました!私はXCode 4(3.2.5はここ)にいませんが、それが可能だったように思えます。私たちはあなたがすでに他のプラットフォーム用に提案したことを行いますが、私たちの場合、プロジェクトを単一のエンティティとして保有していれば、私たちの利益にはなりません。それは完全に可能ですが^^^ – Znoey

0

3.2.5以降では、これはまったく問題ではありません。すべてのビルド設定をプロジェクト全体に適用する必要はありませんが、ターゲットごとに指定することはできます。 適切なタイプのターゲット(Cocoa Touch、Cocoaなど)を追加するだけです。

+0

はい、私は何を考えていたのですか?ターゲットごとの基準は素晴らしいですが、プロジェクトごとに物事が少し乱雑になる場所です。以前の投稿は基本的に状況を説明しています。 – Znoey

関連する問題