Search code examples
xamarinxamarin.iosxamarin.ios-binding

Xamarin iOS binding builds with no errors, but crashes at start up with no output


I have created a unified API out of two native libraries (ios and Android) called AccessEnabler from Adobe. Now the Android binding works, no problem. The iOS one however has issues. The binding project builds and complies with no issues, but when i add it to my sample (or any sample), the test app builds and compiles. But when i start the application, it just crashes at start-up with no outpout. I have to go digging into my console logs on my Mac to find this:

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries
DYLD_FALLBACK_LIBRARY_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib
DYLD_ROOT_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot
DYLD_FALLBACK_FRAMEWORK_PATH=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/Frameworks

Dyld Error Message:
  Library not loaded: @rpath/AccessEnabler.framework/AccessEnabler
  Referenced from: /Users/USER/Library/Developer/CoreSimulator/Devices/E4B4E1EE-EA10-4E82-AD1E-2E8F3FD5BB79/data/Containers/Bundle/Application/47241A8D-5E85-4E8A-990C-387A1FF4E493/AccessEnablerSample.iOS.app/AccessEnablerSample.iOS
  Reason: image not found

Binary Images:
       0x10cf84000 -        0x10d4e7ff3 +com.golfchannel.AccessEnablerSample (1.0 - 1.0) <EB64A6F8-4E10-352A-9E9E-C75EE2D5A7EF> /Users/USER/Library/Developer/CoreSimulator/Devices/E4B4E1EE-EA10-4E82-AD1E-2E8F3FD5BB79/data/Containers/Bundle/Application/47241A8D-5E85-4E8A-990C-387A1FF4E493/AccessEnablerSample.iOS.app/AccessEnablerSample.iOS
       0x10d8c0000 -        0x10d8f3757 +dyld_sim (551.1) <A356F82B-146B-353D-9FC1-250800B6B67C> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/dyld_sim
       0x1153d2000 -        0x11541cacf  dyld (551.4) <8A72DE9C-A136-3506-AA02-4BA2B82DCAF3> /usr/lib/dyld

Ive gone over all the Xamarin docs on the binding process and countless of threads here and on Xamarin Forums, but nothing. Most errors point to something involving the iOS system not embedding the framework.

To add, ive tried both the (.framework and .a) ways as well as adding it manually or in the "Native References" section. To make things worse, there is an older version of the SDK that was binded by another co-worker a while back that works. But i need to use the most recent as they have added and restructured some things internally.

Any help would be greatly appreciated.


Solution

  • I have finally solved this after some time. The universal framework wasnt done properly with Lipo. The binding project and main projects built no problem, but at run time crashed. Solution was to either properly get a universal framework and simply bind each slice (device or simulator) individually.