question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Undefined Symbols for arm64:

See original GitHub issue

Goals

Build and launch on a physical iOS device

Expected Results

Successful launch and no build error on physical Device

Actual Results

Build Error in Xcode:

Undefined symbols for architecture arm64:
  "realm::ConstTableView::apply_descriptor_ordering(realm::DescriptorOrdering const&)", referenced from:
      realm::_impl::ResultsNotifier::run() in libRealmJS.a(results_notifier.o)
  "realm::TableVersions::operator==(realm::TableVersions const&) const", referenced from:
      realm::_impl::ResultsNotifier::need_to_run() in libRealmJS.a(results_notifier.o)
  "realm::ClusterTree::ConstIterator::operator->() const", referenced from:
      realm::ClusterTree::Iterator::operator->() const in libRealmJS.a(sync_metadata.o)
  "realm::ConstObj::remove()", referenced from:
      realm::SyncUserMetadata::remove() in libRealmJS.a(sync_metadata.o)
      realm::SyncFileActionMetadata::remove() in libRealmJS.a(sync_metadata.o)
  "typeinfo for realm::Transaction", referenced from:
      realm::SyncMetadataManager::make_file_action_metadata(realm::StringData, realm::StringData, realm::StringData, realm::SyncFileActionMetadata::Action, realm::StringData) const in libRealmJS.a(sync_metadata.o)
  "realm::Table::begin()", referenced from:
      realm::SyncMetadataManager::SyncMetadataManager(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, realm::util::Optional<std::__1::vector<char, std::__1::allocator<char> > >)::$_1::operator()() const in libRealmJS.a(sync_metadata.o)
      realm::SyncMetadataManager::SyncMetadataManager(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, bool, realm::util::Optional<std::__1::vector<char, std::__1::allocator<char> > >)::$_0::operator()(std::__1::shared_ptr<realm::Realm>, std::__1::shared_ptr<realm::Realm>, realm::Schema&) const in libRealmJS.a(sync_metadata.o)
  "realm::util::try_remove_dir_recursive(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      realm::SyncFileManager::remove_user_directory(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in libRealmJS.a(sync_file.o)
      realm::SyncFileManager::remove_realm(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) const in libRealmJS.a(sync_file.o)
      realm::SyncFileManager::remove_metadata_realm() const in libRealmJS.a(sync_file.o)
  "realm::util::sha1(char const*, unsigned long, unsigned char*)", referenced from:
      realm::SyncConfig::partial_sync_identifier(realm::SyncUser const&) in libRealmJS.a(sync_config.o)
  "realm::ConstTableView::average_int(realm::ColKey, unsigned long*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::TableView&>::avg(realm::ColKey, unsigned long*) in libRealmJS.a(results.o)
  "realm::Table::average_int(realm::ColKey, unsigned long*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::Table const&>::avg(realm::ColKey, unsigned long*) in libRealmJS.a(results.o)
  "realm::Table::average_double(realm::ColKey, unsigned long*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<double, realm::Table const&>::avg(realm::ColKey, unsigned long*) in libRealmJS.a(results.o)
  "realm::ConstTableView::sum_int(realm::ColKey) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::TableView&>::sum(realm::ColKey) in libRealmJS.a(results.o)
  "realm::ConstTableView::sum_double(realm::ColKey) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<double, realm::TableView&>::sum(realm::ColKey) in libRealmJS.a(results.o)
  "realm::Table::sum_int(realm::ColKey) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::Table const&>::sum(realm::ColKey) in libRealmJS.a(results.o)
  "realm::Table::sum_float(realm::ColKey) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<float, realm::Table const&>::sum(realm::ColKey) in libRealmJS.a(results.o)
  "realm::ConstTableView::minimum_float(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<float, realm::TableView&>::min(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::Table::minimum_int(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::Table const&>::min(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::Table::minimum_timestamp(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<realm::Timestamp, realm::Table const&>::min(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::ConstTableView::maximum_int(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::TableView&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::ConstTableView::maximum_float(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<float, realm::TableView&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::ConstTableView::maximum_timestamp(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<realm::Timestamp, realm::TableView&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::Table::maximum_int(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<long long, realm::Table const&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::Table::maximum_float(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<float, realm::Table const&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::Table::maximum_timestamp(realm::ColKey, realm::ObjKey*) const", referenced from:
      realm::(anonymous namespace)::AggregateHelper<realm::Timestamp, realm::Table const&>::max(realm::ColKey, realm::ObjKey*) in libRealmJS.a(results.o)
  "realm::ColumnsDescriptor::ColumnsDescriptor(std::__1::vector<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> >, std::__1::allocator<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> > > >)", referenced from:
      realm::DistinctDescriptor::DistinctDescriptor(std::__1::vector<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> >, std::__1::allocator<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> > > >) in libRealmJS.a(results.o)
  "vtable for realm::DistinctDescriptor", referenced from:
      realm::DistinctDescriptor::DistinctDescriptor(realm::DistinctDescriptor const&) in libRealmJS.a(results.o)
      realm::DistinctDescriptor::DistinctDescriptor(realm::DistinctDescriptor&&) in libRealmJS.a(results.o)
      realm::DistinctDescriptor::DistinctDescriptor(std::__1::vector<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> >, std::__1::allocator<std::__1::vector<realm::ColKey, std::__1::allocator<realm::ColKey> > > >) in libRealmJS.a(results.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "realm::Cluster::~Cluster()", referenced from:
      realm::ClusterTree::ConstIterator::~ConstIterator() in libRealmJS.a(results.o)
      realm::ClusterTree::ConstIterator::~ConstIterator() in libRealmJS.a(sync_metadata.o)
  "realm::BPlusTreeBase::operator=(realm::BPlusTreeBase const&)", referenced from:
      realm::BPlusTree<realm::ObjKey>::operator=(realm::BPlusTree<realm::ObjKey> const&) in libRealmJS.a(results.o)
  "vtable for realm::LnkLst", referenced from:
      realm::LnkLst::LnkLst() in libRealmJS.a(results.o)
      realm::LnkLst::LnkLst(realm::LnkLst const&) in libRealmJS.a(results.o)
  NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "realm::ObjList::ObjList(realm::BPlusTree<realm::ObjKey>*)", referenced from:
      realm::ConstTableView::ConstTableView() in libRealmJS.a(results.o)
      realm::LnkLst::LnkLst() in libRealmJS.a(results.o)
      realm::ConstTableView::ConstTableView() in libRealmJS.a(results_notifier.o)
  "realm::ConstTableView::is_in_table_order() const", referenced from:
      realm::Results::is_in_table_order() const in libRealmJS.a(results.o)
  "typeinfo for realm::SortDescriptor", referenced from:
      realm::Results::apply_ordering(realm::DescriptorOrdering&&) in libRealmJS.a(results.o)
  "typeinfo for realm::LimitDescriptor", referenced from:
      realm::Results::apply_ordering(realm::DescriptorOrdering&&) in libRealmJS.a(results.o)
  "realm::DescriptorOrdering::append_limit(realm::LimitDescriptor)", referenced from:
      realm::Results::limit(unsigned long) const in libRealmJS.a(results.o)
      realm::Results::apply_ordering(realm::DescriptorOrdering&&) in libRealmJS.a(results.o)
  "realm::DescriptorOrdering::will_apply_limit() const", referenced from:
      realm::Results::filter(realm::Query&&) const in libRealmJS.a(results.o)
  "realm::DescriptorOrdering::will_apply_sort() const", referenced from:
      realm::Results::index_of(realm::Query&&) in libRealmJS.a(results.o)
      realm::Results::is_in_table_order() const in libRealmJS.a(results.o)
  "realm::Query::Query(realm::ConstTableRef, std::__1::unique_ptr<realm::ConstTableView, std::__1::default_delete<realm::ConstTableView> >)", referenced from:
      realm::Results::do_get_query() const in libRealmJS.a(results.o)

...

Steps to Reproduce

  1. yarn add realm -E
  2. cd ios && pod install
  3. Build and run on physical device

Code Sample

N/A

Version of Realm and Tooling

  • Realm JS SDK Version: 6.1.0
  • React Native: 0.63.2
  • Client OS & Version: iPhone XR - iOS - 13.5.1
  • Which debugger for React Native: None

Issue Analytics

  • State:closed
  • Created 3 years ago
  • Comments:9 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
dreson4commented, Sep 14, 2020

Not really, I have the latest 6.1.1 but still have this issue. Every time I install a new pod I can’t build unless I remove realm completely then install it from scratch. It’s a huge headache.

1reaction
knethcommented, Sep 8, 2020

@yash-atreya I believe it’s the same underlying issue as in #3189. We understand that we need to get a bug fix release out ASAP.

I am closing this issue as a duplicate of #3189.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Undefined symbols for architecture arm64 - ios - Stack Overflow
Undefined symbols for architecture arm64 · Simple Solution Go to Target ->Linking -> other linker Flag and add $(inherited) in other linker flag...
Read more >
Undefined symbols for architecture arm64 - Apple Developer
I am working on the ios project. I didn't have any problem at the moment. However, there is a problem with iOS 11.4...
Read more >
Undefined symbols for architecture arm64 #2600 - GitHub
Bug Report Throws an error of arm 64 when running app from Xcode 12.4 to iOS 14.6 Undefined symbols for architecture arm64: ...
Read more >
How To Fix It: Undefined Symbols for Architecture X86_64:
This error is happening due to the lack of included values inside the declared statements in your code. The browser is going to...
Read more >
Xcode Build fails - Undefined symbols for architecture arm64
Xcode Build fails - Undefined symbols for architecture arm64. Hey, I am really hoping someone can help me here, I have a unity...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found