Bug 47161 - Can't build x84_64 Simulator build only with native library
Summary: Can't build x84_64 Simulator build only with native library
Alias: None
Product: iOS
Classification: Xamarin
Component: General ()
Version: XI 10.2 (iOS 10.1)
Hardware: PC Mac OS
: --- normal
Target Milestone: Future Cycle (TBD)
Assignee: Bugzilla
Depends on:
Reported: 2016-11-17 07:23 UTC by Martin Kuckert
Modified: 2016-11-18 11:11 UTC (History)
4 users (show)

Is this bug a regression?: ---
Last known good build:

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.

Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:

Description Martin Kuckert 2016-11-17 07:23:22 UTC
We're using a custom binding of jumartins CalendarLib (https://github.com/jumartin/Calendar). The library is build for the archs armv7, arm64, i386 and x86_64. I've checked with lipo that this is the case. The binding references the CalendarLib.framework directly - no oldschool LinkWith assembly attribute.

The app crashes when trying to use components (ViewController) of this library, if we set our app project to build x86_64 for the Simulator only.
We see the following output:

    2016-11-17 08:15:05.973 XXXTouch[92538:406746] *** NSForwarding: warning: object 0x608000051f40 of class 'XXX_Touch_ViewControllers_Calendars_MonthPlannerViewController' does not implement methodSignatureForSelector: -- trouble ahead
    2016-11-17 08:15:05.973 XXXTouch[92538:406746] *** NSForwarding: warning: object 0x608000051f40 of class 'XXX_Touch_ViewControllers_Calendars_MonthPlannerViewController' does not implement doesNotRecognizeSelector: -- abort

where XXX_Touch_ViewControllers_Calendars_MonthPlannerViewController extends the native MGCMonthPlannerViewController.

If we build i386 for the Simulator, everything works as expected.

I've only found this Xamarin documentation with a similar error log: https://developer.xamarin.com/guides/ios/advanced_topics/native_interop/ But this article doesn't mention anything about x84_64.

The arm64 build is working properly on the device - no crashes.

Is there currently no supported for 64-Bit only Simulator builds? Do I have to set anything specific for the CalendarLib-binding?
Comment 1 Alex Soto [MSFT] 2016-11-18 05:48:25 UTC

Is there any chance you could share with us your binding project and a sample project demonstrating the issue?

Also please include your version information.

The easiest way to get exact version information is to use the 
"Xamarin Studio" menu, "About Xamarin Studio" item, "Show Details" 
button and copy/paste the version informations (you can use the 
"Copy Information" button).

Comment 2 Martin Kuckert 2016-11-18 11:11:20 UTC
I'm very sorry, but this was my fault. Our build script was not totally correct so the 64 bit binary was not correctly placed inside the binding project. I stumbled upon this error while creating a sample project...