2017-04-24 10 views
1

私はモバイル決済アプリケーションを開発した会社で働き始めました。 「端末」-Appがあり、顧客の支払いを受け取り、ユーザーがダウンロードして(端末で)支払うために使用できる「Wallet」-Appがあります。既存のiOSアプリケーションをWhitelabelする最も良い方法

プロジェクトは、ウォレット用とターミナル用の2つのターゲットで構成されています。アプリは2カ国のみで使用されています。それはすべて非常に洗練されており、巨大なコードベースを持っています。

私たちのアプリケーション(両方のターゲット)を自分のブランドで(そしていくつかの追加機能を使用して、または特定の機能を使用せずに)使用したいクライアントのために、製品全体をホワイトリストにする必要があります。最良の方法はそれを達成することです。

は、新しいフォルダにプロジェクト全体をコピーして、おそらく最も「汚い」だろうという新しいフォルダ内の私の変更を行うには

  • 重複プロジェクト全体:

    は現在、私は3つのオプションを参照してくださいアプローチ。ある時点で、私の最初のコードベースは重複したものとは多すぎるかもしれません。さらに、セキュリティ関連の問題が発生した場合は、両方のプロジェクトで修正する必要があります。

    • 私は実際にこれは行くための最良の方法だろうと考えていた別の2つのターゲット

    を作成します。ウォレットとターミナルの新しいターゲットを作成し、ソースコード内の現在のターゲットをチェックして、どの機能を有効にするか無効にするかを決定することは、当初私にはうってつけでした。しかし、私は新しいターゲットを作成し、その新しいターゲットに対してすべての単一クラスでそのチェックマークを設定する必要があることに気付きました。それ以外に、それが本当に最善の方法であるかどうかはもう分かりません。

    • 使用する場合、条件

    第三の選択肢があればループで、一つだけのアプリで利用できるようになりますよう、すべての関数をラップすることです。セットアップが簡単で、コードベースをかなりうまく維持できるので、これを「最も安い」オプションと見なします。

    私には他に選択肢がありますか?どちらの方法で行きますか?

    ベースアプリケーションとホワイトラベルの間の最も大きな違いは、その言語になります。白いラベルのバージョンは右から左に表示されますが、iOSはすべてのミラーリングを実行する必要なく、その上でかなり良い仕事をしています。

答えて

4

あなたは間違いなく余分なターゲットを必要とします。新しいターゲットがあるということは、別のバンドルIDを使用して設定やその他の署名をするのが簡単だということを意味します。新しいターゲットにファイルを追加するためにたくさんのボックスをチェックしなければならないかもしれませんが(Xcodeでターゲットのビルドフェーズ|ソースをコンパイルするのが速いかもしれませんが)、アプリケーション間の実際の分離を作成する価値があります。

多くのソースコードチェックを使用して、どのホワイトラベルアプリを使用しているかを判断する代わりに、アプリをデータ駆動にすることを検討してください。 plistファイルを使用してアプリの能力を判断し、ターゲットごとに異なるplistファイルを使用することができます。

たとえば、機能名の束としてtrue/falseの値を持つ最上位の辞書featuresが含まれている可能性があります。ファイルを読み取るFeatureManagerがあり、利用可能かどうかを知りたいすべてのアプリケーションコンポーネントの単一の情報源です。

+0

入力いただきありがとうございます。私はこのように行くことにしました。既存のターゲットを複製して変更を加えるだけで、クラス間のメンバシップを処理するのはかなり簡単でしたが。 – gasparuff

関連する問題