2016-10-29 13 views
4

由于更新到火力地堡崩溃经由的CocoaPods报告3.8.0,我看到建立用于调试模式下面的错误时。我能够在没有错误的情况下建立发布模式。与调试未定义的符号建立在火力地堡/ CrashReporting

Undefined symbols for architecture armv7: 
    "_OBJC_CLASS_$_GTMLogNoFilter", referenced from: 
     objc-class-ref in FirebaseCrash(FCRSystemLogger_6532fb37dc095ffa73463b57baf5fca7.o) 
    "_OBJC_CLASS_$_GTMLogBasicFormatter", referenced from: 
     objc-class-ref in FirebaseCrash(FCRSystemLogger_6532fb37dc095ffa73463b57baf5fca7.o) 
    "_OBJC_CLASS_$_GTMLogger", referenced from: 
     objc-class-ref in FirebaseCrash(FCRSystemLogger_6532fb37dc095ffa73463b57baf5fca7.o) 
     objc-class-ref in FirebaseCrash(uploader_089041b840f448492d858d7daf481e47.o) 
ld: symbol(s) not found for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

回答

5

时的XCode设置构建有源体系仅在调试模式设置为NO发生这种情况。

一些Firebase SDK依赖从源代码构建的窗格。默认情况下,的CocoaPods设置构建有源体系仅YES用于调试运行时,从源代码构建的所有吊舱。这种不匹配会导致您提到的缺失符号。

有两个选项来解决该问题:您 主体工程

  1. 开关构建有源体系仅YES调试。
  2. 设置你的豆荚构建有源体系仅NO而在调试(从这个post拍摄):

    post_install do |installer_representation| 
        installer_representation.pods_project.targets.each do |target| 
        target.build_configurations.each do |config| 
         config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' 
        end 
        end 
    end 
    
+0

我应该在哪里添加荚建设活动体系结构只为NO,在Podfile中? –

+1

这是正确的,在你的Podfile中 –