Firebase更新后Xcode中x86_64架构的未定义符号

时间:2017-05-25 19:09:57

标签: ios xcode firebase firebaseui

我将FirebaseUI更新到最新版本,并更新了TwitterCore 3.0.0(版本为2.8.0),因为我在Xcode中遇到此编译器错误:

Undefined symbols for architecture x86_64:
  "_TWTRIdentifierForAdvertising", referenced from:
      +[TWTRCardConfiguration deviceID] in TwitterKit(TWTRCardConfiguration.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我目前恢复到之前版本的TwitterCore,即使它没有在我的Podfile中明确写入。我写了pod 'TwitterCore', '~>2.8.0'

8 个答案:

答案 0 :(得分:9)

我修复了TwitterCore> 3.0.0是FirebaseUI的问题> 3.0.0或更新pod

pod 'FirebaseUI'
pod 'TwitterCore', '<=2.8.0' # fixed
祝你好运

答案 1 :(得分:5)

我注意到在快速启动ios中包含的Firebase DatabaseExample podfile中,&#39; FirebaseUI&#39;已重命名为“FirebaseUI /数据库”。 我用正确的名称将它添加到podfile中,所有内容似乎都没问题。

答案 2 :(得分:3)

如果您仍在努力解决此错误,那么请转到我的解决方案。我注意到上面的一些解决方案并没有解决Twitter软件包的问题,​​因为他们只是删除对它的引用,这对那些想要处理Twitter功能的人来说不是一个正确的方法。

目前,4.1.1版本为TwitterKit2.4&gt; = FirebaseUI符合其要求,但根据我的测试,最新的2. *版本(即现在2.8.1)使用未定义的符号引用生成错误。

我检查了TwitterKit 4.1.1与之前的pod 'TwitterKit' , '2.7' pod 'FirebaseUI', '~> 4.0' 2.7一样正常。所以我的解决方案就是强制te cocoapod安装这个版本。

按照以下步骤操作:

1)将这两个实例添加到您的Podfile中。 (如果您不想全部安装它们,可以有选择地添加FirebaseUI的子规格。)

pod update

2)运行:

connected

答案 3 :(得分:2)

我用以下方法解决了这个问题:

# Uncomment this line to define a global platform for your project
platform :ios, '9.0'
# Uncomment this line if you're using Swift
use_frameworks!

target 'app name' do

#pod 'FirebaseUI'
pod 'FirebaseUI/Database'
pod 'Firebase/Storage'

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['SWIFT_VERSION'] = '3.0'
end
end
end
end

正如您所看到的,我已评论FirebaseUI并使用FirebaseUI/Database表示数据库,Firebase/Storage表示存储。

答案 4 :(得分:0)

这将是如何定义podfile版本的示例。

例:

目标'Your_project'执行

pod 'Firebase', '~> 1.0'

答案 5 :(得分:0)

就我而言,它只是评论了这个:

# pod 'FirebaseUI/Twitter'

答案 6 :(得分:0)

在Xcode 9,Swift 3,Firebase

- &GT; _TWTRIdentifierForAdvertising&#34;,引用

多数民众赞成帮助我:

首先添加你的Podfile: pod&#39; FirebaseUI&#39; ,&#39;〜&gt; 4.0&#39;

后: pod更新

答案 7 :(得分:0)

If you use it pod in testing. You must add pod in MyAppTests target.

for example:

platform :ios, '9.0'

target 'MyApp' do
  use_frameworks!

  pod 'TwitterCore', '~>3.0.0'

  target 'MyAppTests' do
    inherit! :search_paths

    pod 'TwitterCore', '~>3.0.0'

  end

end