Behebung eines ungültigen Produkt-ID-Problems bei In-App-Käufen

Dies ist ein follow-up-Frage zu "In-app-Käufe mit MKStoreKit Ausfall: “Problem in iTunes-connect-Konfiguration für Produkt: xxx"

Ich habe ein ähnliches Problem und habe versucht zu tun, sowohl mit und ohne MKStoreKit und eine ähnliche Meldung.

Check-Liste

Mit Dank an: http://troybrant.net/blog/2010/01/invalid-product-ids/

Haben Sie die Option In-App-Käufe für Ihre App-ID?

JA

Haben Sie überprüft, Gelöscht, zum Verkauf für Ihr Produkt?

JA

Haben Sie eingereicht (und ggf. abgelehnt) Ihre Bewerbung binäre?

JA

Hat Ihr Projekt .plist-Bundle-ID-match-deine-App-ID?

JA

Haben Sie generiert und installiert eine neue provisioning-Profil für die neue App-ID?

JA

Sie haben konfiguriert Ihr Projekt code-Zeichen mit dieser neuen provisioning-Profil?

JA

Bauen Sie für das iPhone OS 3.0 oder höher?

JA. iOS4.2.

Sind Sie mit dem vollständigen Produkt-ID, wenn bei der Herstellung einer SKProductRequest?

JA. Auch nur die Produkt-ID selbst ohne die reverse-domain -

Haben Sie wartete mehrere Stunden, da hinzufügen des Produkts zu iTunes Verbinden?

JA. Er sagt "Waiting for review" und hat es in den letzten 4-5 Tagen

Sind Ihre Bankdaten aktiv auf iTunes Connect?

NICHT. Es ist ein client-Projekt und bin nur Tests um zu sehen, ob es funktioniert. Brauche ich eine Bankverbindung, um es zu testen?

EDIT: ich habe dies änderte sich nun. Aber ich sehe nicht ein, warum ich brauchen, um dies zu tun, nur um zu testen sandboxing.

Haben Sie versucht, löschen Sie die app von Ihrem Gerät und installieren?

JA

Ist dein Gerät jailbroken?

KEIN


App-notation korrekt ist

Einige Beispiele, die ich gesehen haben, verwenden Sie diese Schreibweise:
com.domain.APP_ID.PRODUCT_TO_BUY

Aber andere verwenden
com.domain.PRODUCT_TO_BUY

Welche ist richtig?

In meinem code habe ich versucht, mit der vollen Schreibweise und nur die Produkt-ID selbst, aber immer noch das gleiche problem "Ungültige Produkt-id".

Entwickler abgelehnt

App-Bundle (Release) ist auf iTunes Verbinden und ich-haben "- Entwickler abgelehnt" bundle.

Bild:
Behebung eines ungültigen Produkt-ID-Problems bei In-App-Käufen

Warten auf Freigabe?

In meine in-app-Käufe habe ich das 1 Produkt, eine auto-erneuerbare-Abonnement. Es ist frei für Verkauf, es ist aber "Waiting for review" und nicht grün beleuchtet.

Bild:

Behebung eines ungültigen Produkt-ID-Problems bei In-App-Käufen

Habe ich das fast 4-5 Tage her und immer noch gekennzeichnet, als "Waiting for review"??

Frage ich mich, wenn meine app "- Entwickler abgelehnt", ob dies einen Einfluss hat auf "Waiting for review" über eine auto-erneuerbare-Abonnement?

Habe ich nichts geändert in dieser Sache.

Nach den verschiedenen Artikeln, die ich warten 24-48 Stunden, bevor ich ihn benutzen kann?

Aber muss ich warten, bis diese akzeptiert werden oder grün leuchtet, bevor ich es verwenden kann, in meinen Tests?

Bankverbindung

Habe ich nicht gefüllt, jede bank details, denn dies ist eine app für einen Kunden -- muss ich ausfüllen Bankverbindung bevor ich weiter testen?

Nach diesen docs: http://developer.apple.com/library/ios/#technotes/tn2259/_index.html Bankverbindung sind erforderlich?

Muss ich angemeldet sein, in iTunes auf mein Gerät unter einem test-account vor, der die app ausführt?

Frage ich mich, wenn jemand klären kann diese Fragen? Vielleicht ist es genauso einfach, wie das warten für die in-app-Kauf "grün leuchtet", oder vielleicht habe ich eine Stufe verpasst?

Hinweis: Dies geschieht unabhängig davon, ob ich MKStoreKit oder verwenden Sie den code, der folgt.

Dank.

Mein code (dieser ist nicht MKStoreKit version)

#define kMySubscriptionFeature @"uk.co.samplewebsite.myappproject.sub1"

    - (void)viewDidLoad
{
    [super viewDidLoad];
    //Do any additional setup after loading the view from its nib.
    self.title = @"Manage Subscriptions";


    if ([SKPaymentQueue canMakePayments])
    {
        //Display a store to the user.

        //[MKStoreManager sharedManager];
        //NSLog(@"purhcasable = %@", [[MKStoreManager sharedManager] purchasableObjectsDescription] );
        [self requestProUpgradeProductData];

    }
    else
    {
        //Warn the user that purchases are disabled.
        NSString *message = @"In-app purchases are disabled. Please review your settings";
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alertView show];
        [alertView release];
    } //end if
}


#pragma mark - StoreKit Delegate

- (void) requestProductData
{
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMySubscriptionFeature]];
    request.delegate = self;
    [request start];
}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *myProduct = [[NSArray alloc] initWithArray:response.products];

    for(SKProduct *item in myProduct)
    {

        NSLog(@"Product title: %@" , item.localizedTitle);
        NSLog(@"Product description: %@" , item.localizedDescription);
        NSLog(@"Product price: %@" , item.price);
        NSLog(@"Product id: %@" , item.productIdentifier);
    }


    for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Problem in iTunes connect configuration for product: %@" , invalidProductId);
    }


    [myProduct release];

    //populate UI
    [request autorelease];
}

Edit:

Als ein failsafe, ich habe die Bankverbindung nur für den Fall, aber ich sehe nicht, warum dies würde dazu führen, ein Problem.

Habe ich auch dafür gesorgt, dass ich hochgeladen und abgelehnt, dem neuen release der app-bundle und nicht ad-hoc ein; aber ich weiß nicht ob das einen Unterschied macht.

InformationsquelleAutor der Frage zardon | 2011-10-27

Schreibe einen Kommentar