2

Apple のサーバーでホストされている消費不可のアプリ内購入があるアプリを構築しています。アプリ内購入をダウンロードすることに成功しましたが、それらをドキュメント ディレクトリに保存すると、後でそれらを見つけたりアクセスしたりすることができないようです。

ダウンロードの contentURL からファイルをダウンロードするために使用する関数を次に示します。ダウンロードが完了した後に呼び出され、download.contentURL を渡してキャッシュ内の場所をドキュメント フォルダーに移動します。

-(void)downloadFromURL: (NSURL *) temporaryURL {
    NSLog(@"The download's contentURL is %@", temporaryURL.absoluteString);
    NSString *folderName = [[temporaryURL path] lastPathComponent];
    NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *folder = [pathArr objectAtIndex:0];

    NSString *filePath = [folder stringByAppendingPathComponent:folderName];
    NSURL *fileURL = [NSURL fileURLWithPath:filePath];

    NSError *writeError = nil;
    NSData *downloadData = [[NSData alloc] initWithContentsOfURL:temporaryURL];
    [downloadData writeToURL: fileURL options:0 error:&writeError];

    if( writeError) {
    NSLog(@"Error in writing file %@' : \n %@ ", filePath , writeError);
    return;
    }
    NSLog(@"File successfully downloaded. Url is %@",fileURL.absoluteString);
    myFileURL = fileURL;
}

myFileURL は、後で AVAudioPlayer を初期化するために呼び出されるグローバル変数ですが、呼び出すときに

    NSFileManager *fileManager = [NSFileManager defaultManager];
    if (![fileManager fileExistsAtPath:[myFileURL path]]){
        NSLog(@"File DOES NOT exist at that url");
    } else{
        NSLog(@"File DOES exist at that url");
    }

そのパスにファイルが存在しないと表示されます。Apple のサーバーからダウンロードしたアプリ購入コンテンツに書き込み、アクセスするためのアイデアや簡単な方法はありますか? また、URL の末尾に「/Contents/filename.mp3」を追加しようとしましたが、役に立ちませんでした。

4

1 に答える 1

5

ここにあるコードを使用して解決しました: http://xinsight.ca/blog/iap-content-download-in-ios6

于 2013-06-12T00:23:12.157 に答える