Pergunta

Atualmente, estou tentando construir o produto distribuição da minha (primeira) iphone app para que ele possa ser enviado para a App Store. Tenho passado por todo o App ID e Distribuição de provisionamento processo de perfil e finalmente do Organizador e meta configuração de compilação de reconhecê-lo.

O problema é que ao definir o "Active Configuration" on "Distribuição" (duplicar do config "Release". Per direções iPhone Dev Center) Eu não posso obter o código para compilar. O projeto contém uma referência a uma biblioteca estática que contém várias classes que são utilizados como classes base em muitas das aulas do projeto. Então, quando a construção da configuração de distribuição, o compilador gera erros dizendo que ele não pode encontrar as classes de base a partir da biblioteca estática, e a construção falhar.

Se eu mudar o ativo configuração. a "depuração" (como usado no desenvolvimento) não há nenhum problema em tudo, e os compila aplicativos corretamente como esperado.

Eu não consigo encontrar o que o problema poderia ser. Eu encontrei esta outra pergunta semelhante aqui, mas parece ser um caso diferente:

distribuição biblioteca estática iPhone e erros liberação de construção (mas não para depuração)

O Google também parece não ter muitos resultados úteis. Eu também tenho verificado informações do alvo na seção Build, e mudou-se entre "Debug" e configurações de "distribuição" para verificar se há alguma diferença relevante, mas ninguém é encontrado até agora. Na verdade eu não encontrar qualquer informação relevante sobre a lib estática. Só na guia Geral da janela de informações, mas o lib estática é exibida corretamente no dependências diretas.

Assim, neste ponto, estou à nora. Tentei seguir as instruções como exatamente quanto possível, mas acho que isso não foi suficiente e eu estou tendo problemas agora. Suponho que a correção deve ser um pouco simples (talvez apenas definir alguns parâmetros, em algum lugar), no entanto eu não tenho sido capaz de descobrir isso.

Você poderia por favor (por favor :)) fornecer alguma ajuda sobre isso. Qualquer ajuda ou dica, é muito apreciada.

Agradecemos antecipadamente!

Foi útil?

Solução

Verifique as opções de compilação para a configuração de depuração; por exemplo, caminhos de pesquisa de cabeçalho para a configuração de depuração pode ser diferente do que para a configuração de distribuição. Selecione o Project > Edit Project Settings menus e digite: Header Search Paths para verificar essas configurações para o Configuration listados. Se algo é diferente entre as configurações, fazer-lhes o mesmo para ambos.

Outras dicas

Aqui está:

Para fazer a compilação de distribuição, (por direções iPhone Dev Center) você tem que fazer uma cópia da configuração "Release" e nomeá-lo como "Distribuição", e, em seguida, criar o projecto no âmbito deste ativo configuração. Verificando os "cabeçalho caminhos de pesquisa" na janela de informações do alvo para depuração e Distribuição configurações, notei uma diferença no valor, que foi definido como (para ambas as configurações):

$ {BUILD_STYLE} - $ {PLATFORM_NAME} / usr / local / include

para que resultou em $ {BUILD_STYLE} - $ {PLATFORM_NAME} sendo substituídos por "debug-iPhoneOS" e "Distribuição-iPhoneOS" para cada configuração. Todas as classes a base do lib estática foram armazenados no "incluir" pasta, no entanto não havia uma pasta "de distribuição de iPhoneOS".

Este foi porque eu não adicionar uma configuração "Distribuição" no projeto lib estática, como eu fiz no projeto do aplicativo principal (eu não sabia que eu tinha a). Então, para resolver o problema, eu só acrescentou a mesma configuração. no projeto lib estática e construiu.

Então, em resumo, se você adicionar uma nova configuração em um projeto que usa classes de uma biblioteca estática referenciada, também adicionar essa mesma configuração no projeto lib estático e executar uma compilação. Desta forma, o projeto principal será capaz de encontrar as classes de base.

Talvez este é realmente coisas básicas, desculpe, eu estou apenas a aprendizagem da língua (e XCode):.)

Espero que isso ajude, graças a Alex novamente.

Saudações

Já ouvi falar de problemas vinculador com o 3.0 SDK do iPhone OS; Algumas das soluções alternativas incluem a adição de -all_load às bandeiras vinculador ao construir o seu projeto (embora isto poderia ter efeitos colaterais indesejados). Outra opção é fazer o upgrade para o 3.1 SDK, onde eu acredito que esses problemas foram resolvidos. Claro, isso pode não ser o seu problema de todos ...

Outros lugares de ajuda:

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top