0

状況:

私はいくつかの中心的な機能を備えた基本的なアプリを持っています。
私のクライアント(潜在的には数十)はすべて、アプリストアで独自にカスタマイズしたアプリを望んでいます。

問題

アプリストアに数十のアプリがあり、コア機能の一部を変更したい場合は、対応するプロジェクトの各ファイルを更新し、コンパイルし、iTunes Connectを実行し、アップロードする必要があります。小さな変更はすべて、数日かかる可能性があります。不注意な仕事の。

質問

gitなどのバージョニングシステムを使用して、コア機能を備えたコードの一部を個別に管理し、コアファイルに変更をコミットしたときにすべてのプロジェクトが自動的に更新されるようにする方法はありますか?

このプロセスを管理しやすくする他の方法はありますか?

4

4 に答える 4

3

通常、iOSで再利用する必要のあるコア機能がある場合は、他のプロジェクトに含めることができる静的ライブラリを作成するか、(コア機能に静的ライブラリに含めることができないアセットなどが含まれる場合) )サブプロジェクトがあります。ただし、どちらの場合も、各アプリプロジェクトがコア機能プロジェクトとのターゲット依存関係を持っていることを確認して、常に最新の変更で再構築する必要があります。

  1. すべてのコア機能を備え、クライアント固有のコードを参照せずにコンパイルできるMundiCoreFrameworkxcodeプロジェクトを作成します
  2. このコアフレームワークプロジェクトのgitリポジトリを作成します
  3. このコア機能を使用する各アプリプロジェクトで、MundiCoreFrameworkをgitサブモジュールとして追加し、それをサブプロジェクトとしてアプリプロジェクトに追加します。
  4. コアフレームワークを更新するたびにgit sumodule update、アプリごとに発行して再コンパイルできます。
于 2011-08-23T16:37:56.587 に答える
1

私はXcodeの「ターゲット」構造に精通していないので、実際にはそれがより良いアプローチかもしれません。しかし、これには間違いなくgitを使用できます。

おそらく、すべてのユニバーサルなものが存在する「マスター」ブランチが必要であり、次にアプリの「カスタマイズされた」バージョンごとにブランチが必要です。

マスターに変更がある場合は、各カスタムブランチを介してそれらの変更をマージします。次に、各支店から、ストアに送信する製品を作成します。

各ブランチでは、アプリID、バージョンごとに必要なアートやテキストの変更、このバージョンに適したキー設定などを個別に設定します。これらの設定はすべて、カスタムバージョンブランチに対してローカルのままにすることができます。

これはgitで完全に有効なワークフローです。ほとんどの人がそれを使用する方法ではありませんが、それはほとんどの人が多くではなく、1つの製品に向かっているためです。

于 2011-08-23T15:18:40.103 に答える
1

もう1つのオプションは、gitサブモジュールを使用して共通コードを整理し、個々のプロジェクトに共通コードをサブモジュールとして追加することです。

于 2011-08-23T15:22:50.920 に答える
0

Targetを使用して、クライアントごとにアプリをカスタマイズできます。これは、1つのコードベースを維持し、同じコードベースを持つ複数のアプリを持つことができることを意味します。

これでは、appstore部分のアプリの更新は解決されません。これは、私が知っている限り、varとして手​​動で行う必要があります。

于 2011-08-23T15:01:50.870 に答える