Erro Xcode 11 ao exportar IPA Não foram encontrados perfis para 'my.bundle.id'

12

Estou usando o Xcode para criar arquivos de exportação .ipa para envio à Apple. Fiz isso com êxito antes da atualização do Xcode 10 para o Xcode 11.

Alguns dos erros que estávamos enfrentando sugeriam que precisávamos desinstalar completamente o Xcode porque tínhamos uma versão beta anteriormente e a versão antiga do Xcode beta provavelmente estava causando os problemas. Decidi apenas limpar todo o Mac com uma redefinição do sistema para evitar que qualquer cópia do Xcode Beta ou de suas configurações estivesse na máquina. Portanto, agora é uma instalação completamente nova do Mac OS. Eu reinstalei o Xcode.

Importei meus certificados antigos para o Keychain e verifiquei que só tenho certificados válidos listados.

Eu corro dois comandos. Primeiro crio um arquivo. Então eu uso o arquivo para exportar o ipa:

xcodebuild -allowProvisioningUpdates -workspace my_app.xcworkspace -scheme XXXX -archivePath build-dev/XXXX.xcarchive archive
xcodebuild -exportArchive -archivePath build-dev/XXXX.xcarchive -exportOptionsPlist release.plist -exportPath build-dev

Observe que substituí o esquema por XXXX e os IDs dos pacotes nos meus exemplos foram substituídos por 'my.bundle.id'.

Esse processo trabalha para fazer um desenvolvimento .ipa. No entanto, quando vou criar um .fl de Testflight ou Production, recebo erros.

O primeiro comando é executado sem erros e eu tenho o arquivo morto criado em "build-dev / XXX.archive". O segundo comando gera erros:

2019-09-30 12:11:46.444 xcodebuild[10674:326155] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/10/8g5xrhr56wz6sgttzh0_s8fr0000gn/T/XXXX_2019-09-30_12-11-46.444.xcdistributionlogs'.

2019-09-30 12:11:56.534 xcodebuild[10674:326208]  DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-14936/IDEFoundation/Provisioning/Logging/IDEProvisioningLedger.m:172

Details:  Unable to close provisioning ledger entry because not all of its subentries are closed
Object:   <IDEProvisioningLedgerEntry: 0x7ff7568b7a00>
Method:   -closeWithError:
Thread:   <NSThread: 0x7ff750b16af0>{number = 14, name = (null)}
Please file a bug at https://feedbackassistant.apple.com with this warning message and any useful information you can provide.
error: exportArchive: Create certificate

Error Domain=IDEProvisioningErrorDomain Code=19 "Create certificate" UserInfo={IDEDistributionIssueSeverity=3, IDEProvisioningError_UserInfoKey_IDEProvisioningUserAction=<IDEProvisioningCreateTeamOwnedCertificateUserAction: 0x7ff756acf0c0>, NSLocalizedRecoverySuggestion=Create a new Apple Distribution certificate for your team., NSLocalizedDescription=Create certificate}

error: exportArchive: No profiles for 'my.bundle.id' were found

Error Domain=IDEProfileLocatorErrorDomain Code=1 "No profiles for 'my.bundle.id' were found" UserInfo={IDEDistributionIssueSeverity=3, NSLocalizedDescription=No profiles for 'my.bundle.id' were found, NSLocalizedRecoverySuggestion=Xcode couldn't find any iOS App Store provisioning profiles matching 'my.bundle.id'.}

Este é o meu arquivo release.plist.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
    <key>teamID</key>
    <string>MY-TEAM-ID</string>
    <key>compileBitcode</key>
    <false/>
</dict>
</plist>

Eu sou capaz de construir a partir do Xcode com sucesso. É apenas a exportação da linha de comando que estou emitindo.

O ID do pacote existe na minha conta developer.apple.com. Eu tenho um certificado válido de Desenvolvimento e Distrobução para iOS nas Preferências do Xcode.

Não sei por que estou recebendo esses erros.

Daryl
fonte

Respostas:

15

Ei, eu também tive esse problema. O que eu tive que fazer para corrigir isso foi criar o arquivo morto e exportar um arquivo IPA para o TestFlight do xCode usando a GUI. Durante esse processo, o xCode conseguiu criar o certificado que estava faltando. Agora eu posso executar com êxito os comandos xCode da linha de comando.

Etapas para usar a GUI para criar o certificado necessário:

  • Abrir Xcode
  • Selecionar produto
  • Selecione Arquivar (se o Arquivamento estiver cinza, faça uma construção para o dispositivo iOS genérico primeiro.)
  • Selecione Distribuir aplicativo
  • Selecione App Store Connect na lista de botões de opção e clique em Avançar.
  • Selecione Exportar da lista de botões de opção e clique em Avançar.
  • Verifique o certificado Gerar um Apple Distribution.
  • Exporte o certificado como um backup e compartilhe com outros desenvolvedores.

Abaixo está uma captura de tela da janela "Gerar um certificado de distribuição da Apple" que precisa ser clicada no processo da GUI.

insira a descrição da imagem aqui

Austin
fonte
11
Obrigado que resolveu o problema. Isso exigia que eu fizesse isso para cada empresa para a qual construímos. Acabei de verificar o "gerar certificado" na GUI como você mencionou e as ferramentas de linha de comando funcionam agora. Parece um bug na maçã, porque quando eu adicionar a bandeira -allowProvisioningUpdates, ele não atualiza automaticamente os perfis, certificados, etc.
Daryl
Encontrei esse problema para o upload de aplicativos nativos no TestFilght. Mas eu já instalei meu .p12, por que estou vendo essa tela? Alguém pode ajudar?
Akshay Jadhav