Facebook-sdk-for-unity: 9.1.0 - Símbolo indefinido: _IOSFBEnableProfileUpdatesOnAccessTokenChange

Criado em 13 abr. 2021  ·  22Comentários  ·  Fonte: facebook/facebook-sdk-for-unity

Lista de controle

Ambiente

Descreva seu ambiente de desenvolvimento aqui, dando o máximo de detalhes possível. Se você os tiver, certifique-se de incluir:

  • Versão do Editor do Unity: 2020.1.17
  • Versão do SDK do Unity: 9.1.0
  • Plataforma de instalação e versão: [iOS] version X.X.X
  • XCode: 12.4 (versão mais alta disponível no Unity Cloud Build)

Metas

O que você quer alcançar?
Tentando construir em Unity Cloud Build e XCode local com 9.1.0 FB SDK.

resultados esperados

O que você espera que aconteça?
Para que o XCode seja construído com sucesso após atualizar o SDK da unidade do Facebook.

Resultados reais

O que realmente aconteceu? Você pode fornecer um rastreamento de pilha?
50424: ▸ Vinculando UnityFramework
50425: ▸ ❌; Símbolos indefinidos para arquitetura arm64
50426: ▸> Símbolo: _IOSFBEnableProfileUpdatesOnAccessTokenChange
50427: ▸> Referenciado em: _IOSWrapper_EnableProfileUpdatesOnAccessTokenChange_m7ADB5E4C2DE8D7EB448729C43F65D1FFECB5F0CC no Facebook.Unity.IOS.o
50428: ▸ ❌; ld: símbolo (s) não encontrado (s) para arquitetura arm64
50439: ▸ ❌; clang: erro: o comando do linker falhou com o código de saída 1 (use -v para ver a chamada)

Passos para reproduzir

Quais são as etapas necessárias para reproduzir esse problema?
Adicione o SDK ao Unity 2020.1.17f, faça uma construção IOS. Certifique-se de usar cocoapods.

Amostras de código e detalhes

Forneça um exemplo de código, bem como quaisquer detalhes adicionais, para nos ajudar a rastrear o problema. Se você puder fornecer um link para um projeto de teste que nos permita reproduzir o problema, isso nos ajudará imensamente na velocidade e na qualidade da correção.

Observação: lembre-se de formatar seu código para facilitar a leitura:

// INSERT YOUR CODE HERE
bug

Comentários muito úteis

Coloque o código a seguir antes de } no final do arquivo FBUnityInterface.mm localizado em FacebookSDK / SDK / Editor / iOS

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

Todos 22 comentários

eu também.

Por enquanto, você pode comentar a linha abaixo no arquivo "Facebook.Unity.IOS.cpp"

reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));

para construir com sucesso, mas NÃO é a melhor e a solução final.
é uma solução definitivamente temporária, alguém tem uma resposta melhor?

Coloque o código a seguir antes de } no final do arquivo FBUnityInterface.mm localizado em FacebookSDK / SDK / Editor / iOS

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

Estou vendo o mesmo erro:

Undefined symbols for architecture arm64: "_IOSFBEnableProfileUpdatesOnAccessTokenChange", referenced from: _IOSWrapper_EnableProfileUpdatesOnAccessTokenChange_m7ADB5E4C2DE8D7EB448729C43F65D1FFECB5F0CC in Facebook.Unity.IOS.o _IOSWrapper_IOSFBEnableProfileUpdatesOnAccessTokenChange_m7E35B38EDDDF18DE2B0B960DA8269D277C8FBCAB in Facebook.Unity.IOS.o (maybe you meant: _IOSWrapper_IOSFBEnableProfileUpdatesOnAccessTokenChange_m7E35B38EDDDF18DE2B0B960DA8269D277C8FBCAB) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Minha configuração:

Versão do Editor do Unity: 2020.1.11
Versão do SDK do Unity: 9.1.0
Plataforma de instalação e Verison: [iOS] versão 14.4.2
XCode: 12.4

Eu não tentei as sugestões acima, ainda.

Por enquanto, você pode comentar a linha abaixo no arquivo "Facebook.Unity.IOS.cpp"

reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));

para construir com sucesso, mas NÃO é a melhor e a solução final.
é uma solução definitivamente temporária, alguém tem uma resposta melhor?

Eu tentei isso e consegui construir!

Por enquanto, você pode comentar a linha abaixo no arquivo "Facebook.Unity.IOS.cpp"
reinterpret_cast(IOSFBEnableProfileUpdatesOnAccessTokenChange)(static_cast<int32_t>(___enable0));
para construir com sucesso, mas NÃO é a melhor e a solução final.
é uma solução definitivamente temporária, alguém tem uma resposta melhor?

Eu tentei isso e consegui construir!

A solução de @firatagdas também funciona para mim.

Também falha usando Unity 2019.4.31

Ele também falha ao usar o Unity 2020.1.16f1

parece falhar em toda e qualquer versão do Unity, a solução @firatagdas funciona perfeitamente e foi construída usando isso para compilar sem problemas até agora. Parece bastante impressionante, eles lançaram um SDK que nem mesmo compila em uma plataforma.

Desculpe Facebook, mas vocês são amadores. Você está tentando construir projetos ao vivo com seu SDK? E o relatório do bug está aqui por 7 dias ... E quanto ao hotfix?

Inscrito para solução oficial.

@firatagdas , Sua solução funcionou para mim também.

Alguma notícia sobre este assunto? Consigo consertar com a sugestão de @ zhengwu119 , mas preciso consertar para poder construir com a nuvem, por favor.

Coloque o código a seguir antes de } no final do arquivo FBUnityInterface.mm localizado em FacebookSDK / SDK / Editor / iOS

  void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

Obrigado. Isso me ajudou.

A solução de @firatagdas funcionou para mim em 24/04/2019, obrigado @firatagdas 💯

outro para @firatagdas aqui. Facebook SDK 9.1.0 com Unity 2019.4.11f1. Coisas boas meu cara

Obrigado a @firatagdas. A solução proposta (veja abaixo) funciona para meu caso de uso. A equipe do FB pode cuidar desse bug. Parece que a solução está aqui nos comentários, pelo menos para alguns casos de uso. A correção parece ser bem simples -> deve ser fácil lançar a correção de bug.

void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
  {
    [[FBUnityInterface sharedInstance] IOSFBEnableProfileUpdatesOnAccessTokenChange:enable];
  }

Isso significa que eles nem mesmo tentam construir para iOS realmente - mas sim, @firatagdas fix funcionou para mim também. Não tenho certeza se deveria me sentir seguro o suficiente para realmente colocar isso em nosso próximo lançamento ...

Mesmo problema com Unity 2021.1.0f1 e Facebook 9.1.0

A equipe do Facebook SDK deve contratar @firatagdas para fazer as coisas

A solução

Isso deve ser corrigido na v9.2.0: https://developers.facebook.com/docs/unity/change-log

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

Questões relacionadas

laijingfeng picture laijingfeng  ·  6Comentários

bblpny picture bblpny  ·  4Comentários

michelleran picture michelleran  ·  4Comentários

sivu picture sivu  ·  6Comentários

SeriouslySam picture SeriouslySam  ·  6Comentários