Facebook-sdk-for-unity: Erro ao compilar 7.16.0 no Xcode 10

Criado em 13 jun. 2019  ·  21Comentários  ·  Fonte: facebook/facebook-sdk-for-unity

Oi ! Já faz dois dias que estou tentando construir para iOS e fico preso com um erro estranho:

clang: error: no such file or directory: 'iOS' clang: error: no such file or directory: 'Facebook/Frameworks/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework/FBSDKCoreKit' Command Ld failed with a nonzero exit code

Eu não tenho nenhum arquivo ausente, tudo está presente e eu realmente não entendo, tudo funciona bem no 7.15.0, o que poderia ter mudado desde então?

desde já, obrigado

Comentários muito úteis

@KylinChang após atualizar para 7.16.1, não consegui construir meu projeto devido a um erro.

ld: aviso: função arm64 não alinhada com 4 bytes: _unwind_tester de /Users/xxx/Projects/XCodeProjects/zzz/Libraries/libiPhone-lib.a(unwind_test_arm64.o)
Símbolos indefinidos para a arquitetura arm64:
"_OBJC_CLASS_$_FIRDynamicLinks", referenciado de:
objc-class-ref em libFirebaseCppApp.a(invites_receiver_internal_ios_aa7b75b2efc3269e88f1077e55250e5a.o)
ld: símbolo(s) não encontrado(s) para arquitetura arm64
clang: erro: o comando do vinculador falhou com o código de saída 1 (use -v para ver a invocação)

Mas, se eu mudar -all_load para -force_load, funciona bem.
Eu sei que isso é um erro do Firebase, mas tudo funciona bem no 7.16.0, e ter que editar o linker toda vez que eu construo não é conveniente. você tem alguma ideia?

Todos 21 comentários

Oi @daCelky , você pode verificar se o FBSDKCoreKit existe no diretório do framework em seu projeto xcode? Seria melhor se você pudesse anexar a estrutura da sua estrutura do FacebookSDK no diretório do framework.

Mesma questão aqui. Eu estava usando 7.15.1 e atualizei para 7.16.

Eu tenho o arquivo. abaixo está a captura de tela da minha estrutura de diretórios

Screen Shot 2019-06-15 at 2 52 38 PM

Sim, tudo existe no meu diretório de estrutura.

Mesmo problema aqui com 7.16 e Xcode 10.2.1.

Estou enfrentando o mesmo problema com o facebook sdk versão 7.16 e o ​​Xcode 10.2.1.

clang: erro: nenhum arquivo ou diretório: 'Builds/0.0.1/Frameworks/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework/FBSDKCoreKit'

SDK v7.16.0、Unity 2018.3.0f2、Xcode 10.1(10B61)
Crie o projeto Xcode no Windows primeiro e depois transfira para o Mac
Encontre um caminho nas configurações do projeto Xcode, "Build Settings -> Other Linker Flags", tem uma linha como "D:/XXXFrameworks/FacebookSDK/Plugins/iOS/FBSDKCoreKit.framework/FBSDKCoreKit"
Duas questões:
1.É um caminho do Windows, não no Mac
2. Com o Unity2018, os caminhos dos frameworks são simples, FBSDKCoreKit.framework no diretório "Frameworks", não em "Frameworks/FacebookSDK/Plugins/iOS/"

CORREÇÃO: Altere o caminho para "$(SRCROOT)/Frameworks/FBSDKCoreKit.framework/FBSDKCoreKit"

@daCelky sua pasta de compilação contém espaços?

@Snowblaze , tentei sem nenhum espaço e foi compilado com sucesso, como pode ser um problema, já que todos os outros SDKs estão sendo compilados sem nenhum problema?

Finalmente eu usei 7.15. Espero que o fb conserte logo.

@daCelky tente usar um comando referente a qualquer pasta com espaço, mas sem as aspas, você provavelmente receberá o mesmo erro. Vou tentar encontrar a causa e fazer um pull request em um ou dois dias, para que possamos corrigi-lo na próxima versão.

Acho que pode ter a ver com a versão iOS. Recebo esse problema no meu iPad executando 12.3.1. Não no meu iPhone rodando 12.2.

To com o mesmo problema... :/

  • Vá para XCode-> Targets -> Unity-iPhone -> Build Settings -> Other Linker Flags
  • Clique duas vezes nos valores de Outros sinalizadores de vinculador
  • Remova "-force_load" e FBSDKCoreKit Path se eles estiverem lá

Tente construir novamente.

@jzhudev resolveu o problema de construção, mas o "-force_load" é ​​necessário para este problema: https://github.com/facebook/facebook-sdk-for-unity/issues/208

edit: remover espaços resolveu meu problema, como mencionado acima

@inxidious , na verdade, não tive esse problema de diretório, mas o problema # 261. Estou usando o XCode 10.2.1 e o Unity 2018.2.2.

Olá a todos, atualmente adicionamos "-all_load" para evitar o problema do caminho do SDK do FB e #208 . No entanto, se você quiser usar "-force_load" e tiver o problema "nenhum arquivo ou diretório", altere o caminho do SDK do FB para o correto.

@KylinChang após atualizar para 7.16.1, não consegui construir meu projeto devido a um erro.

ld: aviso: função arm64 não alinhada com 4 bytes: _unwind_tester de /Users/xxx/Projects/XCodeProjects/zzz/Libraries/libiPhone-lib.a(unwind_test_arm64.o)
Símbolos indefinidos para a arquitetura arm64:
"_OBJC_CLASS_$_FIRDynamicLinks", referenciado de:
objc-class-ref em libFirebaseCppApp.a(invites_receiver_internal_ios_aa7b75b2efc3269e88f1077e55250e5a.o)
ld: símbolo(s) não encontrado(s) para arquitetura arm64
clang: erro: o comando do vinculador falhou com o código de saída 1 (use -v para ver a invocação)

Mas, se eu mudar -all_load para -force_load, funciona bem.
Eu sei que isso é um erro do Firebase, mas tudo funciona bem no 7.16.0, e ter que editar o linker toda vez que eu construo não é conveniente. você tem alguma ideia?

@inxidious sua solução funcionou para mim. Obrigado.

@chkuang-g Para sua informação

@KylinChang alguma chance de você alterar seu SDK para não fazer --all_load ? Isso pode contribuir para o inchaço do SDK, pois nada será removido. No SDK do Firebase (sou engenheiro da equipe), contamos com a remoção inoperante no iOS para vincular apenas os componentes referenciados diretamente pelo código do aplicativo ou vinculados explicitamente usando ---force_load archive , talvez --force_load possa ser usado para Componentes do Facebook em vez disso?

Ei @stewartmiles , na última v7.17.2, já removemos o sinalizador e usamos cocoapods para adicionar o FBiOSSDK. Você pode mudar para usar a v7.17.2?

Se você ainda quiser usar a v7.16.0, pode usar --force_load {PATH_OF_FBSDKCoreKit}.

@KylinChang isso é ótimo, obrigado pelo aviso. Não usamos o SDK do Facebook diretamente. Em vez disso, os desenvolvedores o incluem quando desejam se autenticar no Facebook e vincular essa identidade a um token de autenticação do Firebase. Fico feliz que isso tenha mudado para o uso do Cocoapods, espero que você esteja usando o iOS Resolver;)

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

Questões relacionadas

michelleran picture michelleran  ·  4Comentários

MorganMoon picture MorganMoon  ·  7Comentários

naklow12 picture naklow12  ·  6Comentários

derwaldgeist picture derwaldgeist  ·  4Comentários

JuGGerNaunT picture JuGGerNaunT  ·  3Comentários