8

アプリの開発中にレシートがないのはなぜですか?

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

4

1 に答える 1