アプリの開発中にレシートがないのはなぜですか?
Xcode 7.3.1 から iOS (7、8、9) アプリを実行しています。アプリの領収書が見つからないようです。このアプリは現在 App Store で出荷されているため、開発者の資格情報と「サンドボックス」ユーザー ログインがあります。
シミュレーター
次のコードを実行する場合:
NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL];
NSLog(@"url: %@", url);
iPhone 6s Plus の Simulator 9.3 での結果:
ファイル:///Users/Bourque/Library/Developer/CoreSimulator/Devices/7F32850A-CC1A-45A3-8ED6-95C75CD9DD44/data/Containers/Data/Application/46BDF021-D2A3-418E-91E1-61A15215942B/StoreKit/receipt
しかし、2 番目の UUID で名前が付けられたフォルダーに移動すると、フォルダーが見つかりませんStoreKit
。
実機
実際の iOS iPod touch でテストするために、そのコードを次のように展開します。</p>
…領収書の場所を確認します。
NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL];
NSLog(@"url: %@", url);
…そんなファイルを読み込んでみる。
NSString* urlContents = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
NSLog(@"urlContents: %@", urlContents);
…ファイルが存在するかどうかを確認します。
NSError *err;
if ( [url checkResourceIsReachableAndReturnError:&err] == NO ) {
NSLog(@"BAD No receipt found for url: %@" , url );
} else {
NSLog(@"GOOD Receipt found for url: %@" , url );
}
実行時の結果。
URL: file:///private/var/mobile/Containers/Data/Application/21430192-6E3A-4929-B847-23FD525D804E/StoreKit/sandboxReceipt
urlContents: (ヌル)
悪い URL の領収書が見つかりません: file:///private/var/mobile/Containers/Data/Application/21430192-6E3A-4929-B847-23FD525D804E/StoreKit/sandboxReceipt
file:///private/var/mobile/Containers/Data/Application/B1497F0D-95A7-4AD8-A9D5-7AF95663A04F/StoreKit/sandboxReceipt