Con*_*nor 5 objective-c ios firebase
我一直在尝试将 firebase 框架添加到我的 ios 应用程序中。我按照此处的说明进行操作:https ://www.firebase.com/docs/ios-quickstart.html 。当我尝试编译我的项目,甚至是 firebase 模板项目时,我遇到了大量链接器错误。(如果有人感兴趣,我可以将它们粘贴到这里,但文字很多)firebase 框架需要这些框架,我已确保将它们全部包含在内。
libicucore.dylib
CFNetwork.framework
Security.framework
SystemConfiguration.framework
Run Code Online (Sandbox Code Playgroud)
是否还有其他我缺少但未列出的框架?我不知道发生了什么事。谢谢您的帮助!
编辑:这是错误
体系结构 i386 的未定义符号:“std:: 1::basic_string, std::__1::allocator >::compare(char const*) const”,引用自:Firebase(version_set) 中的 leveldb::VersionSet::Recover() .o) “std::_ 1:: _vector_base_common::__ throw_length_error() const”,引用自: void std::_ 1::vector >:: _push_back_slow_path(leveldb::Iterator* const&) in Firebase(db_impl.o) ) Firebase(db_impl.o) 中的 void std::_ 1::vector >:: _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) void std::_ 1::vector >:: _push_back_slow_path(unsigned long Firebase(db_impl.o) 中的 long const&) Firebase(db_impl.o) 中的 void std::_ 1::vector, std::__1::allocator > >:: _push_back_slow_path const>(std::__1::pair const&) ) std::__1::enable_if<__is_forward_iterator >::value, std::_ 1:: _wrap_iter >::type std::_ 1::vector >::insert >(std:: _1::__wrap_iter, std ::_ 1:: _wrap_iter, std::_ 1:: _wrap_iter) 在 Firebase(version_set.o) std::_ 1::vector >:: _append(unsigned long) 在 Firebase(version_set.o) std:: __1::enable_if<__is_forward_iterator::value, void>::type std::__1::vector >::assign(leveldb::FileMetaData* , leveldb::FileMetaData*) 在 Firebase(version_set.o) ...“std::__1::basic_string, std::__1::allocator >::__init(char const*, unsigned long)”,引用自:-[APLevelDB initWithPath:错误:] 在 Firebase(APLevelDB.o) leveldb::DBImpl::NewDB() 在 Firebase(db_impl.o) leveldb::Status::ToString() const 在 Firebase(status.o) leveldb::VersionSet::WriteSnapshot (leveldb::log::Writer*) 在 Firebase(version_set.o) leveldb::VersionSet::SetupOtherInputs(leveldb::Compaction*) 在 Firebase(version_set.o) leveldb::VersionSet::Builder::Apply(leveldb) ::VersionEdit*) 在 Firebase(version_set.o) leveldb::SetCurrentFile(leveldb::Env*, std::__1::basic_string, std::__1::allocator > const&, unsigned long long) 在 Firebase(filename. o) ...“std::__1::basic_string,std::__1::allocator >::__init(char const*, unsigned long, unsigned long)”,引用自:leveldb::DBImpl::DeleteObsoleteFiles()在 Firebase(db_impl.o) leveldb::DestroyDB(std::__1::basic_string, std::__1::allocator > const&, leveldb::Options const&) 在 Firebase(db_impl.o) leveldb::VersionSet::Recover () 在 Firebase(version_set.o) leveldb::MakeFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long, char const*) 在 Firebase(filename.o) leveldb:: Firebase(filename.o) 中的 DescriptorFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long) leveldb::CurrentFileName(std::__1::basic_string, std::__1:: Firebase(filename.o) 中的分配器 > const&) leveldb::LockFileName(std::__1::basic_string, std::__1::allocator > const&) Firebase(filename.o) 中 ... "std::__1: :basic_string, std::__1::allocator >::append(char const*)",引用自:leveldb::DBImpl::GetProperty(leveldb::Slice const&, std::__1::basic_string, std::__1 ::allocator >*) in Firebase(db_impl.o) leveldb::Version::DebugString() const in Firebase(version_set.o) leveldb::VersionEdit::DebugString() const in Firebase(version_edit.o) leveldb:: Firebase 中的 TableBuilder::Finish() (table_builder.o) leveldb::ParsedInternalKey::DebugString() Firebase 中的 const (dbformat.o) leveldb::AppendNumberTo(std::__1::basic_string, std::__1::allocator >*, unsigned long long) 在 Firebase(logging.o) leveldb::AppendEscapedStringTo(std::__1::basic_string, std::__1::allocator >*, leveldb::Slice const&) 在 Firebase(logging.o) ...“std::__1::basic_string,std::__1::allocator >::append(char const*, unsigned long)”,引用自:leveldb::WriteBatchInternal::Append(leveldb::WriteBatch*, Firebase 中的 leveldb::WriteBatch const*) (write_batch.o) Firebase 中的 leveldb::DBImpl::DeleteObsoleteFiles() (db_impl.o) leveldb::DestroyDB(std::__1::basic_string, std::__1::allocator > const&, leveldb::Firebase(db_impl.o) 中的选项 const&) leveldb::Status::ToString() Firebase(status.o) 中的 const leveldb::Version::DebugString() Firebase(version_set.o) 中的 const leveldb::VersionSet:: Firebase(version_set.o) 中的 Recover() leveldb::MakeFileName(std::__1::basic_string, std::__1::allocator > const&, unsigned long long, char const*) Firebase(filename.o) .. . "std::__1::basic_string, std::__1::allocator >::assign(char const*)",引用自:leveldb::DBImpl::GetProperty(leveldb::Slice const&, std::__1: Firebase(db_impl.o) 中的 :basic_string, std::__1::allocator >*) leveldb::InternalKey::DebugString() Firebase(dbformat.o) leveldb::(匿名命名空间)::PosixEnv::GetTestDirectory 中的 const Firebase(env_posix.o) 中的 (std::__1::basic_string, std::__1::allocator >*) "std::__1::basic_string, std::__1::allocator >::assign(char const* ,unsigned long)",引用自:Firebase(write_batch.o)中的leveldb::WriteBatchInternal::SetContents(leveldb::WriteBatch*, leveldb::Slice const&) leveldb::DBImpl::DoCompactionWork(leveldb::DBImpl:: Firebase 中的 CompactionState*) (db_impl.o) leveldb::BuildTable(std::__1::basic_string, std::__1::allocator > const&, leveldb::Env*, leveldb::Options const&, leveldb::TableCache* , leveldb::Iterator*, leveldb::FileMetaData*) 在 Firebase(builder.o) leveldb::SaveValue(void*, leveldb::Slice const&, leveldb::Slice const&) 在 Firebase(version_set.o) leveldb:: Firebase 中的 VersionSet::WriteSnapshot(leveldb::log::Writer*) (version_set.o) leveldb::VersionEdit::DecodeFrom(leveldb::Slice const&) Firebase(version_edit.o) leveldb::TableBuilder::Add( Firebase(table_builder.o) 中的 leveldb::Slice const&、leveldb::Slice const&) ... "std::__1::basic_string, std::__1::allocator >::resize(unsigned long, char)",引用自: Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::Clear() (write_batch.o) ) Firebase 中的 leveldb::VersionSet::Recover() (version_set.o) leveldb::(匿名命名空间)::BytewiseComparatorImpl::FindShortestSeparator(std::__1::basic_string, std::__1::allocator >*, leveldb ::Slice const&) Firebase 中的 const (comparator.o) leveldb::(匿名命名空间)::BytewiseComparatorImpl::FindShortSuccessor(std::__1::basic_string, std::__1::allocator >*) Firebase 中的 const (comparator) .o) Firebase(block_builder.o) 中的 leveldb::BlockBuilder::Add(leveldb::Slice const&, leveldb::Slice const&) ... "std::__1::basic_string, std::__1::allocator > ::push_back(char)",引用自:Firebase(write_batch.o) 中的 leveldb::WriteBatch::Put(leveldb::Slice const&, leveldb::Slice const&) leveldb::WriteBatch::Delete(leveldb::Firebase 中的切片 const&) (write_batch.o) leveldb::Version::DebugString() Firebase 中的 const (version_set.o) leveldb::AppendEscapedStringTo(std::__1::basic_string, std::__1::allocator >*, Firebase(logging.o) 中的 leveldb::Slice const&) Firebase(logging.o) 中的 leveldb::EscapeString(leveldb::Slice const&) Firebase(filter_block.o) 中的 leveldb::FilterBlockBuilder::Finish() “std: :__1::basic_string, std::__1::allocator >::basic_string(std::__1::basic_string, std::__1::allocator > const&)",引用自:leveldb::DBImpl::DBImpl(leveldb ::Options const&, std::__1::basic_string, std::__1::allocator > const&) 在 Firebase(db_impl.o) leveldb::DBImpl::OpenCompactionOutputFile(leveldb::DBImpl::CompactionState*) 在 Firebase( db_impl.o) leveldb::VersionEdit::AddFile(int, unsigned long long, unsigned long long, leveldb::InternalKey const&, leveldb::InternalKey const&) 在 Firebase(db_impl.o) void std::_1::vector >:: _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) in Firebase(db_impl.o) void std::_ 1::vector,std::__1::allocator > >:: _push_back_slow_path Firebase(db_impl.o) 中的 const>(std::__1::pair const&) std::_ 1::vector, std::__1::allocator > >:: _swap_out_circular_buffer(std::_ 1:: _split_buffer, Firebase(db_impl.o) 中的 std::__1::allocator >&>&) leveldb::Status::ToString() Firebase(status.o) 中的 const ... "std::__1::basic_string, std: :__1::allocator >::~basic_string()",引用自: -[APLevelDB initWithPath:error:] in Firebase(APLevelDB.o) -[APLevelDB dataForKey:] in Firebase(APLevelDB.o) -[APLevelDB stringForKey: ] 在 Firebase(APLevelDB.o) leveldb::WriteBatch::WriteBatch() 在 Firebase(write_batch.o) leveldb::WriteBatch::WriteBatch() 在 Firebase(write_batch.o) leveldb::WriteBatch::~WriteBatch()在 Firebase(write_batch.o) leveldb::WriteBatch::~WriteBatch() 在 Firebase(write_batch.o) ... "std::__1::basic_string,std::__1::allocator >::operator=(std ::__1::basic_string,std::__1::allocator > const&)",引用自:Firebase(db_impl.o) 中的 leveldb::DBImpl::NewDB() leveldb::DBImpl::TEST_CompactRange(int, leveldb: :Slice const*, leveldb::Slice const*) 在 Firebase(db_impl.o) leveldb::DBImpl::BackgroundCompaction() 在 Firebase(db_impl.o) leveldb::DBImpl::GetProperty(leveldb::Slice const&, std ::__1::basic_string, std::__1::allocator >*) 在 Firebase(db_impl.o) leveldb::VersionEdit::AddFile(int, unsigned long long, unsigned long long, leveldb::InternalKey const&, leveldb: :InternalKey const&) 在 Firebase(db_impl.o) leveldb::VersionSet::LogAndApply(leveldb::VersionEdit*, leveldb::port::Mutex*) 在 Firebase(version_set.o) leveldb::VersionSet::WriteSnapshot(leveldb) ::log::Writer*) 在 Firebase(version_set.o) ... "void std::_ 1:: _sort&, unsigned long long*>(unsigned long long*, unsigned long long*, std::_ 1 ::_less&)",引用自:Firebase(db_impl.o) 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) "std::terminate()",引用自:leveldb::WriteBatch::WriteBatch() 中Firebase(write_batch.o) leveldb::WriteBatch::WriteBatch() 在 Firebase(write_batch.o) leveldb::SanitizeOptions(std::__1::basic_string, std::__1::allocator > const&, leveldb::InternalKeyComparator const *, leveldb::InternalFilterPolicy const*, leveldb::Options const&) 在 Firebase(db_impl.o) leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1:: Firebase(db_impl.o) 中的分配器 > const&) Firebase(db_impl.o) 中的 leveldb::DBImpl::~DBImpl() Firebase(db_impl.o) 中的 leveldb::DBImpl::NewDB() Firebase(db_impl.o) leveldb::DBImpl:: MaybeIgnoreError(leveldb::Status*) const in Firebase(db_impl.o) ... "vtable for _ cxxabiv1:: _class_type_info",引用自: typeinfo for leveldb::WriteBatch::Handler in Firebase(write_batch.o) typeinfo for Firebase 中的 leveldb::DB(db_impl.o) Firebase 中的 leveldb::Snapshot 的类型信息(db_impl.o) Firebase 中的 leveldb::Comparator 的类型信息(comparator.o) Firebase 中的 leveldb::Cache 的类型信息(cache.o) Firebase(filter_policy.o) 中 leveldb::FilterPolicy 的 typeinfo) Firebase(env.o) 中 leveldb::Env 的 typeinfo ... 注意:缺少 vtable 通常意味着第一个非内联虚拟成员函数没有定义。“_cxxabiv1 的虚函数表::_si_class_type_info”,引用自: Firebase 中 leveldb::(匿名命名空间)::MemTableInserter 的 typeinfo(write_batch.o) Firebase 中 leveldb::DBImpl 的 typeinfo(db_impl.o) leveldb::DBImpl::RecoverLogFile(unsigned long ) 的 typeinfo long, leveldb::VersionEdit*, unsigned long long*)::LogReporter in Firebase(db_impl.o) typeinfo for leveldb::SnapshotImpl in Firebase(db_impl.o) typeinfo for leveldb::VersionSet::Recover()::LogReporter在 Firebase(version_set.o) 中,为 leveldb::Version::LevelFileNumIterator 键入信息 在 Firebase(version_set.o) 中,为 leveldb::(匿名命名空间)::BytewiseComparatorImpl 在 Firebase(comparator.o) 中键入信息 ... 注意:缺少 vtable通常意味着第一个非内联虚拟成员函数没有定义。“operator delete”,引用自: -[APLevelDB initWithPath:error:] in Firebase(APLevelDB.o) -[APLevelDB setData:forKey:] in Firebase(APLevelDB.o) -[APLevelDB setData:forKey:] in Firebase(APLevelDB.o) o) -[APLevelDB setString:forKey:] 在 Firebase(APLevelDB.o) -[APLevelDB dataForKey:] 在 Firebase(APLevelDB.o) -[APLevelDB stringForKey:] 在 Firebase(APLevelDB.o) -[APLevelDB removeKey:] 在Firebase(APLevelDB.o) -[APLevelDB commitWriteBatch:] in Firebase(APLevelDB.o) ...“操作符删除(void*)”,引用自:leveldb::WriteBatch::Handler::~Handler() in Firebase( write_batch.o) leveldb::(匿名命名空间)::MemTableInserter::~MemTableInserter() in Firebase(write_batch.o) leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std ::__1::allocator > const&) 在 Firebase(db_impl.o) 中 leveldb::DBImpl::~DBImpl() 在 Firebase(db_impl.o) leveldb::DBImpl::~DBImpl() 在 Firebase(db_impl.o) Firebase(db_impl.o) 中的 leveldb::DBImpl::DeleteObsoleteFiles() Firebase(db_impl.o) 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) ...“operator new[](unsigned long)” ,引用自:Firebase(status.o)中的leveldb::Status::CopyState(char const*) leveldb::Status::Status(leveldb::Status::Code, leveldb::Slice const&, leveldb::Slice const& ) 在 Firebase(status.o) leveldb::Status::Status(leveldb::Status::Code, leveldb::Slice const&, leveldb::Slice const&) 在 Firebase(status.o) leveldb::VersionSet::MakeInputIterator (leveldb::Compaction*) in Firebase(version_set.o) leveldb::(匿名命名空间)::HandleTable::Resize() in Firebase(cache.o) leveldb::LookupKey::LookupKey(leveldb::Slice const&, unsigned long long) in Firebase(dbformat.o) leveldb::LookupKey::LookupKey(leveldb::Slice const&, unsigned long long) in Firebase(dbformat.o) ...“operator new(unsigned long)”,引用自: Firebase 中的 leveldb::DBImpl::DBImpl(leveldb::Options const&, std::__1::basic_string, std::__1::allocator > const&) (db_impl.o) leveldb::Firebase(db_impl.o) 中的 DBImpl::RecoverLogFile(unsigned long long, leveldb::VersionEdit*, unsigned long long*) leveldb::DBImpl::BackgroundCompaction() Firebase(db_impl.o) 中 leveldb::DBImpl::OpenCompactionOutputFile (leveldb::DBImpl::CompactionState*) 在 Firebase(db_impl.o) leveldb::DBImpl::NewInternalIterator(leveldb::ReadOptions const&, unsigned long long*) 在 Firebase(db_impl.o) leveldb::DBImpl::GetSnapshot () 在 Firebase(db_impl.o) leveldb::DBImpl::MakeRoomForWrite(bool) 在 Firebase(db_impl.o) ... "_cxa_begin_catch”,引用自:Firebase(db_impl.o) leveldb::(匿名命名空间)::PosixEnv::Schedule(void ( ) (void ), void*) 中的 std:: 1::deque >::__add_back_capacity()在 Firebase(env_posix.o) 中“ _cxa_call_unexpected”,引用自:Firebase(db_impl.o) 中的 leveldb::DBImpl::DeleteObsoleteFiles() 在 Firebase(db_impl.o) 中的 leveldb::DBImpl::Recover(leveldb::VersionEdit*) ) Firebase 中的 leveldb::DBImpl::CleanupCompaction(leveldb::DBImpl::CompactionState*) (db_impl.o) leveldb::DestroyDB(std:: 1::basic_string, std::__1::allocator > const&, leveldb: Firebase(db_impl.o) 中的选项 const&) void std::_ 1::vector >:: _push_back_slow_path(leveldb::DBImpl::CompactionState::Output const&) Firebase(db_impl.o) void std::_ 1 ::向量,std::__1::分配器 > >:: _push_back_slow_path const>(std::__1::pair const&) 在 Firebase(db_impl.o) leveldb::VersionEdit::~VersionEdit() 在 Firebase(db_impl.o) o) ... " _cxa_end_catch",引用自:Firebase(db_impl.o) 中的 std:: 1::deque >::__add_back_capacity() leveldb::(匿名命名空间)::PosixEnv::Schedule(void ( )( void ), void*) in Firebase(env_posix.o) " _cxa_pure_virtual",引用自: Firebase 中 leveldb::WriteBatch::Handler 的 vtable(write_batch.o) Firebase 中 leveldb::DB 的 vtable(db_impl.o) vtable Firebase 中的 leveldb::Comparator(comparator.o) Firebase 中的 leveldb::Cache(cache.o) Firebase 中的 leveldb::FilterPolicy 的虚表(filter_policy.o) Firebase 中的 leveldb::Env 的虚表(env.o) ) Firebase(env.o) 中 leveldb::SequentialFile 的 vtable ...“ _cxa_rethrow”,引用自:Firebase(db_impl.o) 中的 std::_ 1::deque >:: _add_back_capacity() leveldb::(anonymous命名空间)::PosixEnv::Schedule(void ( )(void ), void*) in Firebase(env_posix.o) "_gxx_personality_v0",引用自:Firebase(APLevelDB.o) 中的矮人异常展开信息 (__eh_frame) Firebase(write_batch.o) 中的矮人异常展开信息 (__eh_frame) Firebase(db_impl.o) 中的矮人异常展开信息 (__eh_frame) Firebase(status.o) 中的展开信息 (__eh_frame) Firebase(builder.o) 中的矮人异常展开信息 (__eh_frame) Firebase(version_set.o) 中的矮人异常展开信息 (__eh_frame) Firebase(version_set.o) 中的矮人异常展开信息 (__eh_frame)( table_cache.o) ... Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的 leveldb::WriteBatch::WriteBatch() (write_batch.o) Firebase 中的矮人异常展开信息 (__eh_frame) (APLevelDB) .o) Firebase(write_batch.o) 中的矮人异常展开信息 (__eh_frame) Firebase(db_impl.o) 中的矮人异常展开信息 (__eh_frame) Firebase(status.o) 中的矮人异常展开信息 (__eh_frame) Firebase(builder.o) 中的 __eh_frame) Firebase(version_set.o) 中的矮人异常展开信息 (__eh_frame) Firebase(table_cache.o) 中的矮人异常展开信息 (__eh_frame) ... leveldb::SanitizeOptions(std::__1: :basic_string, std::__1::allocator > const&, leveldb::InternalKeyComparator const*, leveldb::InternalFilterPolicy const*, leveldb::Options const&) 在 Firebase(db_impl.o) leveldb::DBImpl::DBImpl(leveldb: Firebase(db_impl.o) 中的选项 const&、std::__1::basic_string、std::__1::allocator > const&) Firebase(db_impl.o) 中的 leveldb::DBImpl::~DBImpl() ... ld :未找到体系结构 i386 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
对不起。我们今天推出了一个新版本,添加了对 libc++.dylib 的新依赖项,如果添加它,它应该会构建。
请注意,当前构建还存在一个问题,导致无法构建arm64。鉴于此,您可能只想使用以前的版本:https://cdn.firebase.com/ObjC/Firebase.framework-1.0.9.zip
否则请等待一天左右,我们将整理出最新的版本。
带来不便敬请谅解!
| 归档时间: |
|
| 查看次数: |
3868 次 |
| 最近记录: |