xcode12.2 branchDeploy and run
error HE0046: Failed to install the app 'com.companyname.mios.watchkitapp' on the device 'watchOS 7.1 (18R5572e) - Apple Watch Series 6 - 44mm': ???mwatch.WatchOSApp??? Needs To Be Updated
=== Visual Studio Enterprise 2019 for Mac (Preview) ===
Version 8.8 Preview (8.8 build 2829)
Installation UUID: a8ba93d0-79b6-41af-a590-4edb9c2095b4
GTK+ 2.24.23 (Raleigh theme)
Xamarin.Mac 6.18.0.23 (d16-6 / 088c73638)
Package version: 612000093
=== Mono Framework MDK ===
Runtime:
Mono 6.12.0.93 (2020-02/620cf538206) (64-bit)
Package version: 612000093
=== Roslyn (Language Service) ===
3.8.0-4.20512.1+4d199dba9d5e3ca94944fd05697aa33e308a6e73
=== NuGet ===
Version: 5.8.0.6860
=== .NET Core SDK ===
SDK: /usr/local/share/dotnet/sdk/5.0.100-rc.2.20480.7/Sdks
SDK Versions:
5.0.100-rc.2.20480.7
5.0.100-rc.2.20459.1
5.0.100-rc.1.20426.3
5.0.100-rc.1.20414.5
5.0.100-preview.8.20359.11
5.0.100-preview.7.20317.11
5.0.100-preview.6.20265.2
5.0.100-preview.5.20263.11
5.0.100-preview.5.20256.10
5.0.100-preview.5.20227.4
5.0.100-preview.4.20214.36
5.0.100-preview.1.20155.7
3.1.403
3.1.402
3.1.200
3.1.100
2.1.811
2.1.809
2.1.806
MSBuild SDKs: /Applications/Visual Studio.app/Contents/Resources/lib/monodevelop/bin/MSBuild/Current/bin/Sdks
=== .NET Core Runtime ===
Runtime: /usr/local/share/dotnet/dotnet
Runtime Versions:
5.0.0-rc.2.20475.5
5.0.0-rc.2.20454.25
5.0.0-rc.1.20425.16
5.0.0-rc.1.20404.16
5.0.0-rc.1.20371.13
5.0.0-preview.8.20358.9
5.0.0-preview.7.20317.2
5.0.0-preview.6.20264.1
3.1.9
3.1.8
3.1.2
3.1.0
2.1.23
2.1.22
2.1.21
2.1.20
2.1.18
=== .NET Core 2.1 SDK ===
SDK: 2.1.811
=== Xamarin.Profiler ===
Version: 1.6.15.68
Location: /Applications/Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler
=== Updater ===
Version: 11
=== Xamarin.Android ===
Version: 11.1.0.17 (Visual Studio Enterprise)
Commit: xamarin-android/d16-8/c0e2b8e
Android SDK: /Users/poupou/Library/Developer/Xamarin/android-sdk-macosx
Supported Android versions:
4.4 (API level 19)
7.1 (API level 25)
8.1 (API level 27)
SDK Tools Version: 26.1.1
SDK Platform Tools Version: 29.0.5
SDK Build Tools Version: 29.0.2
Build Information:
Mono: be2226b
Java.Interop: xamarin/java.interop/d16-8@79d9533
ProGuard: Guardsquare/proguard/proguard6.2.2@ebe9000
SQLite: xamarin/sqlite/3.32.1@1a3276b
Xamarin.Android Tools: xamarin/xamarin-android-tools/d16-8@2fb1cbc
=== Microsoft OpenJDK for Mobile ===
Java SDK: /Users/poupou/Library/Developer/Xamarin/jdk/microsoft_dist_openjdk_1.8.0.25
1.8.0-25
Android Designer EPL code available here:
https://github.com/xamarin/AndroidDesigner.EPL
=== Android SDK Manager ===
Version: 16.8.0.32
Hash: 01a7774
Branch: remotes/origin/d16-8
Build date: 2020-10-13 22:32:30 UTC
=== Android Device Manager ===
Version: 16.8.0.45
Hash: fc0af5f
Branch: remotes/origin/d16-8
Build date: 2020-10-13 22:32:54 UTC
=== Apple Developer Tools ===
Xcode 12.2 (17529.2)
Build 12B5035g
=== Xamarin.Mac ===
Version: 6.99.2.78 (Visual Studio Enterprise)
Hash: 9d1988a3c
Branch: xcode12.2
Build date: 2020-10-21 17:30:59-0400
=== Xamarin.iOS ===
Version: 14.3.1.78 (Visual Studio Enterprise)
Hash: 9d1988a3c
Branch: xcode12.2
Build date: 2020-10-21 17:31:00-0400
=== Xamarin Designer ===
Version: 16.8.0.492
Hash: 0c02bee49
Branch: remotes/origin/dominique-Fix1030373
Build date: 2020-10-13 20:33:42 UTC
=== Build Information ===
Release ID: 808002829
Git revision: 4a0adb84a0d0ba130f17546665a70156a82aeedb
Build date: 2020-10-14 22:47:05-04
Build branch: release-8.8
Xamarin extensions: 4a0adb84a0d0ba130f17546665a70156a82aeedb
=== Operating System ===
Mac OS X 10.15.7
Darwin 19.6.0 Darwin Kernel Version 19.6.0
Mon Aug 31 22:12:52 PDT 2020
root:xnu-6153.141.2~1/RELEASE_X86_64 x86_64
Using Xcode 12.2 I created an universal xcframework for all platform and noticed the following
watchos-arm64_x86_64-simulator
Note that there's no i386 mentioned, but there is a x86_64
So it looks like x86_64 became a valid watchOS simulator architecture at some point, along with the i386 that we supported.
With Xcode 12.2 Apple _silently_ dropped i386 (while adding arm64 for Apple-Silicon based Mac simulation). This does match the "Needs to be updated" deploy error (which is the same that happened when Apple dropped 32bits on iOS).
Re-enabling watchOS should work if we add a x86_64 slice to our watchOS simulator runtime - along with allowing the arch inside our tooling (e.g. mtouch).
So it looks like
x86_64became a valid watchOS simulator architecture at some point, along with thei386that we supported.
This happened with Xcode 12.0, they mentioned it in the release notes.
This happened with Xcode 12.0, they mentioned it in the release notes.
Simulated watchOS 7 devices support 64-bit processes. To verify watchOS projects are 64-bit clean in Simulator,
make sure ARCHS is set to its default value. (54654060, 66352876)
Note
Projects must be 64-bit clean in Simulator on Macs with Apple silicon, which don鈥檛 support 32-bit code.
I either missed it or forgot it :)
We got ourselves a branch of mono/2020-02 with watchOS sim with both i386 and x86_64 slices https://github.com/mono/mono/commits/2020-02-simwatch64 we could use this to test if we wanted to continue to support watchOS 7.1 simulators on xcode12.2
(For the time being, for those who are already on Xcode 12.2 pre-releases: you can go to Xcode Preferences, Components, download the watchOS 6.2.1 Simulator, make a new Simulator that pairs, say, an iPhone 11 with an Apple Watch Series 5, and choose _that_ in Visual Studio. It doesn't seem possible to download a 7.0 Simulator, alas.)
Not quite fixed yet, the mono part is done now we need the Xamarin side, PR is coming!