79712634

Date: 2025-07-23 22:51:57
Score: 4.5
Natty:
Report link

Embora você não possa evitar a mensagem do sistema, você pode gerenciar a sequência de feedback para o usuário no seu aplicativo:

  1. Exibir uma mensagem clara imediatamente: Assim que você detectar o erro de "Certificado Revogado" (dentro do case .verified(let transaction) onde transaction.revocationDate != nil), você deve imediatamente atualizar a UI do seu aplicativo para informar o usuário sobre a falha e o motivo. Por exemplo, você pode exibir um alerta, uma mensagem de erro na tela ou desabilitar funcionalidades relacionadas à compra.

    Swift

    case .verified(let transaction):
        if transaction.productType == product.type, transaction.productID == productID {
            if transaction.revocationDate == nil, transaction.revocationReason == nil {
                purchaseState = true
                await transaction.finish()
            } else {
                // Certificado revogado ou transação revogada.
                // Aqui você exibe sua própria mensagem de erro para o usuário.
                self.error = .error(NSError(domain: "PurchaseError", code: 1, userInfo: [NSLocalizedDescriptionKey: "A compra não pôde ser concluída devido a um certificado revogado. Por favor, tente novamente mais tarde ou contate o suporte."]))
                // Não chame transaction.finish() para transações revogadas,
                // a menos que você tenha uma lógica específica para elas.
                // O StoreKit pode limpar essas transações automaticamente em alguns casos.
            }
        } else {
            // produto inválido
            self.error = .error(NSError(domain: "PurchaseError", code: 2, userInfo: [NSLocalizedDescriptionKey: "Produto da transação não corresponde."]))
        }
    
    
  2. Gerenciar o estado purchaseState: Certifique-se de que purchaseState só seja definido como true se a compra for realmente válida e verificada. Em caso de certificado revogado, purchaseState deve permanecer false (ou ser redefinido) e você deve apresentar o erro.

Ao fazer isso, embora o usuário veja o "You're all set" momentaneamente, ele será rapidamente seguido pela mensagem de erro do seu aplicativo, o que comunica a falha de forma mais eficaz e reduz a confusão.


Em resumo, a arquitetura do StoreKit, especialmente com os arquivos de configuração, separa a confirmação inicial da compra da validação posterior. Concentre-se em fornecer um feedback claro ao usuário no seu aplicativo assim que você detectar a falha de verificação.

Reasons:
  • Blacklisted phrase (3): você
  • Blacklisted phrase (1): não
  • Blacklisted phrase (1): Não
  • Long answer (-1):
  • Has code block (-0.5):
  • Low reputation (1):
Posted by: Fernando Floret