2012-01-27 16 views
0

iPhoneアプリを開発するのが初めてです。アプリ内購入アプリケーションを開発中です。iTunesからアプリ内購入アプリケーションを再インストールする

試用期間が1週間のアプリ内購入を実装するアプリケーションを開発するユーザーは、試用期間まで試用期間を使用してから&アプリをインストールしてから、試用期間をもう一度試してから再インストールします。何が私の質問です、もし彼didn、tは、アプリを購入したので、再びそれを再インストールすることができませんでした。どのように私はユーザーの削除を制御することができます&は、iTunesからアプリを購入しない再インストールする。

答えて

1

最初にアプリケーションを開いたときのタイムスタンプとともに、サーバーのデータベースにユーザーの一意の識別子を格納できます。その後、ユーザーが最初にアプリケーションを開くと、サーバーと照合して、1週間の有効期限が切れていないことを確認します。

デバイスの一意の識別子を取得するには、[[UIDevice sharedDevice] uniqueIdentifier]を使用して文字列を返します。ただし、このメソッドは推奨されていないため、デバイスを一意に識別する別の方法(たとえば、Wi-Fi MACアドレスをハッシュするなど)を調べる必要があります。

唯一の制限は、ユーザーがアプリを起動できるようにするためにはインターネットにアクセスする必要があるということです。ユーザーが再インストールするたびにインターネットアクセスを無効にし、あなたができることはあまりありません - それは、アプリのための1ドルを支払うことを避けるために通過する努力の膨大な量ですが。

例サーバコード:

URL:http://example.com/checkValid.php?udid=A1B2C3D4E5F6

$udid = mysql_real_escape_string($_GET['udid']); 
$q = mysql_query("SELECT * FROM devices WHERE udid = `$udid`;"); 
if($r = mysql_fetch_assoc($q)){ 
    $timeElapsed = time() - $r['firstLaunch']; 
    if($timeElapsed > 7*24*60*60){ // one week 
     echo "expired"; 
     die(); 
    } 
}else{ 
    $q = mysql_query("INSERT INTO devices (`udid`,`firstLaunch`) VALUES ('$udid','".time()."')"); 
} 
echo "success"; 

次に、あなたのアプリケーションでは、応答がexpiredであるかどうかをチェック。そうであれば、試用版がアップしていることをユーザーに伝えます。

App Storeのポリシーについて少しノートこれは、一定時間後に期限が切れる「トライアル」でアプリケーションを作成するために、実際に AppleのApp Storeのガイドラインに対してです。

0

明らかにAppleは[[UIDevice sharedDevice] uniqueIdentifier]を使用するアプリケーションを拒否し始めました。 MKStoreKit blogのKarlから開始されたスレッドを参照してください。

macアドレスを取得するコードはhereです。 UDIDを作成するために使用することができます。私はそれもデバイスの実際のMACアドレスを送信する場合、アップルはまた、アプリケーションを拒否することを読んだので、あなたはUDIDに変換する必要があります。その投稿はrfc4122仕様を使用することを示唆しています。

関連する問題