Stripe iOS SDK - Tipos incompatíveis de ponteiro de bloco enviando

22

O SDK do Stripe está causando uma falha na construção. O erro específico é:

Tipos de ponteiros de bloco incompatíveis enviando '__strong STPAPIResponseBlock _Nonnull' (também conhecido como 'void (^ __ forte) (ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)')

ao parâmetro do tipo 'void (^ _Nonnull) (STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

O código em que está falhando é o seguinte em STPAPIClient.m ...

- (NSURLSessionDataTask *)retrieveSourceWithId:(NSString *)identifier clientSecret:(NSString *)secret responseCompletion:(STPAPIResponseBlock)completion {
    NSString *endpoint = [NSString stringWithFormat:@"%@/%@", APIEndpointSources, identifier];
    NSDictionary *parameters = @{@"client_secret": secret};
    return [STPAPIRequest<STPSource *> getWithAPIClient:self
                                               endpoint:endpoint
                                             parameters:parameters
                                           deserializer:[STPSource new]
                                             completion:completion];
}

Tudo estava funcionando bem - e acredito que o Xcode seja atualizado. Agora eu entendi esse problema. Tentei criar um novo aplicativo a partir do zero, sem nada além do Stripe SDK (instalado via CocoaPods) e que não conseguiu.

Antes de reverter para uma versão anterior do Xcode - qualquer ajuda seria muito apreciada.

Howard G
fonte
Eu deveria ter mencionado - estou executando o XCode 11.4 e direcionando o iOS 13.4
Howard G
11
Para sua informação, você pode editar uma pergunta para incluir mais informações em vez de adicionar comentários.
Westy92 31/03

Respostas:

27

O XCode 11.4 quebrou o pod de distribuição v19.0 e foi corrigido na v19.0.1
para atualizar o pod de distribuição , excluir seu podfile.locke fazer pod install.

Rohit Funde
fonte
Eu tento suas etapas, mas não instalo a v19.0.1.
Emre Değirmenci 20/04
você pode tentarpod install --repo-update
Rohit Funde
11

Atualização com correções : "Lançamos as v14.0.1, v15.0.2, v17.0.3 e v19.0.1 nos Cocoapods com correções para esse problema.": Https://github.com/stripe/stripe-ios/issues / 1525 # issuecomment-604037716

Informações da postagem mais antiga :

Isso foi corrigido pelo Stripe nesta alteração: https://github.com/stripe/stripe-ios/pull/1526

Se você estiver preso em uma versão mais antiga do Stripe, tente aplicar as duas alterações na sua versão local. (Alterações em https://github.com/stripe/stripe-ios/pull/1526/files ).

Graham Perks
fonte
7

Eu fiz isso:

no Podfile.lock , mudei - Stripe (19.0.0) para - Stripe (19.0.1) e, em seguida, no terminal no diretório do ios, executei "pod update Stripe" . Estou usando a vibração e para mim funcionou.

Amir Vazirifar
fonte
1

Também deparei com isso, mas estou na versão v14 do pod de distribuição. A única opção que posso encontrar para as pessoas na minha posição é voltar ao xcode 11.3.1.

peterholcomb
fonte
3
Você pode aumentar sua versão do pod do Stripe para 14.0.1. Eles lançaram correção nessa versão
kamwoz 26/03
0

Você pode definir o SDK de distribuição para a Versão 19.0.1 para corrigir esse problema.

pod 'Stripe', '~> 19.0.1'

OU então atualize seu pod de distribuição para a versão mais recente usando o comando pod update.

Mubashshir
fonte