2009-12-04 11 views
11

Esta pregunta es un poco diferente de las otras que he encontrado aquí. My In App StoreKit está funcionando, puedo mostrar productos en mi tienda con éxito. He revisado la documentación de Apple y nunca vi mi pregunta dirigida (puede que me la haya perdido).StoreKit para devolver todos los ID de producto

Mi cliente (sin fines de lucro) desea poder aceptar donaciones a través de su aplicación. Me gustaría que tengan la capacidad de agregar nuevos eventos de donación sobre la marcha sin que los usuarios tengan que actualizar su aplicación. Lo que quiero decir es que pueden tener un especial "Ayúdenos a patrocinar un evento este próximo Día del árbol" y acepten donaciones particulares para ese caso.

actualmente estoy leyendo productos similares:

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

Esto significa que si ese evento del Día del Árbol se acerca, voy a tener que emitir una actualización para incluir el @ "arborSponsor" en mi lista de peticiones. ¿Cómo puedo solicitar todos los productos de mi paquete?

He intentado usar @ "com.thedomain. *" Y algunas otras suposiciones sin suerte. ¿Es posible devolver toda la lista, me estoy perdiendo algo muy simple? ¡Gracias!

Respuesta

21

Desafortunadamente, tiene que proporcionar todas las identificaciones de los productos para los que desea obtener información por lo que pude ver.

Una forma de manejar esto es almacenar sus ID de producto en un servidor remoto y luego solicitar al servidor que despliegue el conjunto actual de ID al cargar la tienda.

Eso le permitiría agregar o eliminar productos del lado de iTunes y no tener que enviar actualizaciones binarias a su aplicación.

Creo que probablemente pueda encontrar un medio feliz almacenando en el caché la lista de productos en la aplicación iphone y luego simplemente haciendo una solicitud rápida para ver si hubo algún cambio, así que ni siquiera tendría que obtener la lista completa cada vez.

Esto podría hacerse usando una API http simple en el lado del servidor o incluso solo un archivo xml que despliegue.

De la Guía de programación de aplicaciones de compra En

Apple recomienda que recupere producto identificadores de su servidor, en lugar de incluirlos en una propiedad de lista . Esto le da la flexibilidad para agregar nuevos productos sin actualizar su aplicación.

+1

Gracias!Eso era de lo que tenía miedo. Espero que esto me de una razón para empujarlos a obtener un servidor para esto. – ryanday

2

Tengo el mismo problema, pero creo que tengo una forma de resolverlo planificando con las ID de los productos. En lugar de nombrar cada ID de producto con algo especial como "goldSponsor", simplemente numere "1", "2", "3" ... tantas como quiera agregar. Establezca el nombre de "Gold Sponsor" y la descripción de lo que desee. Cuando su aplicación comience a ejecutarse, solicite los primeros N identificadores de productos secuenciales. Si se devuelven todos como válidos, solicite otros N ID de productos hasta que obtenga los ID no válidos en los que ha finalizado.

Estoy planeando hacer esto con contenido alojado de Apple. También estoy considerando utilizar el campo de descripción del producto para codificar información detallada sobre los datos que descargo (en mi caso las coordenadas de esquina de un mapa). Todavía utilizaré el "com.company.product.1" completo para cada ID y numerarlos secuencialmente desde allí.

+0

err ... pero no en el momento en que elimina/no está claro para la venta cualquier id su lógica dejará de funcionar. –

Cuestiones relacionadas