2016-06-03 9 views
7

My Firebase iOS App Мне пришлось поместить каркасы вручную по какой-то причине в cocoapods.Firebase Crash .. iOS Swift

я получаю сообщение об ошибке при столкновении говоря

2016-06-04 00:48:51.356 NewFirebase[74218:11918327] Configuring the default app. 
2016-06-04 00:48:51.401 NewFirebase[74218:11918425] +[NSData gtm_dataByGzippingData:]: unrecognized selector sent to class 0x10bdd8110 
2016-06-04 00:48:51.403 NewFirebase[74218:] <FIRAnalytics/INFO> Firebase Analytics v.3200000 started 
2016-06-04 00:48:51.404 NewFirebase[74218:11918425] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSData gtm_dataByGzipping 

Единственная линия я поставил связанные с firebase является

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
     // Override point for customization after application launch. 

     FIRApp.configure() 


     FBSDKApplicationDelegate.sharedInstance().application(application, 
                   didFinishLaunchingWithOptions: launchOptions) 

     return true 
    } 

другой связан с facebook входа в систему я собираюсь положить с firebase

Это каркасы в нем Frameworks

Это то, что секция линкер выглядит в настройках сборки Linker Flags Section

Пожалуйста, не стесняйтесь, если вы хотите больше кода

если я избавиться от FIRApp.configure() Все работает прекрасно, как его должно быть ..

+0

Загрузили и добавили список свойств GoogleService-Info с сайта console.firebase.google.com? – beyowulf

+0

Эй, ты делаешь лучше меня: 101 ошибки компоновщика. Я выполнил инструкции в README, которые говорят, что они предназначены для Xcode 7. – 7stud

+0

Я сталкиваюсь с той же проблемой. Похоже, что документация Google неполна. Я решил не использовать CocoaPods, импортирую все библиотеки и установил -Objc «Other Linker Flag». Все еще падает. –

ответ

3

Я использую Xcode 7.3.1 для iOS 9.3 для OS X 10.11.5.

У меня была такая же проблема, как и выше, с вопросом «Неопределенные символы».

Я сначала опорожнил все, начиная с «Другие флаги компоновщика», а затем добавил $ (OTHER_LDFLAGS) и -ObjC как 2 отдельных элемента (используя кнопку + при двойном щелчке).

Другое, что я сделал, это удалить рамки, которые дают мне проблемы - GoogleUtilities и FirebaseAnalytics.

Затем я добавил их обратно, используя параметр «Добавить файлы в проект» по одному и обеспечил, чтобы они были нацелены на мое приложение iOS.

После этого появилась реклама и появились объявления.

+0

Спасибо, решите мою проблему тоже! Я добавил 3 строки $ (унаследованные) $ (OTHER_LDFLAGS) -ObjC –

8

добавить два параметра в других Флаги Linker

$(inherited) 
-ObjC 

enter image description here

+0

Не работает для меня. – 7stud

+0

@ 7stud Вы можете упомянуть об ошибках связывания – Pratik

+0

Ссылки «Начало работы» на то, что используется op, и README «framework SDK» говорит, что просто используйте '-ObjC'. – 7stud

1

Ответ на комментарий выше:

Edit: Вот что мой Build Settings выглядеть:

The README.md в каталоге Firebase сказал перетащить файл Firebase.h в проект, а также файл module.modulemap и добавьте путь к файлу module.modulemap к User Header Search Paths: enter image description here

в README.md в каталоге Firebase сказал, чтобы войти только -ObjC здесь: enter image description here

Вот что мой Project Navigator выглядит следующим образом: enter image description here

Ld /Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Products/Debug-iphonesimulator/FirebaseApplicationExample.app/FirebaseApplicationExample normal x86_64 
    cd /Users/7stud/xcode_projects/iOS/FirebaseApplicationExample 
    export IPHONEOS_DEPLOYMENT_TARGET=9.2 
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/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/iPhoneSimulator9.2.sdk -L/Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Products/Debug-iphonesimulator -F/Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Products/Debug-iphonesimulator -F/Users/7stud/xcode_projects/iOS/FirebaseApplicationExample/FirebaseApplicationExample -filelist /Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Intermediates/FirebaseApplicationExample.build/Debug-iphonesimulator/FirebaseApplicationExample.build/Objects-normal/x86_64/FirebaseApplicationExample.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -mios-simulator-version-min=9.2 -Xlinker -objc_abi_version -Xlinker 2 -ObjC -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphonesimulator -Xlinker -add_ast_path -Xlinker /Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Intermediates/FirebaseApplicationExample.build/Debug-iphonesimulator/FirebaseApplicationExample.build/Objects-normal/x86_64/FirebaseApplicationExample.swiftmodule -framework FirebaseDatabase -framework GoogleInterchangeUtilities -framework FirebaseAnalytics -framework GoogleSymbolUtilities -framework GoogleUtilities -framework FirebaseInstanceID -Xlinker -dependency_info -Xlinker /Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Intermediates/FirebaseApplicationExample.build/Debug-iphonesimulator/FirebaseApplicationExample.build/Objects-normal/x86_64/FirebaseApplicationExample_dependency_info.dat -o /Users/7stud/Library/Developer/Xcode/DerivedData/FirebaseApplicationExample-ewixbbawksqkuaaqeeobeaexeirc/Build/Products/Debug-iphonesimulator/FirebaseApplicationExample.app/FirebaseApplicationExample 

Undefined symbols for architecture x86_64: 
    "_ABAddressBookAddRecord", referenced from: 
     -[GSDK_GTMABAddressBook addRecord:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookCopyArrayOfAllGroups", referenced from: 
     -[GSDK_GTMABAddressBook groups] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookCopyArrayOfAllPeople", referenced from: 
     -[GSDK_GTMABAddressBook people] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookCopyLocalizedLabel", referenced from: 
     +[GSDK_GTMABAddressBook localizedLabel:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookCopyPeopleWithName", referenced from: 
     -[GSDK_GTMABAddressBook peopleWithCompositeNameWithPrefix:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookCreateWithOptions", referenced from: 
     -[GSDK_GTMABAddressBook init] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookGetGroupWithRecordID", referenced from: 
     -[GSDK_GTMABAddressBook groupForId:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookGetPersonWithRecordID", referenced from: 
     -[GSDK_GTMABAddressBook personForId:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookHasUnsavedChanges", referenced from: 
     -[GSDK_GTMABAddressBook hasUnsavedChanges] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookRemoveRecord", referenced from: 
     -[GSDK_GTMABAddressBook removeRecord:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABAddressBookSave", referenced from: 
     -[GSDK_GTMABAddressBook save] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABGroupAddMember", referenced from: 
     -[GSDK_GTMABGroup addMember:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABGroupCopyArrayOfAllMembers", referenced from: 
     -[GSDK_GTMABGroup members] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABGroupCreate", referenced from: 
     -[GSDK_GTMABGroup init] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABGroupRemoveMember", referenced from: 
     -[GSDK_GTMABGroup removeMember:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueAddValueAndLabel", referenced from: 
     -[GSDK_GTMABMutableMultiValue addValue:withLabel:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueCopyLabelAtIndex", referenced from: 
     -[GSDK_GTMABMultiValue labelAtIndex:] in GoogleUtilities(GTMABAddressBook.o) 
     -[GSDK_GTMABMultiValueEnumerator nextObject] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueCopyValueAtIndex", referenced from: 
     -[GSDK_GTMABMultiValue valueAtIndex:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueCreateMutable", referenced from: 
     -[GSDK_GTMABMutableMultiValue initWithPropertyType:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueCreateMutableCopy", referenced from: 
     -[GSDK_GTMABMutableMultiValue initWithMultiValue:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueGetCount", referenced from: 
     -[GSDK_GTMABMultiValue count] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueGetIdentifierAtIndex", referenced from: 
     -[GSDK_GTMABMultiValue identifierAtIndex:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueGetIndexForIdentifier", referenced from: 
     -[GSDK_GTMABMultiValue indexForIdentifier:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueGetPropertyType", referenced from: 
     -[GSDK_GTMABMultiValue propertyType] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueInsertValueAndLabelAtIndex", referenced from: 
     -[GSDK_GTMABMutableMultiValue insertValue:withLabel:atIndex:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueRemoveValueAndLabelAtIndex", referenced from: 
     -[GSDK_GTMABMutableMultiValue removeValueAndLabelAtIndex:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueReplaceLabelAtIndex", referenced from: 
     -[GSDK_GTMABMutableMultiValue replaceLabelAtIndex:withLabel:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABMultiValueReplaceValueAtIndex", referenced from: 
     -[GSDK_GTMABMutableMultiValue replaceValueAtIndex:withValue:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonCopyImageData", referenced from: 
     -[GSDK_GTMABPerson imageData] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonCopyLocalizedPropertyName", referenced from: 
     +[GSDK_GTMABPerson localizedPropertyName:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonCreate", referenced from: 
     -[GSDK_GTMABPerson init] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonGetCompositeNameFormat", referenced from: 
     +[GSDK_GTMABPerson compositeNameFormat] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonGetTypeOfProperty", referenced from: 
     +[GSDK_GTMABPerson typeOfProperty:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonRemoveImageData", referenced from: 
     -[GSDK_GTMABPerson setImageData:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABPersonSetImageData", referenced from: 
     -[GSDK_GTMABPerson setImageData:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABRecordCopyCompositeName", referenced from: 
     -[GSDK_GTMABPerson compositeName] in GoogleUtilities(GTMABAddressBook.o) 
     -[GSDK_GTMABGroup compositeName] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABRecordCopyValue", referenced from: 
     -[GSDK_GTMABRecord valueForProperty:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABRecordGetRecordID", referenced from: 
     -[GSDK_GTMABRecord recordID] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABRecordRemoveValue", referenced from: 
     -[GSDK_GTMABRecord removeValueForProperty:] in GoogleUtilities(GTMABAddressBook.o) 
    "_ABRecordSetValue", referenced from: 
     -[GSDK_GTMABRecord setValue:forProperty:] in GoogleUtilities(GTMABAddressBook.o) 
    "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(char const*) const", referenced from: 
     leveldb::VersionSet::Recover() in FirebaseDatabase(version_set.o) 
    "std::__1::__vector_base_common<true>::__throw_length_error() const", referenced from: 
     void std::__1::vector<std::__1::pair<int, leveldb::FileMetaData>, std::__1::allocator<std::__1::pair<int, leveldb::FileMetaData> > >::__push_back_slow_path<std::__1::pair<int, leveldb::FileMetaData> const>(std::__1::pair<int, leveldb::FileMetaData> const&) in FirebaseDatabase(db_impl.o) 
     void std::__1::vector<unsigned long long, std::__1::allocator<unsigned long long> >::__push_back_slow_path<unsigned long long const>(unsigned long long const&) in FirebaseDatabase(db_impl.o) 
     void std::__1::vector<leveldb::DBImpl::CompactionState::Output, std::__1::allocator<leveldb::DBImpl::CompactionState::Output> >::__push_back_slow_path<leveldb::DBImpl::CompactionState::Output const>(leveldb::DBImpl::CompactionState::Output const&) in FirebaseDatabase(db_impl.o) 
     void std::__1::vector<leveldb::Iterator*, std::__1::allocator<leveldb::Iterator*> >::__push_back_slow_path<leveldb::Iterator* const>(leveldb::Iterator* const&) in FirebaseDatabase(db_impl.o) 
... 
... 
     "_utf8_nextCharSafeBody", referenced from: 
      -[FSRWebSocket _innerPumpScanner] in FirebaseDatabase(FSRWebSocket.o) 
    ld: symbol(s) not found for architecture x86_64 
    clang: error: linker command failed with exit code 1 (use -v to see invocation) 
    Showing first 200 notices only 
0

Добавление этот флаг линкер исправлена ​​проблема для меня. Сначала я попытался использовать CocoaPods, но не смог заставить его импортировать какие-либо из более конкретных модулей Firebase. Добавление фреймворков напрямую работало, но только если был добавлен флаг компоновщика -ObjC.

14

Вам нужно добавить эти библиотеки

  • LibC++. TBD
  • libsqlite3.tbd
  • AddressBook.framework

для Link Binary с библиотеками.

Перейти к Targets -> Build Phases

http://i.stack.imgur.com/BpZWD.jpg

+0

Мне также пришлось добавить 'libz.tbd' в дополнение к приведенным выше. –

+0

Это исправило сборку для меня. Почему это не в настройках? Очень загадочное сообщение об ошибке. –

3

Я просто потерял час это - ридй и документация действительно бедна

Вы также должны включать GoogleToolboxForMac.framework я пропустил это поскольку я предполагал, что это было для Mac-приложений, но добавив его в исправленную проблему.

+0

Вы спасли мой день, я думал то же самое, и это решило это – AlBeebe

+0

Большое вам спасибо за этот ответ! – Eric

0

Я просто перетаскивал файлы кода и фреймворки из другого проекта и столкнулся с этой проблемой. После добавления всех фреймворков в фазе сборки добавление -ObjC в «другие флагов компоновщика» решило проблему.

0

Я исправил эту проблему путем удаления FirebaseNanoPB и FirebaseCoreDiagnostics рамки моего проекта.

Смежные вопросы