Cannot build after adding Raygun.4Net version 5.2.0 to Xamarin.iOS project

jmro20

Posted on
Dec 03 2015

Hi,

I am getting the following compile error after adding the Raygun.Net nuget to a Xamarin.iOS proyect. Severity Code Description Project File Line Error Native linking error: file is universal (4 slices) but does not contain a(n) armv7s slice: XXXX/9f49cf22beae32a2691f46b55f66ae98/obj/iPhone/Debug/mtouch-cache/libRaygun4iOS.a file 'XXXX/9f49cf22beae32a2691f46b55f66ae98/obj/iPhone/Debug/mtouch-cache/libRaygun4iOS.a' for architecture armv7s XXXX.iOS C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets 664

How can I build the project? I really need help on this!


Jason Fauchelle

Raygun

Posted on
Dec 03 2015

Hello,

To solve this, in Xamarin Studio, double click you project in the solution explorer to bring up the project options. In the left hand menu, under the "Build" category, select "iOS Build". The options that appear will include "Supported architectures" with a drop down next to it. Open the drop down, and select the option that matches your current option - but without "armv7s".

Why this has happened (in case you want more details) - Embedded within Raygun4Net is our native Raygun4iOS provider to support reporting exceptions that originate from native Objective-C code. Recently, XCode has somewhat stopped supporting the armv7s architecture - or in other words, this architecture has been removed from the list of standard architectures that we use to build the XCode project. Adding armv7s explicitly for some reason causes i386 and x86_64 architectures to be missing. These are simulator architectures which we certainly don't want to be missing. Explicitly adding all architectures to the list for XCode to build fails to compile - and so, we have just left armv7s out. Raygun4Net 5.2 includes the latest build of Raygun4iOS, hence why it has been affected by this change.

From what I've found, there is no point for XCode to continue supporting armv7s, as compared to armv7, it mainly provides some small performance improvements. Since each architecture included within a framework takes up additional memory, the small perf improvement of armv7s is not worth it. As far as I can tell, removing this architecture does not limit the devices that the app can run on.

I hope that helps. Let me know if you have further questions.

-Jason Fauchelle


jmro20

Posted on
Dec 03 2015

Hi Jason,

I'll do that. I downgraded to version 5.1 to be able to build and test the project but will do that so I can keep getting updated versions of Raygun nuget.

Thanks!


Reply