2

iOSアプリの2つのバージョンを提供したいと思います。有料と無料の広告付きです。私の目標は、コードベースを同じに保ち、ビルドするバージョンを示すフラグのみを変更することです。

ここで説明するように、この分離をサポートするために、アプリ用に2つのビルドターゲットを用意しました。これらのターゲットはバンドルIDが異なります。

ここで、指定されたバンドルIDに基づいてフラグを変更したいと思います。メインバンドル識別子を読み取ろうとしましたが、完全に機能しました。そして、ここから私の質問が始まります。

無料アプリをダウンロードした後にメインバンドルIDを変更して、有料版への不正アクセスを取得することはできますか?私はここここ、そしてここでそうではないことを発見しました。

しかし...脱獄した電話はどうですか?私はいくつかのコメントを読みました、そうです。

もしそうなら、どうすればアプリを保護できますか?

のようなプリプロセッサディレクティブを定義することも考えてい#define FREE_APPました。それから私はチェックします:

#ifdef FREE_APP
    //show ads
#endif

ただし、このソリューションは、ビルドを選択するだけでは完全に自動化することはできません。この値を手動で変更する必要があるため、最適ではありません。提案に感謝します。

4

1 に答える 1

3

あなたの質問に直接答えるために、ほぼ確実にそうです。しかし、私はそれは問題ではないと主張します。

あなたのアプリを海賊版にしたい人は、おそらく誰かがあなたの有料アプリを購入してクラックするまで待つでしょう。彼らがあなたの無料版をハッキングする煩わしさを経験するのではないかと思います。

個人的には、私のプロジェクトには2つのターゲットがあります。2つのアプリInfo.plistのsは異なり、無料バージョン#defineのビルド設定にはがあります。私のコードには#ifdef、あなたが示唆しているようにたくさんのがあります。自動化することは可能です(ただし、少し面倒になることがあります)。

もちろん、他のオプションは、フルバージョンにアップグレードするためのInAppPurchaseを備えた単一のアプリです。パテントトロールに注意してください。

于 2011-06-07T13:44:23.937 に答える