Wie man iOS appStoreReceiptURL in Base-64-Codierte Zeichenfolge?
Möchte ich appStoreReceiptURL, um zu sehen, welche version der app Sie jemand gekauft. Wie kann ich diese in einen string?
Teste ich das mit dem herunterladen der app aus dem store, dann läuft eine neue version der app in Xcode. Hier ist, was ich versucht habe:
NSURL *receiptUrl = [[NSBundle mainBundle] appStoreReceiptURL];
NSLog(@"receiptUrl %@",[receiptUrl path]);
if ([[NSFileManager defaultManager] fileExistsAtPath:[receiptUrl path]]) {
NSLog(@"exists");
NSError *error;
NSString *receiptString = [[NSString alloc] initWithContentsOfFile:[receiptUrl path] encoding:NSUTF8StringEncoding error:&error];
if (receiptString == nil) {
NSLog(@"Error: %@", [error localizedDescription]);
} else {
NSLog(@"Receipt: %@",receiptString);
}
} else {
NSLog(@"does not exist");
}
Dies ist, was ich bekomme:
receiptUrl /var/mobile/Applications/E612F261-2D30-416E-BF82-F24xxxx8860/StoreKit/receipt
exists
Error: The operation couldn’t be completed. (Cocoa error 261.)
InformationsquelleAutor Tom Kincaid | 2013-09-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich herausgefunden, der trick ist zu Lesen, die Eingangs Daten, dann ist base 64 codieren von Daten. Hier ist was für mich gearbeitet, wenn es hilft jemand anderes. Auch Dank diesem thread für die base-64-Codierung: Konvertieren NSData zu base64
getJsonStringFromDictionary
fehlt, aber es funktioniert, wenn Sie ersetzen Sie es mit:NSData *postData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
Um genauer zu sein: getJsonStringFromDictionary -> NSError *error = nil; NSData *postData = [NSJSONSerialization dataWithJSONObject:Wörterbuch-Optionen:NSJSONWritingPrettyPrinted Fehler:&error]; NSString *postString = @""; if (! postData) { NSLog(@"Bekam ein error: %@", error); } else { postString = [[NSString alloc] initWithData:postData-encoding:NSUTF8StringEncoding]; }
Nur heads-up, Sie sind immer ein 21004 Fehler, vergessen Sie nicht, senden Sie Ihre Bewerbung shared secret... wie diese
NSString *password = @"your shared secret string"; objects = [[NSArray alloc] initWithObjects:receiptString, password, nil]; keys = [[NSArray alloc] initWithObjects:@"receipt-data", @"password", nil];
Hallo @Tom, Dieser Ansatz sollte verwendet werden, wenn wir unseren server richtig?
InformationsquelleAutor Tom Kincaid
Dies ist der code den ich benutze:
Ich hoffe, das hilft.
InformationsquelleAutor jeprubio
Kakao Fehler 261 ist NSFileReadInapplicableStringEncodingerror.
Eher als Versuch zu Lesen, die Datei als UTF8, haben Sie versucht
NSASCIIStringEncoding
?Auch, gegeben, dass Sie sich nicht sicher sind, die tatsächliche Codierung der Datei, die Sie verwenden können, die folgenden anstatt zu raten.:
developer.apple.com/library/ios/releasenotes/General/...
InformationsquelleAutor Ben S