1

少し問題があります..修正があることは知っていますが、それが何であるかはわかりません。

問題は次のとおりです。数週間前 (2 週間ほど前)、サーバー側のデータの問題により、4 つのアプリをアプリストアから削除する必要がありました。すべてのアプリを同時に最新バージョンにアップグレードして、いくつかの新機能を追加することにしました。(私は、異なる空港をターゲットにした同じアプリを 6 つ持っています)。これらのバージョンの違いは次のとおりです。

  • 各空港のマップを組み合わせた 50 ~ 80 枚程度の画像のセット。ファイル名は各アプリで同じです。(どうすれば解決できますか?)
  • アプリの名前
  • Default.png (もちろん iPad と Retina 用のものも)
  • アプリのアイコン
  • 詳細ページのコンテンツ (.plist ファイルに存在)
  • ページがアプリを参照する「概要」ページのコンテンツ
  • 一部のコンテンツは、アプリが対象とする空港に言及して、コンテンツをローカライズします。
  • もちろん、プロビジョニング プロファイルです。

これらのことを追跡するのは面倒なので、1 つのコード ベースで 1 つのプロジェクトを作成し、画像と詳細 (前述) を追加するだけで、新しいバージョンが表示されるようにしたいと考えています。「アーカイブ」すると、すべてのアプリがビルドされ、アップルに送信できるようになります (これは手動で行う必要があります)。

どうすればこれを達成できますか?

4

2 に答える 2

2

複数のターゲットと条件付きコンパイルを使用する前にこれを行いました。成果物ごとに 1 つのターゲットが必要です。通常の方法で、各ターゲットの名前、アイコンなどを構成できます。

各空港のマップを組み合わせた 50 ~ 80 枚程度の画像のセット。ファイル名は各アプリで同じです。(どうすれば解決できますか?)

イメージを別のディレクトリに保持し、ターゲットごとにそのアプリのイメージのみを追加します。この手法は、ファイルからロードできる場合、about ページのコンテンツに対しても機能します。


また、アプリごとに定数に異なる値を定義できるように、条件付きコンパイルも使用しています。

これを行うには、その他の C フラグとその他の C++ フラグに設定を追加して、アプリを識別します。何かのようなもの:

-DAPP_VARIANT=1

コードでは、次を使用してアプリ固有の動作を実装できます。

- (id)init
{
#if APP_VARIANT == 1
    self->server_url = [[NSURL URLWithString:@"http://app1.example.com"] retain];
#elif APP_VARIANT == 2
    self->server_url = [[NSURL URLWithString:@"http://app2.example.com"] retain];
#endif
}
于 2012-04-16T21:31:31.280 に答える
0

すべてのメイン コードに 1 つのバージョン管理ブランチを使用し、データを入力する場所で 6 回 (空港ごとに 1 回) フォークすることはできませんか? 新しいコードを変更したら、その変更をメイン ブランチからフォークにプッシュするだけで完了です。

于 2012-04-16T19:08:20.263 に答える