Resolver problema de ID de produto inválido com compras no aplicativo?
Esta é uma pergunta de acompanhamento para " Nas compras de aplicativos com o MKStoreKit com falha: “Problema no iTunes conecta a configuração do produto: xxx"
Estou com um problema semelhante e tentei fazer com e sem o MKStoreKit e obter uma mensagem semelhant
Lista de control
Graças a:http: //troybrant.net/blog/2010/01/invalid-product-ids
Você ativou as compras no aplicativo para o seu ID do aplicativo?
SI
Você verificou Liberado para venda para o seu produto?
SI
Você enviou (e opcionalmente rejeitou) o binário da sua inscrição?
SI
O ID do pacote .plist do seu projeto corresponde ao ID do aplicativo?
SI
Você gerou e instalou um novo perfil de provisionamento para o novo ID do aplicativo?
SI
Configurou seu projeto para assinar código usando este novo perfil de provisionamento?
SI
ocê está construindo para o iPhone OS 3.0 ou superio
SIM. iOS4.2 e superior.
Você está usando o ID completo do produto ao fazer um SKProductRequest?
SIM. Também apenas o próprio ID do produto sem o domínio reverso
Você esperou várias horas desde que adicionou seu produto ao iTunes Connect?
SIM. Ele diz "Aguardando revisão" e foi feito nos últimos 4-5 dias
Os seus dados bancários estão ativos no iTunes Connect?
NÃO. É um projeto do cliente e estou apenas testando para ver se está funcionando. Preciso de detalhes bancários para testá-lo?
EDIT: Eu mudei isso agora. Mas não vejo por que preciso fazer isso apenas para testar o sandboxin
Você tentou excluir o aplicativo do seu dispositivo e reinstalar?
SI
O seu dispositivo está jailbroken?
NÃ
notação @App está correta
Alguns exemplos que eu já vi usar esta notação: com.domain.APP_ID.PRODUCT_TO_BUY
Mas outros usam com.domain.PRODUCT_TO_BUY
Qual é certo
No meu código, tentei usar a notação completa e apenas o ID do produto, mas ainda tenho o mesmo problema de "ID do produto inválido"
Desenvolvedor rejeitado
Pacote de aplicativos (versão) está no iTunes Connect e eu "o desenvolvedor rejeitou" o pacot
Cenário:
Esperando por revisão
Nas minhas compras no aplicativo, tenho o 1 produto, uma assinatura renovável automaticamente. É liberado para venda; é, no entanto, "Aguardando revisão" e não tem luz verde.
Cenário
Eu criei isso há quase 4-5 dias e ainda está marcado como "Aguardando revisão" ??
Gostaria de saber se meu aplicativo foi "rejeitado pelo desenvolvedor" se isso afeta a "Aguardando revisão" em uma assinatura renovável automaticamente?
Não mudei nada neste item.
De acordo com os vários artigos, tenho que esperar 24-48 horas antes de poder usá-lo?
Mas preciso esperar que isso seja aceito ou com luz verde antes de poder usá-lo em meus testes?
Detalhes bancário
Não preenchi nenhum dado bancário porque este é um aplicativo para um cliente - preciso preencher os dados bancários antes de continuar testando?
De acordo com estes documentos:http: //developer.apple.com/library/ios/#technotes/tn2259/_index.htm os dados bancários são obrigatórios?
Preciso fazer login no iTunes no meu dispositivo em uma conta de teste antes de executar o aplicativo?
Gostaria de saber se alguém pode esclarecer essas questões? Talvez seja tão simples quanto esperar que a compra no aplicativo seja "acesa" ou talvez eu tenha perdido um passo?
ota: Isso acontece independentemente de eu usar o MKStoreKit ou usar o código a segui
Obrigado
Meu código (esta é a versão não do MKStoreKit)
#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];
}
Editar
Como segurança, adicionei detalhes bancários por precaução, mas não vejo por que isso causaria um problem
Também garanti o upload e rejeitei o pacote de lançamento do aplicativo e não o pacote adhoc; embora eu não saiba se isso faz alguma diferença.