sentry-cocoa icon indicating copy to clipboard operation
sentry-cocoa copied to clipboard

First install in visionOS project fails build with error: Unexpected duplicate tasks

Open longda opened this issue 1 year ago • 1 comments

Platform

visionOS

Environment

Production

Installed

Swift Package Manager

Version

8.33.0

Xcode Version

15.4

Did it work on previous versions?

Unknown, first install

Steps to Reproduce

  1. Install sentry-cocoa package via SPM as outlined here: https://docs.sentry.io/platforms/apple/guides/visionos/#install
  2. After adding sentry-cocoa package, can no longer build with error: Unexpected duplicate tasks

Expected Result

After install of sentry-cocoa package project should build cleanly.

Actual Result

Three errors appear:

  1. Unexpected duplicate tasks
  2. Multiple commands produce ... (appears related to copy commands)
  3. Multiple commands produce ... (appears related to copy commands)

Screenshot (product + project names redacted):

Image

Did not see any related solutions at: https://docs.sentry.io/platforms/apple/guides/visionos/troubleshooting/

Are you willing to submit a PR?

No response

longda avatar Aug 12 '24 15:08 longda

I get a different error when adding sentry-cocoa via SPM to an empty visionOS project. We have to investigate this and fix it. Thanks for reporting this, @longda. Furthermore, I'm surprised that our CI isn't failing. We should add a check to avoid such issues in the future.

ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found
Undefined symbols for architecture arm64:
  "std::__1::__shared_weak_count::__get_deleter(std::type_info const&) const", referenced from:
      vtable for std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>> in Sentry[arm64][33](SentrySamplingProfiler.o)
      vtable for std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>> in Sentry[arm64][163](SentryProfiler.o)

...
Complete Xcode Build Output

ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found
Undefined symbols for architecture arm64:
  "std::__1::__shared_weak_count::__get_deleter(std::type_info const&) const", referenced from:
      vtable for std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>> in Sentry[arm64][33](SentrySamplingProfiler.o)
      vtable for std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>> in Sentry[arm64][163](SentryProfiler.o)
  "std::exception::what() const", referenced from:
      vtable for std::__1::bad_function_call in Sentry[arm64][146](SentryBacktrace.o)
  "std::logic_error::logic_error(char const*)", referenced from:
      std::length_error::length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::length_error::~length_error()", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::exception_ptr::~exception_ptr()", referenced from:
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "std::bad_array_new_length::bad_array_new_length()", referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::bad_array_new_length::~bad_array_new_length()", referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::resize(unsigned long, char)", referenced from:
      sentry::profiling::ThreadMetadataCache::metadataForThread(sentry::profiling::ThreadHandle const&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:
      sentry::profiling::ThreadMetadataCache::metadataForThread(sentry::profiling::ThreadHandle const&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      sentry::profiling::ThreadMetadataCache::metadataForThread(sentry::profiling::ThreadHandle const&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      sentry::profiling::ThreadMetadataCache::metadataForThread(sentry::profiling::ThreadHandle const&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      void std::__1::vector<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const, std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>>::__construct_one_at_end[abi:v160006]<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>(sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const&&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      void std::__1::vector<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const, std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>>::__push_back_slow_path<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>(sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const&&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*> std::__1::__uninitialized_allocator_move_if_noexcept[abi:v160006]<std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>>(std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>&, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>, std::__1::reverse_iterator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const*>) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      std::__1::__function::__func<-[SentryProfiler start]::$_0, std::__1::allocator<-[SentryProfiler start]::$_0>, void (sentry::profiling::Backtrace const&)>::operator()(sentry::profiling::Backtrace const&) in Sentry[arm64][163](SentryProfiler.o)
      ...
  "std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::operator=(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)", referenced from:
      sentry::profiling::ThreadMetadataCache::metadataForThread(sentry::profiling::ThreadHandle const&) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "std::__1::__shared_weak_count::__release_weak()", referenced from:
      sentry::profiling::SamplingProfiler::SamplingProfiler(std::__1::function<void (sentry::profiling::Backtrace const&)>, unsigned int) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::~SamplingProfiler() in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::shared_ptr<sentry::profiling::ThreadMetadataCache>::~shared_ptr[abi:v160006]() in Sentry[arm64][33](SentrySamplingProfiler.o)
      -[SentryProfiler start] in Sentry[arm64][163](SentryProfiler.o)
      std::__1::shared_ptr<sentry::profiling::SamplingProfiler>::operator=[abi:v160006](std::__1::shared_ptr<sentry::profiling::SamplingProfiler>&&) in Sentry[arm64][163](SentryProfiler.o)
      void std::__1::shared_ptr<sentry::profiling::SamplingProfiler>::__enable_weak_this[abi:v160006]<sentry::profiling::SamplingProfiler, sentry::profiling::SamplingProfiler, void>(std::__1::enable_shared_from_this<sentry::profiling::SamplingProfiler> const*, sentry::profiling::SamplingProfiler*) in Sentry[arm64][163](SentryProfiler.o)
      void std::__1::shared_ptr<sentry::profiling::SamplingProfiler>::__enable_weak_this[abi:v160006]<sentry::profiling::SamplingProfiler, sentry::profiling::SamplingProfiler, void>(std::__1::enable_shared_from_this<sentry::profiling::SamplingProfiler> const*, sentry::profiling::SamplingProfiler*) in Sentry[arm64][163](SentryProfiler.o)
      ...
  "std::__1::__shared_weak_count::~__shared_weak_count()", referenced from:
      std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>>::~__shared_ptr_emplace() in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>>::~__shared_ptr_emplace() in Sentry[arm64][33](SentrySamplingProfiler.o)
      -[SentryProfiler start] in Sentry[arm64][163](SentryProfiler.o)
      std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>>::~__shared_ptr_emplace() in Sentry[arm64][163](SentryProfiler.o)
      std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>>::~__shared_ptr_emplace() in Sentry[arm64][163](SentryProfiler.o)
  "std::__1::mutex::lock()", referenced from:
      sentry::profiling::SamplingProfiler::stopSampling() in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::isSampling() in Sentry[arm64][33](SentrySamplingProfiler.o)
      +[SentryTraceProfiler startWithTracer:] in Sentry[arm64][97](SentryTraceProfiler.o)
      +[SentryTraceProfiler isCurrentlyProfiling] in Sentry[arm64][97](SentryTraceProfiler.o)
      +[SentryTraceProfiler recordMetrics] in Sentry[arm64][97](SentryTraceProfiler.o)
      ___43+[SentryTraceProfiler scheduleTimeoutTimer]_block_invoke in Sentry[arm64][97](SentryTraceProfiler.o)
      ...
  "std::__1::mutex::unlock()", referenced from:
      sentry::profiling::SamplingProfiler::stopSampling() in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::stopSampling() in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::isSampling() in Sentry[arm64][33](SentrySamplingProfiler.o)
      +[SentryTraceProfiler startWithTracer:] in Sentry[arm64][97](SentryTraceProfiler.o)
      +[SentryTraceProfiler startWithTracer:] in Sentry[arm64][97](SentryTraceProfiler.o)
      +[SentryTraceProfiler startWithTracer:] in Sentry[arm64][97](SentryTraceProfiler.o)
      ...
  "std::__1::mutex::~mutex()", referenced from:
      sentry::profiling::SamplingProfiler::SamplingProfiler(std::__1::function<void (sentry::profiling::Backtrace const&)>, unsigned int) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::~SamplingProfiler() in Sentry[arm64][33](SentrySamplingProfiler.o)
      __GLOBAL__sub_I_SentryTraceProfiler.mm in Sentry[arm64][97](SentryTraceProfiler.o)
      __GLOBAL__sub_I_SentryContinuousProfiler.mm in Sentry[arm64][112](SentryContinuousProfiler.o)
      __GLOBAL__sub_I_SentryProfiledTracerConcurrency.mm in Sentry[arm64][161](SentryProfiledTracerConcurrency.o)
      -[SentryProfilerState .cxx_destruct] in Sentry[arm64][214](SentryProfilerState.o)
  "std::exception::~exception()", referenced from:
      std::__1::bad_function_call::~bad_function_call() in Sentry[arm64][146](SentryBacktrace.o)
      std::__1::bad_function_call::~bad_function_call() in Sentry[arm64][146](SentryBacktrace.o)
  "std::set_terminate(void (*)())", referenced from:
      setEnabled(bool) in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      setEnabled(bool) in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "std::current_exception()", referenced from:
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "std::terminate()", referenced from:
      ___clang_call_terminate in Sentry[arm64][33](SentrySamplingProfiler.o)
  "typeinfo for std::__1::__shared_weak_count", referenced from:
      typeinfo for std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>> in Sentry[arm64][33](SentrySamplingProfiler.o)
      typeinfo for std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>> in Sentry[arm64][163](SentryProfiler.o)
  "typeinfo for char*", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for std::length_error", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "typeinfo for std::bad_array_new_length", referenced from:
      std::__throw_bad_array_new_length[abi:v160006]() in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "typeinfo for std::exception", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      typeinfo for std::__1::bad_function_call in Sentry[arm64][146](SentryBacktrace.o)
  "typeinfo for char", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for double", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for long double", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for float", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for unsigned char", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for int", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for unsigned int", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for long", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for unsigned long", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for short", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for unsigned short", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for long long", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "typeinfo for unsigned long long", referenced from:
      GCC_except_table7 in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "vtable for __cxxabiv1::__class_type_info", referenced from:
      typeinfo for std::__1::__function::__base<void (sentry::profiling::Backtrace const&)> in Sentry[arm64][163](SentryProfiler.o)
      typeinfo for -[SentryProfiler start]::$_0 in Sentry[arm64][163](SentryProfiler.o)
   NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for __cxxabiv1::__si_class_type_info", referenced from:
      typeinfo for std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>> in Sentry[arm64][33](SentrySamplingProfiler.o)
      typeinfo for std::__1::bad_function_call in Sentry[arm64][146](SentryBacktrace.o)
      typeinfo for std::__1::__shared_ptr_emplace<sentry::profiling::SamplingProfiler, std::__1::allocator<sentry::profiling::SamplingProfiler>> in Sentry[arm64][163](SentryProfiler.o)
      typeinfo for std::__1::__function::__func<-[SentryProfiler start]::$_0, std::__1::allocator<-[SentryProfiler start]::$_0>, void (sentry::profiling::Backtrace const&)> in Sentry[arm64][163](SentryProfiler.o)
   NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "vtable for std::length_error", referenced from:
      std::length_error::length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
   NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
  "operator delete(void*)", referenced from:
      -[SentryTransactionContext getThreadInfo] in Sentry[arm64][30](SentryTransactionContext.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::(anonymous namespace)::deleteParams(void*) in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>>::~__shared_ptr_emplace() in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::__shared_ptr_emplace<sentry::profiling::ThreadMetadataCache, std::__1::allocator<sentry::profiling::ThreadMetadataCache>>::__on_zero_shared_weak() in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::vector<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const, std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>>::__destroy_vector::operator()[abi:v160006]() in Sentry[arm64][33](SentrySamplingProfiler.o)
      ...
  "operator new(unsigned long)", referenced from:
      sentry::profiling::SamplingProfiler::SamplingProfiler(std::__1::function<void (sentry::profiling::Backtrace const&)>, unsigned int) in Sentry[arm64][33](SentrySamplingProfiler.o)
      sentry::profiling::SamplingProfiler::startSampling(std::__1::function<void ()>) in Sentry[arm64][33](SentrySamplingProfiler.o)
      std::__1::__allocation_result<std::__1::allocator_traits<std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>>::pointer> std::__1::__allocate_at_least[abi:v160006]<std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>>(std::__1::allocator<sentry::profiling::ThreadMetadataCache::ThreadHandleMetadataPair const>&, unsigned long) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      std::__1::__allocation_result<std::__1::allocator_traits<std::__1::allocator<unsigned long>>::pointer> std::__1::__allocate_at_least[abi:v160006]<std::__1::allocator<unsigned long>>(std::__1::allocator<unsigned long>&, unsigned long) in Sentry[arm64][146](SentryBacktrace.o)
      -[SentryProfiler start] in Sentry[arm64][163](SentryProfiler.o)
      std::__1::__function::__func<-[SentryProfiler start]::$_0, std::__1::allocator<-[SentryProfiler start]::$_0>, void (sentry::profiling::Backtrace const&)>::__clone() const in Sentry[arm64][163](SentryProfiler.o)
      sentry::profiling::ThreadHandle::current() in Sentry[arm64][188](SentryThreadHandle.o)
      ...
  "___cxa_allocate_exception", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
      std::__throw_bad_array_new_length[abi:v160006]() in Sentry[arm64][47](SentryThreadMetadataCache.o)
      std::__1::__throw_bad_function_call[abi:v160006]() in Sentry[arm64][146](SentryBacktrace.o)
  "___cxa_begin_catch", referenced from:
      ___clang_call_terminate in Sentry[arm64][33](SentrySamplingProfiler.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      ...
  "___cxa_current_exception_type", referenced from:
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "___cxa_end_catch", referenced from:
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "___cxa_free_exception", referenced from:
      std::__1::__throw_length_error[abi:v160006](char const*) in Sentry[arm64][47](SentryThreadMetadataCache.o)
  "___cxa_rethrow", referenced from:
      CPPExceptionTerminate() in Sentry[arm64][94](SentryCrashMonitor_CPPException.o)
  "___gxx_personality_v0", referenced from:
      /Users/philipp.hofmann/Library/Developer/Xcode/DerivedData/VisionOSSPM-chhkchblzgncmqbvmhzilukspizr/Build/Products/Debug-xrsimulator/Sentry.framework/Sentry[arm64][163](SentryProfiler.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

philipphofmann avatar Aug 13 '24 11:08 philipphofmann

Observed the same error while building for iOS.

Turns out you cannot use Sentry and Sentry-Dynamic at the same time. Sentry and Sentry-SwiftUI works fine. Document should be updated of the SPM changes.

HaibinWangAe avatar Sep 04 '24 22:09 HaibinWangAe

Turns out you cannot use Sentry and Sentry-Dynamic at the same time

You're right, those are the same libraries, but different linking types (static and dynamic).

We will revisit the docs.

Thanks for pointing this out.

brustolin avatar Sep 05 '24 07:09 brustolin

@longda can you confirm that this is also your problem?

brustolin avatar Sep 05 '24 08:09 brustolin

@brustolin Yes, that was the issue! Only Sentry-Dynamic worked for me on VisionOS but it does work! Thank you! 🙏

longda avatar Sep 05 '24 17:09 longda

@longda Thanks for the reply.

brustolin avatar Sep 06 '24 06:09 brustolin

I fixed Multiple commands produce error by removing sentry line from Podfile and running pod install again.

kopyl avatar Aug 05 '25 15:08 kopyl