Estou tentando enviar um aplicativo com o Xcode6 GM e recebo esse erro na validação. O aplicativo possui uma extensão de ação e uma estrutura dinâmica compartilhada entre a extensão e o próprio aplicativo.
Eu não tenho um arquivo chamado 'Frameworks' em qualquer lugar do projeto, então não tenho muita certeza do que isso deve significar. Alguém conseguiu esse problema ou tem alguma idéia?
ios
xcode
app-store-connect
Mike
fonte
fonte
Respostas:
Acontece que o erro está relacionado ao uso do Swift (o aplicativo e a extensão fazem uso do Swift).
Para o aplicativo, eu tive que definir:
e para a extensão:
Xcode 8 e 9
Parece que isso foi renomeado
Always Embed Swift Standard Libraries
no Xcode 8 e 9. Portanto, para o aplicativo:e para a extensão:
fonte
@executable_path/../../Frameworks
A única solução que funcionou para mim foi adicionar esse script de execução ao destino da extensão de aplicativo:
Fonte: https://github.com/CocoaPods/CocoaPods/issues/4203
fonte
dyld: Library not loaded: ... Image not found
alguém pode me ajudar?Então, 3 etapas para corrigir isso nas configurações de compilação
Embedded Content Contains Swift Code: YES
Embedded Content Contains Swift Code: NO
@executable_path/../../Frameworks
fonte
No meu caso, eu acabei de atualizar para o CocoaPods 1.0.1 e isso parece ser um novo bug.
A atualização do Pod adiciona um script de execução ao destino da minha extensão que cria a pasta Frameworks. Eu o encontrei quando estava prestes a adicionar o script de execução do @ Roman para removê-lo.
A solução foi excluir esse script da fase de criação da minha extensão. Aqui está o que precisava ir ...
fonte
1.1.0.rc.2
resolver o problema para mim.Remova todas as fases da compilação da sua extensão que tenha
embed
palavra no título.Além disso:
Yes
para o destino da extensão.fonte
Nenhuma das respostas acima funcionou para mim. Isso ocorreu porque o erro não foi causado pelo aplicativo pai ou por sua extensão. Em vez disso, uma das bibliotecas vinculadas estava com defeito.
Para confirmar, primeiro arquive usando o Xcode e, em seguida, usando o Organizer, selecione a entrada e localize usando Mostrar no Finder. Isso mostrará o
.xcarchive
arquivo.Selecione esse arquivo e escolha "Mostrar conteúdo do pacote".
Selecione o .app na pasta Produtos / Aplicativos e escolha novamente "Mostrar conteúdo do pacote".
Localize o módulo incorreto na pasta Frameworks. Por exemplo, se o erro for:
Em seguida, o
Frameworks/MyLib.framework
seguinte provavelmente estará visível:Eles estão presentes porque a biblioteca vinculada - ou módulo - que o aplicativo pai inclui possui o
EMBEDDED_CONTENT_CONTAINS_SWIFT = YES;
Localize o módulo dependente no Xcode e atualize o sinalizador:
Observe que, após superar esse problema, o aplicativo ainda pode ser rejeitado com um email explicativo da iTunes Store:
Novamente, isso volta à
EMBEDDED_CONTENT_CONTAINS_SWIFT
bandeira. Verifique se apenas o aplicativo pai está definido comoYES
. O aplicativo WatchKit e a extensão devem ter esse sinalizador definido comoNO
. Isso é detalhado na resposta de @ Mike acima.fonte
No meu caso, havia uma biblioteca CocoaPod "Blockly" que especificava Sim para "Sempre incorporar bibliotecas padrão do Swift". Depois de fazer NÃO para a opção, funcionou.
fonte
No meu caso, a solução foi remover minha estrutura dos binários incorporados da minha extensão e adicioná-la às Bibliotecas e estruturas vinculadas da minha extensão. (Ambos podem ser encontrados na guia Geral da extensão.)
fonte
Se o script Embed Pods Frameworks e o script de Roman existirem no mesmo destino.
Verifique se o Embed Pods Frameworks está localizado antes do outro. Caso contrário, apenas mova o script de Roman para o último.
fonte
Não consegui encontrar nenhuma configuração para,
Embedded Content Contains Swift Code
mas consegui encontrar uma configuraçãoAlways Embed Swift Standard Libraries
e defini-la como NÃO, pois minha estrutura corrigiu esse problema.fonte
cd "$ {CONFIGURATION_BUILD_DIR} / $ {UNLOCALIZED_RESOURCES_FOLDER_PATH} /" if [[-d "Frameworks"]]; então rm -fr Frameworks fi
fonte
Se você estiver usando o CocoaPods, eu consideraria excluir a fase de construção das estruturas Embed no destino problemático (a extensão), isso corrigiu o problema para mim.
fonte
Eu estava recebendo o mesmo erro e é porque estava copiando a estrutura no pacote de extensão. Acontece que as estruturas usadas pela extensão devem ser copiadas no pacote de aplicativos principais e vinculadas apenas nas configurações de criação da extensão (não copiadas). Certifique-se de ter o caminho de pesquisa '@executable_path /../../ Frameworks' na compilação da extensão. Eu acho que esse caminho foi adicionado automaticamente pelo XCode 10.
fonte
Encontrei muitas perguntas como essa e nenhuma me ajudou a resolver meu problema, por isso espero que isso ajude alguém.
Estou criando um aplicativo que possui uma extensão Intent (para atalhos da Siri) e estou usando uma estrutura para código compartilhado entre a extensão e meu aplicativo, conforme recomendado pela Apple.
Eu adicionei minha estrutura à minha extensão na seção "Estruturas e bibliotecas" das configurações "Gerais" do destino. Quando você adiciona uma estrutura aqui, há duas colunas. Um diz o nome da estrutura e o outro é intitulado "Incorporar". Como não havia nada aparecendo na coluna "Incorporar", achei que estava bem, mas tive que escolher explicitamente uma opção "Não incorporar" para essa coluna na minha estrutura. Quando fiz isso e arquivei no Xcode, pude ver durante a validação que a estrutura não estava mais listada no meu conteúdo ipa em cada destino, mas apenas uma vez e a validação teve êxito finalmente.
fonte
Eu tive esse problema na primeira vez com o XCode 7.1.1 para o meu aplicativo que possui uma extensão Today (não há Swift no meu projeto). O script ( https://github.com/CocoaPods/CocoaPods/issues/4203 ) não funcionou para mim.
Fazendo upgrade de cocoapods para a versão 0.39.0.beta.3, executando
pod install
e, em seguida, arquivando novamente, resolveu o problema.fonte
Eu estava recebendo esse mesmo erro, junto com um
Meu problema estava com o
SquareReaderSDK.framework
especificamente, mas tive que adicionar um novo script de execução de acordo com as instruções:fonte
Nenhuma das configurações de compilação listadas aqui resolveu esse problema para mim. No entanto, consegui que isso funcionasse depois de mover algumas estruturas de "Binários incorporados" para "Estruturas e bibliotecas vinculadas".
Parece que meu aplicativo principal e uma de minhas estruturas personalizadas tinham a mesma dependência de estrutura em ambos e isso parece ser um Não, mas movê-lo no meu aplicativo principal da área de Incorporado para a área de Link permitiu que eu carregasse o aplicativo com êxito com Sem erros.
fonte