有料のiOS
アプリを無料に変更してad based
、およびin-app purchase
オプションで広告を削除します。
これは、アプリを起動したばかりの場合は良い考えのように思えますが、3万回以上の有料ダウンロードがあり、無料の新しいバージョンに更新したときに広告が表示されないようにしたいと思います。
ここにオプションはありますか?
IOS 7以降、これは適切なレシート検証を使用して行うことができます。 iOS 7では、購入したアプリのレシートを取得できます。領収書のデータの一部には、ユーザーによるアプリの最初の購入バージョンに関する情報が含まれています。そのバージョンを確認し、IAPを使用した無料のアップデートのリリース前のバージョンである場合は、ユーザーがアップグレードを再度購入することなく、ユーザーに完全な機能を提供することを選択できます。
もちろん、更新したアプリをiOS 6で動作させたい場合、これはオプションではありません。
レシート検証の詳細については、 レシート検証プログラミングガイド を参照してください。
すべての領収書を取得して、次のデータで分析してみてください。
"expires_date" = "2017-09-24 11:25:19 Etc/GMT";
"original_purchase_date" = "2017-09-24 11:20:21 Etc/GMT";
"product_id" = "com.yourapp.service";
1。アプリストアからすべてのユーザーのレシートを取得します
+ (NSArray*)all_receipts{
// Load the receipt from the app bundle.
NSURL *receiptURL = [[NSBundle mainBundle]appStoreReceiptURL];
NSData *receipt = [NSData dataWithContentsOfURL:receiptURL];
if(!receipt){
//no receipts yet...
return nil;
}
NSError *error;
NSDictionary *requestContents = @{@"receipt-data": [receipt base64EncodedStringWithOptions:0],
@"password":YOUR_SECRED_SHARED};
NSData *requestData = [NSJSONSerialization dataWithJSONObject:requestContents
options:0
error:&error];
if (!requestData) {
return [NSArray array];
}
// Create a POST request with the receipt data.
//get current qa / production url
BOOL sandbox = [[receiptURL lastPathComponent]isEqualToString:@"sandboxReceipt"];
NSURL *storeURL = [NSURL URLWithString:@"https://buy.iTunes.Apple.com/verifyReceipt"];
if (sandbox) {
storeURL = [NSURL URLWithString:@"https://sandbox.iTunes.Apple.com/verifyReceipt"];
}
NSDictionary *jsonResponse = [LTServer postUrl:storeURL.absoluteString attach:requestContents];
NSLog(@"jsonResponse %@",jsonResponse);
if(!jsonResponse){
return [NSArray array];
}
NSArray *receipts_data = jsonResponse[@"latest_receipt_info"];
return [receipts_data mutableCopy];
}
2。各レシートには辞書が含まれます:
"expires_date" = "2017-09-24 11:25:19 Etc/GMT";
"expires_date_ms" = 1506252319000;
"expires_date_pst" = "2017-09-24 04:25:19 America/Los_Angeles";
"is_trial_period" = true;
"original_purchase_date" = "2017-09-24 11:20:21 Etc/GMT";
"original_purchase_date_ms" = 1506252021000;
"original_purchase_date_pst" = "2017-09-24 04:20:21 America/Los_Angeles";
"original_transaction_id" = 1000000339209266;
"product_id" = "com.yourapp.service";
"purchase_date" = "2017-09-24 11:20:19 Etc/GMT";
"purchase_date_ms" = 1506252419000;
"purchase_date_pst" = "2016-11-27 04:20:19 America/Los_Angeles";
quantity = 1;
"transaction_id" = 1000000337203266;
"web_order_line_item_id" = 1000000030161297;
現在のアプリにユーザーのデフォルトまたはキーチェーンにデータがある場合、それが指標になる可能性があります。 (新しいバージョンで)アプリを最初に開いたときに、次のようなコードを実行します。