5

最初の比較的単純な Xcode プロジェクト (カスタム インストーラー) の完成に近づいており、22 のビルドを行う必要があります。はい、それはタイプミスではありませんでした! ビルドごとに異なるのは、バンドルの Resources フォルダー内のソース ファイルである PRODUCT_NAME と、ソフトウェアが試用版かどうかを示す変数です。

私がこれまでに読んだことから、既存のターゲットを複製することは、ビルドが2、3しかない場合にそれを行う方法のようですが、それは22にも当てはまりますか? 大変な作業のようです。私が念頭に置いていたのは、PRODUCT_NAME、Resources フォルダーにコピーされるソース ファイル、および試用モードのブール値を変更する方法でした。しかし、私は立ち往生しています。

ありがとう

4

4 に答える 4

2

過去にこれを達成した 1 つの方法は、ローカリゼーションを使用することです。フレーバー付きマクロを使用する場合NSLocalizedString、一部のマクロには tableName (つまり、デフォルトとは異なる文字列ファイル) を指定する機能があります。その後、別のブランドのビルドが必要になるたびに、適切なキーと値のペアを使用して新しい .strings ファイルを作成するだけです。

次に、デフォルト値でコードをビルドするビルド ターゲットと、ビルドされたコードを取得して適切な .strings ファイルを適切な場所にコピーする 2 番目のターゲットを用意します。これは非常にうまく機能し、さまざまなビルド フレーバーを管理できるようになりました。

于 2009-11-16T18:32:04.627 に答える
2

私の直感によると、1 つのソース ファイルだけが異なる 22 の異なるビルドは間違っているということです...

問題をひっくり返すことはできませんか?アプリケーションの 22 の異なるバージョンすべてを 1 つのビルドに含め、22 の異なるバージョンのいずれかをロック解除する .app フォルダーに 22 の異なるキー/ライセンス ファイルを提供します。

于 2009-11-16T17:49:03.963 に答える
1

この多数のビルドを維持するために、CMakeをチェックアウトすることをお勧めします。

スクリプティングは確かに仕事を成し遂げることができますが、プロジェクトがかなりの数のファイルに成長したり、ビルドの数を変更したりした場合、スクリプトの変更は面倒になる可能性があります. CMake を使用すると、これらのスクリプトを整理できるため、後で変更を行うのが少し簡単になります。

于 2009-11-16T17:44:59.977 に答える
1

おそらく、.xcodeproj テンプレートを使用してsed、必要なすべての組み合わせを生成するスクリプトを作成するでしょう。

于 2009-11-16T17:43:11.510 に答える