Hi,
last week I built a Xamarin.Mac app, but when I try to publish it to the App store i get thi errors:
ERROR ITMS-90240: "Unsupported Architectures. Your executable contained the following disallowed architectures: '[i386 (in com.mpsmonitor.eXplorer.pkg/Payload/eXplorer.app/Contents/MonoBundle/libMonoPosixHelper.dylib)]'. New apps submitted to the Mac App Store must support 64-bit starting January 2018, and Mac app updates and existing apps must support 64-bit starting June 2018."
The solution is compiled in Release | X86 - Architecture x86_64
Here my machine information:
=== Visual Studio Community 2017 for Mac ===
Version 7.7.1 (build 15)
Installation UUID: ed376cf4-6a03-4af1-9652-b3ebb691cca6
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac 4.4.1.178 (master / eeaeb7e6)
Package version: 516000221
=== Mono Framework MDK ===
Runtime:
Mono 5.16.0.221 (2018-06/b63e5378e38) (64-bit)
Package version: 516000221
=== NuGet ===
Version: 4.7.0.5148
=== .NET Core ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
2.1.5
2.1.2
2.1.0
2.0.5
1.1.1
1.0.4
SDK: /usr/local/share/dotnet/sdk/2.1.302/Sdks
SDK Versions:
2.1.302
2.1.300
2.1.4
1.0.3
MSBuild SDKs: /Library/Frameworks/Mono.framework/Versions/5.16.0/lib/mono/msbuild/15.0/bin/Sdks
=== Xamarin.Profiler ===
Version: 1.6.4
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Apple Developer Tools ===
Xcode 10.1 (14460.46)
Build 10B61
=== Xamarin.Mac ===
Version: 5.2.1.12 (Visual Studio Community)
Hash: 65ec520f
Branch:
Build date: 2018-12-05 12:06:09-0500
=== Xamarin.iOS ===
Version: 12.2.1.12 (Visual Studio Community)
Hash: 65ec520f
Branch: d15-9
Build date: 2018-12-05 12:06:09-0500
=== Xamarin.Android ===
Version: 9.1.4.2 (Visual Studio Community)
Android SDK: /Users/martino/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
6.0 (API level 23)
SDK Tools Version: 25.2.5
SDK Platform Tools Version: 25.0.5
SDK Build Tools Version: 25.0.3
Java SDK: /Users/martino/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.9
openjdk version "1.8.0-9"
OpenJDK Runtime Environment (build 1.8.0-9-microsoft-b00)
OpenJDK 64-Bit Server VM (build 25.71-b00, mixed mode)
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Android Device Manager ===
Version: 7.7.1.0
Hash: 06ceaea1
=== Xamarin Inspector ===
Version: 1.4.3
Hash: db27525
Branch: 1.4-release
Build date: Mon, 09 Jul 2018 21:20:18 GMT
Client compatibility: 1
=== Build Information ===
Release ID: 707010015
Git revision: a7ca4daaf7add8fe05ed137fdd51bd9eb77758a7
Build date: 2018-12-05 20:15:35+00
Build branch: release-7.7
Xamarin extensions: 40f5fc1b44727b10b1e7bb1ada3aae33516569ce
=== Operating System ===
Mac OS X 10.13.6
Darwin 17.7.0 Darwin Kernel Version 17.7.0
Fri Nov 2 20:43:16 PDT 2018
root:xnu-4570.71.17~1/RELEASE_X86_64 x86_64
=== Enabled user installed extensions ===
Team Foundation Version Control for TFS and Azure DevOps 0.4.4.1
Answers
Can you post your full build log? libMonoPosixHelper should be stripped as part of the build.
This was originally fixed awhile ago (https://github.com/xamarin/xamarin-macios/pull/3633) and this is the first report we've seen recently.
Interestingly I'm getting this now for this week's submission of my app, last week's submission was absolutely fine and I haven't changed anything with the project or build settings since then.
Error is:
ERROR ITMS-90240: "Unsupported Architectures. Your executable contained the following disallowed architectures: '[i386 (in com.XXXX.XXXXXX.pkg/Payload/XXXXXX.app/Contents/MonoBundle/libmono-native.dylib)]'. New apps submitted to the Mac App Store must support 64-bit starting January 2018, and Mac app updates and existing apps must support 64-bit starting June 2018."
It's for libmono-native.dylib and not libMonoPosixHelper.dylib though.
Really strange considering I haven't changed anything with the build settings.
I'm up to date with stable:
These build settings have been working fine up to now...
I've attached the full build log. Any help would be really appreciated.
Adding the following as a post build custom command fixed it:
lipo XXX.app/Contents/MonoBundle/libmono-native.dylib -remove i386 -output XXX.app/Contents/MonoBundle/libmono-native.dylib
5.14 should have that stripped to 32-bit for sure. Also that file is named libmono-native-unified.dylib in that release?
Consider filing an issue with full build logs and preferably example project.
I had the same error with libe_sqlite3.dylib and this solution helped me.
Thanks a lot!