Não é possível fazer upload de aplicativos binários para a loja de aplicativos
-
24-09-2019 - |
Pergunta
Finalmente chegamos ao ponto de enviar nosso primeiro aplicativo para iPhone para a App Store (ou tentando), mas não consigo que o iTunes se conecte para aceitar o upload.
Eu tentei através do site ("O binário que você carregou foi inválido. A assinatura era inválida ou não foi assinada com um certificado de envio da Apple.") E o carregador de aplicativos ("info.plist não contém uma especificação cfbundleResources. ").
Depois de muita leitura (incluindo perguntas como essas), relendo e pesquisando no Google, posso dizer isso:
- Tenho certeza de que o identificador do pacote corresponde ao Appid.
- Existe um ícone.png, é um arquivo PNG de 57x57 PX, e esse é o nome exato no info.plist.
- Estou fazendo um dispositivo, não simulador, construir.
- O processo de assinatura é bem -sucedido: os resultados da construção mostram isso e em execução
codesign -vvvv MyApp.app
não indica problemas. - Não há caracteres estranhos no caminho para o arquivo zip.
- Excluí a pasta de construção e reconectei o binário algumas vezes.
Agora, é verdade que no aplicativo construído, o info.plist não contém um CFBundleResourceSpecification
Chave, mas não está claro para mim de onde esse valor deve vir ou o que mais eu preciso adicionar para fazer isso funcionar. (A única referência que posso encontrar usando a pesquisa da Apple é alguns Notas de versão de assinatura de código... Mas, como mencionei acima, a etapa de assinatura do código está tendo sucesso, tanto quanto eu sei.)
Alguém se deparou com alguma explicação para esse problema que eu ainda não mencionei?
EDITAR: Aqui está a saída (ligeiramente redigida) da etapa de assinatura do código da construção, FWIW:
Código Screenshot http://img70.yfrog.com/img70/8988/codesign.png
Solução
O problema parece ter sido que eu estava usando JSON-Framework no meu aplicativo, e incluí -lo como um SDK adicional por as instruções no wiki. Meu palpite é que o Xcode ficou confuso com a presença de> 1 SDK e, portanto, não conseguiu encontrar os recursos padrão.
Encontrei duas soluções (bem, soluções alternativas, de qualquer maneira):
- Use a configuração "Caminho do caminho do recurso de assinatura de código" (que está em branco por padrão) para especificar o caminho para o arquivo xcode deve usar:
$(SDKROOT)/ResourceRules.plist
. Isso funciona, e parece razoavelmente inofensivo, mas é frustrante no sentido de que o Xcode deve ser capaz de descobrir isso por conta própria. (Eu encontrei esta solução em um questão muito antiga Arquivado no JSON-Framework.) - Não use a abordagem SDK. Em vez disso, basta incluir os arquivos diretamente no projeto e atualizar o
#import
declarações com caminhos locais. Essa é a abordagem que acabei adotando, já que tomamos uma decisão geral de dobrar todas as dependências externas no próprio projeto (para que outros desenvolvedores tenham menos configuração a fazer em suas máquinas para subir e funcionar).
Não tenho certeza se isso é um bug no Xcode, ou algo errado com o JSON-Framework, mas eu tenho arquivou um problema Neste último, apenas por precaução.
Atualização, 30 de junho de 2010: A questão que arquivei foi fechada e o Sr. Brautaset planeja remover o suporte para a opção SDK na próxima versão (2.3) do projeto. Também o código agora vive no github, embora as páginas do Google Code ainda existam por enquanto.
Outras dicas
Para mim, depois de verificar todas as coisas (Codesign, o arquivo do ícone ...), mas você não pode fazer o upload do seu aplicativo, tente excluir o arquivo construído. Lembre -se de copiar o arquivo.app para zip seu aplicativo.
Você tem certeza de que está construindo com uma distribuição, em oposição ao desenvolvimento, certificado e forneceção móvel?
Presumo que você esteja enviando um arquivo .zip.
Acabei de verificar um aplicativo que carreguei e o CFBUNDLERESOURCESPECIFICATION está apenas nas versões assinadas (ou seja, o dispositivo cria).
Você está fazendo algum de seu prédio/copiando/zipping da linha de comando? Nesse caso, você deve ter muito cuidado com os links simbólicos. o .app
Vem com um subdiretório como um link simbólico para outro e, se você o copiar ou fechar sem as bandeiras corretas, ele cópia impressa o conteúdo, que mexerá com o codesigning.
Isso aconteceu comigo - e a pior parte é que as compilações ad -hoc funcionam bem sem o link simbólico, para que você não perceba o problema até a criação da App Store.
Esta mensagem pode acontecer por outro motivo (como acabei de descobrir esta manhã): se o seu projeto tiver várias informações.
Isso estava acontecendo comigo porque uma parte automatizada da construção estava criando uma informação. Plista em um pacote trazido para o projeto.
Gorjeta de chapéu aqui para a solução:http://infinite-sushi.com/2010/08/the-case-of-the-missing-cfbundleresourcespecification/
Para mim, a solução foi criar uma certificação distribuída em:Apple Developer Provisioning Portal.