2009-12-04 15 views
11

Questa domanda è leggermente diversa dalle altre che ho trovato qui. My In App StoreKit funziona, posso elencare i prodotti nel mio negozio con successo. Ho esaminato la documentazione di Apple e non ho mai visto la mia domanda indirizzata (potrei averlo perso).StoreKit per restituire tutti gli ID prodotto

Il mio cliente (senza scopo di lucro) vorrebbe essere in grado di accettare donazioni tramite la loro App. Vorrei lasciare loro la possibilità di aggiungere nuovi eventi di donazione al volo senza che gli utenti debbano aggiornare la loro app. Quello che voglio dire è che possono avere uno speciale "Aiutaci a sponsorizzare un evento questo imminente Arbor Day" e accetta donazioni particolari per quel caso.

Attualmente sto leggendo prodotti come questo:

SKProductsRequest *request= 
     [[SKProductsRequest alloc] initWithProductIdentifiers: 
      [NSSet setWithObjects: @"goldSponsor", @"silverSponsor"]; 

Ciò significa che se tale evento Arbor Day si avvicina, dovrò rilasciare un aggiornamento per includere il @ "arborSponsor" nella mia lista richiesta. Come posso richiedere ogni prodotto sotto il mio pacchetto?

Ho provato a usare @ "com.thedomain. *" E altre supposizioni senza fortuna. È possibile restituire l'intera lista, mi manca qualcosa di molto semplice? Grazie!

risposta

21

Sfortunatamente devi fornire tutti gli ID dei prodotti per i quali desideri ottenere informazioni per quanto ho potuto vedere.

Un modo per gestire questo è memorizzare gli ID del prodotto su un server remoto e quindi effettuare una richiesta al server per tirare giù il set corrente di ID durante il caricamento del negozio.

Ciò consentirebbe di aggiungere o rimuovere prodotti dal lato itunes delle cose e non dover inviare aggiornamenti binari alla tua app.

Penso che probabilmente potresti trovare un supporto felice memorizzando nella cache l'elenco di prodotti nell'app per iPhone e quindi facendo solo una rapida richiesta per vedere se ci sono state delle modifiche in modo da non dover nemmeno ottenere l'elenco completo ogni volta.

Questo potrebbe essere fatto utilizzando una semplice API http sul lato server o anche solo un file xml che si apre.

Dalla Guida all'acquisto di programmazione In App

Apple consiglia di recuperare prodotto identificatori dal server, invece di loro anche in una proprietà lista. Questo ti dà la flessibilità per aggiungere nuovi prodotti senza aggiornare la tua applicazione.

+1

Grazie!Questo era ciò di cui avevo paura. Spero che questo mi dia ragione per spingerli a prendere un server per questo. – ryanday

2

Ho lo stesso problema ma penso di avere un modo per risolverlo pianificando in anticipo con gli ID prodotto. Invece di nominare ogni ID prodotto qualcosa di speciale come "goldSponsor", basta contenerne "1", "2", "3" ... per tutti quelli che vuoi aggiungere. Imposta il nome su "Gold Sponsor" e la descrizione su ciò che vuoi. Quando la tua app inizia a essere in esecuzione, richiedi i primi N ID di prodotto sequenziali. Se tutti vengono restituiti come validi, richiedere un altro N ID prodotto fino a quando non si ottengono ID non validi a quel punto.

Sto pianificando di farlo con i contenuti ospitati da Apple. Sto anche pensando di utilizzare il campo descrittivo del prodotto per codificare informazioni dettagliate sui dati che sto scaricando (nel mio caso le coordinate d'angolo di una mappa). Continuerò a utilizzare l'intero "com.company.product.1" per ciascun ID e numerandoli sequenzialmente da lì.

+0

err ... ma non nel momento in cui elimini/non chiari per la vendita qualsiasi ID la tua logica smetterà di funzionare. –

Problemi correlati