2015-12-27 10 views
5

Ich benutze Xcode v7.2 und Obj-c. Ich füge einer vorhandenen iOS-App verschiedene Sprachen hinzu. Das Hauptproblem ist, dass das SKProduct lokalisierteTitel (Anzeigename auf iTC) immer in Englisch zurückkommt. Ich kann den Preis korrekt lokalisiert und formatiert zeigen. Ich habe viele ähnliche Probleme auf SO vorbereitet und habe ihre Lösungen versucht, aber es scheint nicht für mich zu arbeiten (zum Beispiel: this und this).SKProdukt lokalisierteTitel immer in Englisch

Gewünschtes Ergebnis:

  1. Show 3 Tasten Benutzer; Jeder Button hat einen anderen Titel und einen anderen Preis.
  2. Ändern Sie dynamisch den Anzeigenamen des IAP &, indem Sie ihn nur in iTC aktualisieren (ich muss den Code also nicht jedes Mal aktualisieren, wenn ich eine Änderung vornehmen möchte).
  3. Wegen # 2 kann ich den IAP-Namen oder Preis auf der Schaltfläche nicht fest codieren.
  4. Ziehen Sie den lokalisierten Titel (Anzeigename auf iTC) und den Preis von iTC, um ihn als Beschriftung auf den Schaltflächen zu verwenden.

Hier ist, was ich habe Setup schon:

  • Erstellt Testnutzer auf iTC und zugewiesen sie verschiedene Geschäfte: iTC test users and stores
  • -Setup das IAP auf iTC ist und hinzugefügt, um die Sprachen und Anzeigenamen: iTC IAP list with languages
  • Code zu greifen SKProducts lokalisierteTitel und Preis von iTC

    [[FirstDrawIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) { 
        if (success) { 
         storeProducts = products; 
         SKProduct *product = (SKProduct *)storeProducts; 
         //Format price 
         priceFormatter = [[NSNumberFormatter alloc] init]; 
         [priceFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4]; 
         [priceFormatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    
         //Iterate thru the buttons using tipButton Outlet Collection 
         for (int i = 0; i < [self.tipButton count]; i++) { 
          UIButton *button = [[UIButton alloc] init]; 
          button = self.tipButton[i]; 
          //product = storeProducts[i]; 
          product = products[i]; 
          //Set the price locale 
          [priceFormatter setLocale:product.priceLocale]; 
          //Localize the button title and append the price 
          NSString *btnTxt = [product.localizedTitle stringByAppendingString:@" "]; 
          NSString *price = [priceFormatter stringFromNumber:product.price]; 
          NSString *newBtn = [btnTxt stringByAppendingString:price]; 
          NSLog(@"\nID: %@, Price: %@, Button: %@",[product localizedTitle], price, btnTxt); 
          //Set button title 
          [button setTitle:newBtn forState:UIControlStateNormal]; 
    
         } 
    
        } 
    
  • neues Xcode Schema erstellen, so dass die Testvorrichtung Sprache, Ort und Region

  • Zeichen aus App Store auf Xcode Simulator auf das gewünschte Land eingestellt wird (von Einstellungen). Wenn ich Tests im Simulator durchführe, sehe ich meine App zunächst in der richtigen Sprache, aber der Text auf den Schaltflächen ist in Englisch. Dies liegt daran, dass ich den Standort des App Store noch nicht geändert habe. Ich tippe auf den IAP-Kauf-Button und es fordert mich auf, mich anzumelden.
  • Ich logge mich mit meinem Testbenutzer für dieses Land ein. Ich höre die App auf und starte sie dann erneut.

Ergebnis: ich richtig die IAP Preis für das Land sehen, aber ich habe nicht die Schaltfläche Titel korrekt lokalisiert sehen. Der Titel der Schaltfläche ist noch in Englisch. Dies passiert mit jeder Sprache, die ich eingerichtet habe.

Kann mir hier jemand auffallen, was ich falsch mache? Habe ich die falsche Annahme, dass SKProduct.localizedTitle den iTC-Anzeigenamen für diese Sprache (App Store) nicht zurückgibt? Jede Hilfe wäre dankbar, danke.

+0

Haben Sie das herausgefunden? Ich habe derzeit das gleiche Problem. – Bobby

+0

Leider nein. Wie Sie hier sehen können, bekam ich auch keine Hilfe bei der Lösung. Ich sehe immer noch so aus, wenn jemand eine Möglichkeit hat, das herauszufinden, bitte posten Sie es hier. – fsb

+1

Ich bin mir nicht sicher, aber ich habe das gleiche Problem, currentLocale auf Simulator für mich ist ru_RU, aber product.priceLocale.localeIdentifier (das gleiche wie für lokalisierteTitel) zeigt en_RU, so ist der Preis in Ordnung, aber Titel ist immer in Englisch. Wie auch immer, alles funktioniert auf dem Gerät für mich, vielleicht ist es ein Simulator-Problem. Es wird eine harte Arbeit sein, aber versuche jedes Gebietsschema auf dem Gerät zu testen. BTW, "Массивная наконечник" ist falsch in Russisch;) "-ая" ist weiblich Adjektiv Postfix, während "наконечник" ist männliches Substantiv, so dass Sie "Массивный наконечник" brauchen, "-ый" ist für männliche Adjektiv. – Aft3rmath

Antwort

0

Basierend auf In-App Purchase FAQ

localizedDescription und localizedTitle Rückkehr lokalisierte Informationen, deren Sprache auf der aktuellen iTunes Store basiert anstatt der aktuellen Einstellung Gerätesprache.