Ionic-framework: ios **BUILD FAILED ** símbolos duplicados para arquitetura x86_64

Criado em 20 set. 2017  ·  19Comentários  ·  Fonte: ionic-team/ionic-framework

Versão iônica: (marque um com "x")
[ ] 1.x (Para problemas do Ionic 1.x, use https://github.com/ionic-team/ionic-v1)
[ ] 2.x
[x] 3.x

Estou enviando um ... (marque um com "x")
[x] relatório de bug
[ ] solicitação de recurso
[ ] solicitação de suporte => Por favor, não envie solicitações de suporte aqui, use um destes canais: https://forum.ionicframework.com/ ou http://ionicworldwide.herokuapp.com/

Comportamento atual:
Após um período de tempo indefinido, meu aplicativo não pode mais ser compilado para dispositivos ios.

Comportamento esperado:
Deve ser capaz de construir para dispositivos ios.

Passos para reproduzir:
não faço ideia de como isso acontece

Código relacionado:
Isto é o que eu recebo ao tentar construir para ios

> cordova build ios
✖ Running command - failed!
[ERROR] An error occurred while running cordova build ios (exit code 1):


        (truncated) ... licate symbol _OBJC_IVAR_$_UNIHTTPStringResponse._body in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_CLASS_$_UNIHTTPStringResponse in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_METACLASS_$_UNIHTTPStringResponse in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-6AE7BF574F7FD89D.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIHTTPStringResponse-ACD8B349DA1366AA.o
        duplicate symbol _OBJC_IVAR_$_UNIJsonNode._array in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_IVAR_$_UNIJsonNode._object in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_CLASS_$_UNIJsonNode in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_METACLASS_$_UNIJsonNode in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-7600CC35AA339D64.o

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/UNIJsonNode-B9FEAECE639D8883.o
        duplicate symbol _OBJC_CLASS_$_CDVLogger in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/CDVLogger.o

        /Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
        duplicate symbol _OBJC_METACLASS_$_CDVLogger in:

        /Users/Alexandre/Library/Developer/Xcode/DerivedData/ShOroom-egyzqumtqhesmlcsgwngozvucwss/Build/Intermediates/ShOroom.build/Debug-iphonesimulator/ShOroom.build/Objects-normal/x86_64/CDVLogger.o

        /Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
        ld: 260 duplicate symbols for architecture x86_64
        clang: error: linker command failed with exit code 1 (use -v to see invocation)

        ** BUILD FAILED **


        The following build commands failed:
                Ld build/emulator/ShOroom.app/ShOroom normal x86_64
        (1 failure)
        Error: Error code 65 for command: xcodebuild with args: 
        -xcconfig,/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/cordova/build-debug.xcconfig,-workspace,ShOroom.xcworkspace,-scheme,ShOroom,-configuration,Debug,-sdk,iphonesimulator,-destination,platform=iOS 
        Simulator,name=iPhone 
        SE,build,CONFIGURATION_BUILD_DIR=/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Applications/XAMPP/xamppfiles/htdocs/LVDLV/clone_new/lvdlv/platforms/ios/build/sharedpch

Outra informação:
É a segunda vez que isso acontece comigo, depois da primeira vez tive que criar um projeto iônico do zero e integrar lentamente o que estava no projeto original e no build para ios após cada iteração para detectar o problema. Algumas horas depois e o código copiado na íntegra, de alguma forma consegui compilar para ios.
Tentei compilar para ios esta manhã e ainda estou com o mesmo problema [consulte a seção de código relacionada] .
Também tentei excluir meus diretórios /plugins e /node_modules, mas não ajudou.
Não consegui encontrar nada na web para me ajudar também ..

Informações Ionic: (execute ionic info a partir de um prompt de terminal/cmd e cole a saída abaixo):

cli packages:
    @ionic/cli-utils  : 1.10.2
    ionic (Ionic CLI) : 3.10.3

global packages:
    Cordova CLI : 7.0.1

local packages:
    @ionic/app-scripts : 2.1.4
    Cordova Platforms  : android 6.2.3 ios 4.4.0
    Ionic Framework    : ionic-angular 3.6.1

System:
    ios-deploy : 1.9.1
    ios-sim    : 6.0.0
    Node       : v6.11.0
    npm        : 3.10.10
    OS         : OS X El Capitan
    Xcode      : Xcode 8.2.1 Build version 8C1002
reply

Comentários muito úteis

Tente remover o console do plugin e tente novamente, tive os mesmos problemas. Mas eu tenho Cordova ios 4.5

O problema é o CDVLogger que já está no cordova cli 7

Cc @kensodemann

Todos 19 comentários

Olá! Obrigado por abrir um problema conosco!

Não consigo duplicar seu erro, o que faz todo o sentido porque, como você diz, geralmente funciona e depois para misteriosamente. Então... vamos começar com algumas versões das coisas:

Estou usando o Xcode 9, qual versão você está usando?
Estou usando cordova-ios version 4.4.0 , que se parece com o que você está usando ...

Hmmmm... vou tentar algumas coisas

Ei @kensodemann , atualmente estou no Xcode versão 8.2.1

Obrigada!

Tente remover o console do plugin e tente novamente, tive os mesmos problemas. Mas eu tenho Cordova ios 4.5

O problema é o CDVLogger que já está no cordova cli 7

Cc @kensodemann

Duplicou e corrigiu, embora eu não tenha certeza de que esse seja o seu problema, mas vale a pena tentar.

Primeiro, removi meus diretórios node_modules e platform/ios e fiz um npm i e ionic build , que acabou instalando cordova-ios versão 4.5.0 , que causou exatamente o mesmo problema que você.

Meu palpite (e é apenas um palpite) é que você de alguma forma tem cordova-ios 4.5.0 mesmo que ionic info esteja relatando 4.4.0 (estranho, mas não tenho explicação melhor neste momento) .

Então eu fiz isso:

  1. Em package.json , altere "cordova-ios": "^4.4.0" para "cordova-ios": "4.4.0" (sem '^')
  2. Em config.xml , altere <engine name="ios" spec="^4.4.0" /> para <engine name="ios" spec="4.4.0" />
  3. rm -rf node_modules/ platforms/ios/
  4. npm i
  5. ionic cordova build ios
  6. *CONSTRUÇÃO COM SUCESSO*

Então, pelo menos para mim, a chave para a correção foi fixar a versão cordova-ios em 4.4.0 em vez de usar ^4.4.0 , o que levará atualizações para a versão secundária.

Claro, isso significa que quando for a hora de atualizar cordova-ios , você terá que fazer isso manualmente, mas você provavelmente deseja esse controle de qualquer maneira.

De qualquer forma, experimente e deixe-me saber se isso funciona para você.

@kensodemann Exatamente o problema!

@kensodemann Viva, agora posso construir, obrigado!!

Aqui está a coisa, antes de fazer ioinc build eu entrei no meu arquivo package.json e aqui está o que eu encontrei "cordova-ios": "^4.4.0", e não ^4.5.0 .

De qualquer forma, então eu segui suas instruções, corri rm -rf node_modules/ platform/ios então npm i e npm build .

Esse último comando mudou meu "cordova-ios": "^4.4.0", para "cordova-ios": "^4.5.0", .
Para seguir suas instruções o mais próximo possível, alterei para sua sugestão "cordova-ios": "4.4.0", (o mesmo para config.xml ).

Desinstalei meu node_modules & platform/ios mais uma vez e executei npm i então ionic cordova build ios e funcionou .

Surpreendentemente, depois de fazer isso, ainda me encontro com "cordova-ios": "^4.4.0", no meu package.json e <engine name="ios" spec="^4.4.0" /> no meu config.xml

Surpreendentemente, depois de fazer isso, ainda me encontrei com "cordova-ios": "^4.4.0", no meu package.json e no meu config.xml

Meu palpite é que Cordova faz isso. Pessoalmente, não sou fã de ferramentas atrapalhando minha configuração ... :(

Vou fechar isso então. Que bom que está funcionando para você agora.

@nuno está correto, o plugin do console é a causa raiz, que foi incluído no cordova 7, então basta remover o plugin para corrigir o problema.

@kensodemann
Não funcionou para mim. Eu tenho

Ld build/emulator/MyApp.app/MyApp normal x86_64
cd /Applications/IonicApps/BabyName/platforms/ios
exportar IPHONEOS_DEPLOYMENT_TARGET=9.0
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Library/Frameworks/Python.framework /Versões/3.5/bin:/Users/saikrishna/Softwares/android-sdks/platform-tools:/Users/saikrishna/Softwares/android-sdks/tools:/usr/local/bin:/usr/bin:/bin: /usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10. 3.sdk -L/Applications/IonicApps/BabyName/platforms/ios/build/emulator -F/Applications/IonicApps/BabyName/platforms/ios/build/emulator -FMyApp/Plugins/cordova-plugin-facebook4 -FMyApp/Plugins/ cordova-plugin-googleplus -filelist /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp.LinkFileList - Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp. build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_lto.o -Xlinker -no_de duplicado -Xlinker -objc_abi_version -Xlinker 2 -fobjc-arc -fobjc-link-runtime -ObjC -Xlinker -sectcreate -Xlinker __TEXT -Xlinker __entitlements -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build /Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/MyApp.app.xcent /Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a -weak_framework AudioToolbox -framework StoreKit -framework Bolts -framework FBSDKCoreKit -framework FBSDKLoginKit -framework FBSDKShareKit -framework CoreLocation -framework GoogleAppUtilities -framework GoogleAuthUtilities -framework GoogleNetworkingUtilities -framework GoogleSignIn -framework GoogleSymbolUtilities -framework GoogleUtilities -weak_framework AddressBook -weak_framework CoreText -weak_framework SafariServices -weak_framework Security -weak_framework SystemConfiguration -weak-lz -weak-lz -weak-lz -weak_framework WebKit -weak_framework Social -weak_framework MessageUI -Xlinker -d ependency_info -Xlinker /Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/MyApp_dependency_info.dat -o /Applications/ IonicApps/BabyName/platforms/ios/build/emulator/MyApp.app/MyApp
símbolo duplicado _OBJC_CLASS_$_CDVLogger em:
/Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/CDVLogger.o
/Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
símbolo duplicado _OBJC_METACLASS_$_CDVLogger em:
/Users/eupherntechnology/Library/Developer/Xcode/DerivedData/MyApp-gddohggkprehdkdqznpxmbtrwfzt/Build/Intermediates/MyApp.build/Debug-iphonesimulator/MyApp.build/Objects-normal/x86_64/CDVLogger.o
/Applications/IonicApps/BabyName/platforms/ios/build/emulator/libCordova.a(CDVLogger.o)
ld: 2 símbolos duplicados para arquitetura x86_64
clang: erro: o comando do vinculador falhou com o código de saída 1 (use -v para ver a invocação)

* FALHA NA CONSTRUÇÃO *

Os seguintes comandos de compilação falharam:
Ld build/emulator/MyApp.app/MyApp normal x86_64
(1 falha)
Erro: Código de erro 65 para o comando: xcodebuild com argumentos: -xcconfig,/Applications/IonicApps/BabyName/platforms/ios/cordova/build-debug.xcconfig,-workspace,MyApp.xcworkspace,-scheme,MyApp,-configuration,Debug ,-sdk,iphonesimulator,-destination,platform=iOS Simulator,name=iPhone SE,build,CONFIGURATION_BUILD_DIR=/Applications/IonicApps/BabyName/platforms/ios/build/emulator,SHARED_PRECOMPS_DIR=/Applications/IonicApps/BabyName/platforms/ios /build/sharedpch

Ambiente

cli pacotes: (/Applications/IonicApps/BabyName/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

pacotes globais:

cordova (Cordova CLI) : 7.1.0 
Gulp CLI              : CLI version 3.9.1 Local version 3.9.1

pacotes locais:

Cordova Platforms : ios 4.5.4
Ionic Framework   : ionic1 1.3.3

Sistema:

ios-deploy : 1.9.1 
ios-sim    : 6.1.2 
Node       : v6.10.3
npm        : 2.15.12 
OS         : macOS Sierra
Xcode      : Xcode 8.3.3 Build version 8E3004b

Variáveis ​​ambientais:

ANDROID_HOME : /Users/saikrishna/Softwares/android-sdks

Diversos:

backend : pro

@surajitdeveloper -

Tem certeza de que não está instalando o plugin do console?
Você removeu tudo e reinstalou do zero?

Se seu repositório estiver online, forneça um link e eu posso dar uma olhada rápida. Em geral, porém, este não é um problema do Ionic Framework, mas um problema com o uso de plugins incompatíveis.

@kensodemann está certo, é tudo devido aos plugins serem antigos ou incompatíveis.

Para mim, acabou sendo o cordova-plugin-inappbrowser . No meu config.xml, ainda havia uma referência a um repositório git que não existia mais. Eu primeiro não percebi no processo de compilação, mas de repente, notei que a compilação estava reclamando por não encontrar o repositório para o plug-in. A solução foi bem simples: coloque a linha no config.xml no comentário, e reinstale o plugin. E o iOS estava construindo novamente :)

Portanto, se puder ajudar, verifique o log de compilação depois de executar ionic cordova build ios - ele pode conter erros sobre plugins. E verifique todos os seus plugins: simplesmente reinstalá-los pode não ajudar, você pode ter que atualizar as versões também.

A solução do @nuno funciona para mim, basta executar:
cordova plugin rm cordova-plugin-console
cordova platform rm ios
cordova platform add ios
cordova build ios
Estou usando cordova-ios versão 4.5.4.

Olá a todos,

Eu tive o mesmo problema e tentei executar a solução postada por @didinj e não funciona porque depois disso recebo um erro de scripts ao executar a plataforma rm e depois compilar o ios, adiciono novamente os scripts de aplicativos, mas o problema era este: npm install @ionic / app-scripts@latest --save-dev porque instalo a versão 3.1.7 de scripts e isso gera o mesmo erro principal, então eu executo e novamente app-scripts, mas com uma versão menor para app-scripts e agora funciona bem com 3.0.0: npm install @ionic / [email protected] --save-dev

Estou usando também cordova-ios versão 4.5.4 e todas as versões mais recentes de tudo no macOS High Sierra 10.13.2 com Xcode 9.2

cli pacotes: (/usr/local/lib/node_modules)

@ionic/cli-utils  : 1.19.0
ionic (Ionic CLI) : 3.19.0

pacotes globais:

cordova (Cordova CLI) : 8.0.0

pacotes locais:

@ionic/app-scripts : 3.0.0
Cordova Platforms  : android 6.2.3 ios 4.5.4
Ionic Framework    : ionic-angular 3.9.2

Sistema:

ios-deploy : 1.9.2
Node       : v8.0.0
npm        : 5.0.0
OS         : macOS High Sierra
Xcode      : Xcode 9.2 Build version 9C40b

Espero que com isso eu possa ajudar outros usuários.

Obrigado a todos.

funciona para mim! obrigado @kensodemann ! 😃

Conforme https://github.com/apache/cordova-plugin-console

Este plugin não está mais sendo trabalhado, pois a funcionalidade fornecida por este plugin agora está incluída no cordova-ios 4.5.0 ou superior, e o suporte já está embutido no cordova-windows > 5.0.0. Você deve remover este plugin de seus aplicativos.

alguém ainda tem esse problema? de um novo aplicativo gresh, não consigo usar este plugin ...

A solução do @nuno também funciona para mim.

ionic cordova plugin remove cordova-plugin-console

  • Pressione o comando acima para obter sucesso na compilação do ios.

Obrigado pelo problema! Este problema está sendo bloqueado para evitar comentários que não sejam relevantes para o problema original. Se isso ainda for um problema com a versão mais recente do Ionic, crie um novo problema e verifique se o modelo está totalmente preenchido.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

masimplo picture masimplo  ·  3Comentários

aslamj picture aslamj  ·  3Comentários

giammaleoni picture giammaleoni  ·  3Comentários

alan-agius4 picture alan-agius4  ·  3Comentários

MrBokeh picture MrBokeh  ·  3Comentários