uno icon indicating copy to clipboard operation
uno copied to clipboard

iPhone 11 Pro Crash - arm64e

Open AndrewEQ opened this issue 6 years ago • 4 comments

I had a test user report a crash very early in my app experience (they didn't get to main functionality yet), I noticed in the crash report that they were using a iPhone 11 Pro and that its architecture is arm64e, so I'm listing this here as I don't have an iPhone 11 Pro to test but I did find this article which may be the cause: https://developer.apple.com/documentation/security/preparing_your_app_to_work_with_pointer_authentication?language=objc

AndrewEQ avatar Nov 06 '19 12:11 AndrewEQ

So I tried adding the "arm64e" to the architectures build setting and when I tried to archive, the following error(s) came up:

Undefined symbols for architecture arm64e:
  "uImage::Jpeg::CreateReader(uBase::Stream*)", referenced from:
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::Bundle", referenced from:
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle1(uString*) in Uno.Content.Fonts.g.o
  "uBase::BundleAccessor::operator->()", referenced from:
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle1(uString*) in Uno.Content.Fonts.g.o
  "uBase::BufferStream::~BufferStream()", referenced from:
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle(uArray*, int, int) in Uno.Content.Fonts.g.o
  "uImage::Bitmap::Bitmap(int, int, uImage::Format, uBase::DataAccessor*, int, int)", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
  "uBase::Exception::GetFunction() const", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
  "_ConvertUTF16toUTF8", referenced from:
      uAllocCStr(uString const*, unsigned long*) in ObjectModel.o
  "uBase::Exception::GetLine() const", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
  "operator+(char const*, uBase::String const&)", referenced from:
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
  "uBase::Exception::~Exception()", referenced from:
      l__ZN5uBase9ExceptionD1Ev$auth_ptr$ia$0 in Support.o
  "uImage::Bitmap::GetPtr()", referenced from:
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
      g::Uno::Content::Fonts::CppFontFace__RenderGlyph_fn(g::Uno::Content::Fonts::CppFontFace*, float*, char16_t*, g::Uno::Content::Fonts::RenderedGlyph*) in Uno.Content.Fonts.g.o
  "uBase::Object::Release()", referenced from:
      uBase::Auto<uImage::ImageReader>::~Auto() in Support.o
      uBase::Auto<uImage::Bitmap>::~Auto() in Support.o
      uBase::Auto<uBase::BufferPtr>::~Auto() in _root.JpegSaver.o
      g::Uno::Content::Fonts::CppFontFace__Dispose_fn(g::Uno::Content::Fonts::CppFontFace*) in Uno.Content.Fonts.g.o
      uBase::Auto<uBase::Stream>::~Auto() in Uno.Content.Fonts.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      ...
  "uImage::FontFace::Load(uBase::Stream*)", referenced from:
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle(uArray*, int, int) in Uno.Content.Fonts.g.o
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle1(uString*) in Uno.Content.Fonts.g.o
  "uImage::FormatInfo::ToString(uImage::Format)", referenced from:
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
  "uBase::BufferStream::BufferStream(uBase::DataAccessor*, bool, bool)", referenced from:
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle(uArray*, int, int) in Uno.Content.Fonts.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::Exception::GetMessage() const", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "typeinfo for uBase::Exception", referenced from:
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
      GCC_except_table3 in _root.JpegSaver.o
      GCC_except_table16 in Experimental.TextureLoader.g.o
      GCC_except_table17 in Experimental.TextureLoader.g.o
  "uImage::Jpeg::Save(uBase::String const&, uImage::Bitmap*, int)", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
  "uImage::Texture::Create(uImage::Image*)", referenced from:
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::String::String(char const*, int)", referenced from:
      uStringToXliString(uString*) in Support.o
  "uBase::Exception::Exception(uBase::String const&)", referenced from:
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
  "_OBJC_CLASS_$_SRWebSocket", referenced from:
      objc-class-ref in WebSocketClientObjc.o
  "Xli::MessageBox::Show(Xli::Window*, uBase::String const&, uBase::String const&, Xli::DialogButtons, int)", referenced from:
      uFatal(char const*, char const*) in Support.o
  "_ConvertUTF8toUTF16", referenced from:
      uString::Utf8(char const*, unsigned long) in ObjectModel.o
  "uImage::Bitmap::DownSample2x2()", referenced from:
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::String::~String()", referenced from:
      uFatal(char const*, char const*) in Support.o
      uCreateGLTexture(uImage::Texture*, bool, uGLTextureInfo*) in Support.o
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
      g::Uno::Content::Fonts::CppFontFace__get_FamilyName_fn(g::Uno::Content::Fonts::CppFontFace*, uString**) in Uno.Content.Fonts.g.o
      g::Uno::Content::Fonts::CppFontFace__get_StyleName_fn(g::Uno::Content::Fonts::CppFontFace*, uString**) in Uno.Content.Fonts.g.o
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle1(uString*) in Uno.Content.Fonts.g.o
  "uImage::Png::CreateReader(uBase::Stream*)", referenced from:
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::BufferPtr::BufferPtr(void*, int, bool)", referenced from:
      g::JpegSaver::ByteArrayRgbaToJpeg(uArray*, int, int, uString*) in _root.JpegSaver.o
      g::Uno::Content::Fonts::CppFontFace::LoadFontFaceHandle(uArray*, int, int) in Uno.Content.Fonts.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::JpegByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
      g::Experimental::TextureLoader::TextureLoaderImpl::PngByteArrayToTexture2D(uArray*) in Experimental.TextureLoader.g.o
  "uBase::GetTicks()", referenced from:
      uPthreadWaitOneMutex(_opaque_pthread_mutex_t*, int) in posix_mutex.o
  "uBase::String::Ptr() const", referenced from:
      uStringFromXliString(uBase::String const&) in Support.o
  "uBase::String::String(char const*)", referenced from:
      uFatal(char const*, char const*) in Support.o
  "uBase::String::Length() const", referenced from:
      uStringFromXliString(uBase::String const&) in Support.o
ld: symbol(s) not found for architecture arm64e
clang: error: linker command failed with exit code 1 (use -v to see invocation)

AndrewEQ avatar Nov 06 '19 13:11 AndrewEQ

Dependencies for arm64e has been added, so those linker errors should now be fixed. Hopefully we're one step closer to solving that crash... :)

mortend avatar Jan 01 '20 16:01 mortend

Shweet man, hopefully 😄

AndrewEQ avatar Jan 14 '20 09:01 AndrewEQ

Looks like Firebase is even waiting on Apple's official support: https://firebase.google.com/support/release-notes/ios#version_6210_-_march_24_2020

AndrewEQ avatar Oct 16 '20 09:10 AndrewEQ