私は同様の問題に直面しています。以下は私の提案する解決策です - 私自身、2番目の解決策を実装しようとしています。
最初の解決策:
編集: John Ballinger が下のコメントで指摘しているように、UIDevice-with-UniqueIdentifier-for-iOS-5 の作成者である gekitz はライセンスを MIT に変更します :) ジョンに感謝します!
信頼できる UDID の代替品が必要な場合は、これを試してください。そのライセンスに注意してください。GitHub で他のソリューションを検索することもできます。
2番目の解決策:
この解決策の更新: あまりにも多くの開発者が HIG に違反すると言っているので、私はその考えを取り下げました。
はるかに柔軟で、アフィリエイトとのインストール キャンペーンを追跡できます (たとえば、すべてのアフィリエイトに特定の「UDID」値を割り当てることにより、アプリケーションがインストールされ、その「UDID」がサーバーに送信された後に後で確認できます)。
SO ユーザー: 以下のいずれかが HIG に違反し、事実上アプリケーションが拒否される可能性がある場合はお知らせください (特に手順 5、6、および 7)。
- 一意の値を持つ Cookie (サーバーによって生成される「UDID」など) を残すスクリプトを実行するページへのリンクを用意します。
- ユーザーは Mobile Safari でそのリンクをタップします。スクリプトは Cookie を保存し、アプリで iTunes ページにリダイレクトします (例:
http://itunes.apple.com/us/app/skype/id304878510?mt=8&uo=4 )。
- App Store アプリが起動し、アプリケーションのページが表示されます。
- ユーザーがアプリをインストールして起動します。
- 最初の起動時: スプラッシュの後、ユーザーにアプリを有効にするように求めるアラートを表示します (「有効にする」など、1 つのボタンで十分です)。
- 注: アプリをバックグラウンドにして再開したときに、アラートがまだ表示されていることを確認する必要があります。また、持っている必要があります
- ユーザーが「アクティブ化」をタップすると、アプリケーションが終了/中断され、iOS が Safari を開いてページ (たとえば、アプリにハードコードされたリンク) に移動し、Cookie の値 (「UDID」) を読み取り、それを渡す URL スキームを使用してアプリを起動します。 UDID」値。
- 注: Safari がそのリンクを開くことを許可する必要があります (追加のコーディングが必要になる場合がありますが、確かではありません)。
- EULA(たとえば)のあるページをユーザーに提示し、続行できるボタンを表示する必要があると思います。そのため、ユーザーにとってUXは明確です(つまり、アプリがサファリを開くために離れ、2番目のサファリが辞退して開くという経験はありませんあなたのアプリ)。
- アプリケーションの起動/再開、「UDID」の保存、およびアプリケーションのロック解除を行い、メイン UI などを表示できるようにします。
- 統計サーバーなどにイベントを生成するときに、保存された「UDID」を使用できるようになりました。
- アプリを開いて新しい値を渡すリンク (私の場合はニュースレターで配布されるアプリの URL スキーム リンク) を共有することで、後で「UDID」を更新/削除できます。
注:URLスキームやプッシュ通知などを使用して(または使用せずに)アプリを開始/再開するなど、多くのエッジケースをカバーする必要があります.
PSしばらく外出しますが、後でフィードバックを確認します. ありがとう!