xamarin / xamarin-macios

.NET for iOS, Mac Catalyst, macOS, and tvOS provide open-source bindings of the Apple SDKs for use with .NET managed languages such as C#
Other
2.42k stars 507 forks source link

App startup crashes on iOS 17.0 / NewsstandKit issues #18964

Closed dalexsoto closed 9 months ago

dalexsoto commented 10 months ago

If you have a Xamarin.Forms / MAUI app that targets iOS and has been built with Xcode 14.3.1 there is a high chance that this app will crash at startup on iOS 17. This is because Apple removed NewsstandKit from iOS 17.0 and there is a chance that your App is referencing this Framework depending on your linker settings.

In order to avoid this problem you will need to recompile your application:

.NET / MAUI

Xamarin.iOS / Xamarin.Forms

Detect if an app is affected

It's possible to detect whether an app is affected by using otool from the command line to check if the app is linking (not weakly) with the NewsstandKit framework.

This app is affected, because cmd=LC_LOAD_DYLIB:

$ otool -l path/to/Debug/testapp.app/testapp | grep NewsstandKit -C 3
Load command 19
          cmd LC_LOAD_DYLIB
      cmdsize 88
         name /System/Library/Frameworks/NewsstandKit.framework/NewsstandKit (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 1.0.0
compatibility version 1.0.0

This app is not affected, because cmd=LC_LOAD_WEAK_DYLIB means it's linking weakly with NewsstandKit:

$ otool -l path/to/Debug/testapp.app/testapp | grep NewsstandKit -C 3
Load command 19
          cmd LC_LOAD_WEAK_DYLIB
      cmdsize 88
         name /System/Library/Frameworks/NewsstandKit.framework/NewsstandKit (offset 24)
   time stamp 2 Thu Jan  1 01:00:02 1970
      current version 1.0.0
compatibility version 1.0.0

This app is also not affected, because it doesn't link with NewsstandKit at all:

$ otool -l path/to/Debug/testapp.app/testapp | grep NewsstandKit -C 3
[no output]

Alternatively install an iOS 17 beta on a device and try to run the app. If it launches successfully, it's not affected.

RobSchoenaker commented 10 months ago

The Visual Studio versions is correct? This version is not available for Mac OS. Latest version for Max OS is 17.6.3

mlancione commented 10 months ago

Does this only affect Xamarin.Forms and MAUI apps or also Xamarin.iOS apps?

rolfbjarne commented 10 months ago

The Visual Studio versions is correct? This version is not available for Mac OS. Latest version for Max OS is 17.6.3

For macOS you can just install the package "xamarin.ios-16.4.0.18.pkg" (link in the description)

Does this only affect Xamarin.Forms and MAUI apps or also Xamarin.iOS apps?

It may also affect Xamarin.iOS apps.

RobSchoenaker commented 10 months ago

FWIW: VS on Mac will ask for upgrade after manually installing the 16.4.018 package. Do not install that update, since is it a downgrade and will cause your iOS app to crash again.

mlancione commented 10 months ago

Is there a way to debug Xamarin.iOS apps on iOS 17? The debugger doesn't seem to connect for me despite launching the app manually. Does this require XCode 15 and therefore will not be supported for Xamarin.iOS apps?

RobSchoenaker commented 10 months ago

Does this require XCode 15 and therefore will not be supported for Xamarin.iOS apps?

I am using XCode 14.3.1, since Xamarin Forms does not support XCode 15. I can debug apps but had a hard time pushing a new version to Apple for review. Not sure why your debug session fails. Did you remove the app from the development device completely?

mlancione commented 10 months ago

Does this require XCode 15 and therefore will not be supported for Xamarin.iOS apps?

I am using XCode 14.3.1, since Xamarin Forms does not support XCode 15. I can debug apps but had a hard time pushing a new version to Apple for review. Not sure why your debug session fails. Did you remove the app from the development device completely?

Debugging started working after a reboot. Debugging also seems to work using XCode 15 as well.

Although not officially supported by Microsoft, does the fact that Xamarin.iOS 16.4.0.18 seem to work with XCode 15 beta 8 to build a Xamarin.iOS app mean that we may have an additional year of use out of it before having to switch to .Net? This would be assuming we don't need iOS 17 specific APIs and assuming no breaking changes by Apple with future XCode 15 point releases.

RobSchoenaker commented 10 months ago

Good to hear that a reboot worked.

WOW! If XCode 15 'works' with Xamarin.iOS that would be very good news indeed. There was another issue raised here with a lot op people complaining that XCode 15 is not supported - and never will, unless the source code is ported to MAUI.

Even if this is not officially supported, it would give everyone some slack.

jtorvald commented 10 months ago

@RobSchoenaker That would make me and my team very happy indeed.

I can add to this that the additional build argument --weak-framework=NewsstandKit.framework/NewsstandKit as suggested by @RobSchoenaker in a previous issue also helps to work around this issue. We have multiple apps in production that needed this to be able to work in iOS17. This will result in NewsstandKit LC_LOAD_WEAK_DYLIB.

RobSchoenaker commented 10 months ago

@jtorvald - I may be repeating something here, but just to be clear: you can omit that build argument when using the linked "xamarin.ios-16.4.0.18.pkg" package from @dalexsoto Just do NOT update VS for Mac when prompted after installing it! (as of september 12, 2023 that is, since this may change in a future release)

jtorvald commented 10 months ago

@RobSchoenaker good to know. Can I ask what happens if we would update VS for Mac at this point? I'm running 17.6.3 (build 421)

RobSchoenaker commented 10 months ago

@jtorvald I will try to clarify - probably was not clear enough.

@dalexsoto mentioned the update package in the first message in this thread. When you install that package on your Mac and (re)start Visual Studio, you will be prompted to install an older version of xamarin.ios. I believe it was 16.4.0.16, which obviously will cause debugging to fail again if you removed the additional build argument.

Just ignore the message from VS for Mac to 'update', which is actually a 'downgrade'. I suppose VS for Mac will need to be updated to not mention the 'update/downgrade' now.

Does this make sense?

jtorvald commented 10 months ago

@RobSchoenaker yeah that makes sense. I thought you wrote not to update VS itself. Thanks.

phillippschmedt commented 10 months ago

@dalexsoto Hi, you are referring to https://download.visualstudio.microsoft.com/download/pr/de7f727f-243c-4429-8773-eebd735eb1bb/da4a65f27ace7f805914ef63661e0efd/xamarin.ios-16.4.0.18.pkg - Where did you find this release and where can I see the release notes? Thanks a lot

LeadAssimilator commented 10 months ago

I'm confused...I've updated VS2022 to 17.7.4 which includes XMI 16.4.0.15 and I let it update the paired mac to the same 16.4.0.15. I'm no longer seeing strong references to NewsstandKit like I was previously, but weak references and I didn't change any mtouch args to force it as weak either. As such, installing 16.4.0.18 appears to be entirely unnecessary.

So what is 16.4.0.18 is really need for then if the strong reference is gone in 16.4.0.15?

rolfbjarne commented 10 months ago

I'm confused...I've updated VS2022 to 17.7.4 which includes XMI 16.4.0.15 and I let it update the paired mac to the same 16.4.0.15. I'm no longer seeing strong references to NewsstandKit like I was previously, but weak references and I didn't change any mtouch args to force it as weak either. As such, installing 16.4.0.18 appears to be entirely unnecessary.

So what is 16.4.0.18 is really need for then if the strong reference is gone in 16.4.0.15?

We had to do multiple fixes to remove the strong reference in all cases.

Your project may only run into the first scenarios we fixed (and released) - which means you don't need 16.4.0.18, 16.4.0.15 may be enough. That doesn't mean other's won't.

LeadAssimilator commented 10 months ago

Ok thanks. It would be great if these versions were tagged to make tracking easier...

For anyone that is curious, the 16.4 packages are built from the xcode14.3 branch and .15 has hash 8c3876d5e and .18 has hash 9d266025e. Here is the compare https://github.com/xamarin/xamarin-macios/compare/8c3876d5e...9d266025e.

To find the hashes for a pkg you can cat /Library/Frameworks/Xamarin.iOS.framework/Versions/w.x.y.z/buildinfo if you install it, or extract it via pkg-util on the mac or 7zip from windows - it is nested inside the monotouch.pkg/Payload/Payload~ file.

IainS1986 commented 9 months ago

Has the Azure XamariniOS Pipeline task (https://moasure.visualstudio.com/Moasure2020/_build/results?buildId=1408&view=logs&j=d0c55d57-dc89-5219-b43a-87fc3bd7617e&t=760a608d-127a-5ce2-ccd3-71f0e97908ad&l=7) Have the correct above mentioned Xamarin IOS package update?

Can we rely on build from Azure using this task to work fine on iOS 17?

IainS1986 commented 9 months ago

By the looks of the log, its only using 16.0.0.72 with XCode 14.2 - which seems quite far behind.

Is there anything we can do to ensure the latest is used? Are there plan to update Azure devops (and soon)?

I see the MacOS image that was used in one of our builds is macos-12 ... so this might be on us for neglecting to use a newer image (I can see macOS-13 is available, but that macOS-latest still points to 12?) https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software

EDIT: Oh. Great. MacOS-13 image doesn't have Xamarin installed/support?

So is Azure DevOps support for Xamarin dropped sooner than the May 2024 deadlline?

rolfbjarne commented 9 months ago

By the looks of the log, its only using 16.0.0.72 with XCode 14.2 - which seems quite far behind.

Is there anything we can do to ensure the latest is used? Are there plan to update Azure devops (and soon)?

I see the MacOS image that was used in one of our builds is macos-12 ... so this might be on us for neglecting to use a newer image (I can see macOS-13 is available, but that macOS-latest still points to 12?) learn.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs=yaml#software

EDIT: Oh. Great. MacOS-13 image doesn't have Xamarin installed/support?

So is Azure DevOps support for Xamarin dropped sooner than the May 2024 deadlline?

I think these questions are better asked to the Azure DevOps team here: https://github.com/actions/runner-images/issues

IainS1986 commented 9 months ago

Good to hear that a reboot worked.

WOW! If XCode 15 'works' with Xamarin.iOS that would be very good news indeed. There was another issue raised here with a lot op people complaining that XCode 15 is not supported - and never will, unless the source code is ported to MAUI.

Even if this is not officially supported, it would give everyone some slack.

Can Verify. I've installed 16.4.0.18 on my Mac, XCode 15 (not the beta, the release) and just ran a debug build and debugger connected all fine to my iPhone.

I don't have the NewsstandKit API issue as were Xamarin native with linker turned on so it is/was being stripped anyway.

But I have Xamarin IOS, on a mac, building with Xcode 15 and debugging straight to my iOS 17 device 👍 (Note with iOS17 I do have to tap to launch the app)

(No idea if an IPA would go through app store submittion mind)

EDIT - Also this VS Mac only, Rider doesn't appear to recognise the iOS 17 device when its plugged in like VS Mac does. But I managed to build to an iOS 16 device with XCode 15 in Rider fine.

bobwhitten commented 9 months ago

I'm a bit confused on how install Xamarin.iOS16.4.0.18 properly. I use VS for Windows. After installing the package on my Mac, of course now when I pair, VS complains that the versions are mismatched. I feel like I missed somewhere the proper way to install the package or reconfig on VS for Windows.

AND, note -- I installed XCode 15 before this (somewhat unintentionally), and I can still build & debug on my iOS16.6 devices, but not on my iOS 17 devices.

svaldetero commented 9 months ago

For macOS you can just install the package "xamarin.ios-16.4.0.18.pkg" (link in the description)

How do I get this to work for a Maui / Microsoft.iOS project on macOS? I have 7.0.401 & 8.0.100-rc.1 installed and I still get the error. I tried adding <MtouchExtraArgs>--weak-framework=NewsstandKit.framework/NewsstandKit</MtouchExtraArgs> and still get the error.

rolfbjarne commented 9 months ago

I'm a bit confused on how install Xamarin.iOS16.4.0.18 properly. I use VS for Windows. After installing the package on my Mac, of course now when I pair, VS complains that the versions are mismatched. I feel like I missed somewhere the proper way to install the package or reconfig on VS for Windows.

Windows is a bit more complicated, but I believe there's a way to skip the version check. I'll investigate and get back to you.

rolfbjarne commented 9 months ago

For macOS you can just install the package "xamarin.ios-16.4.0.18.pkg" (link in the description)

How do I get this to work for a Maui / Microsoft.iOS project on macOS? I have 7.0.401 & 8.0.100-rc.1 installed and I still get the error. I tried adding <MtouchExtraArgs>--weak-framework=NewsstandKit.framework/NewsstandKit</MtouchExtraArgs> and still get the error.

What's the output of dotnet workload list and dotnet --info?

SamiAlan commented 9 months ago

I'm developing on Windows as well and got the following output: `C:\Users\sami>dotnet workload list

Installed Workload Id Manifest Version Installation Source

maui-android 7.0.92/7.0.100 VS 17.7.34031.279 android 33.0.68/7.0.100 VS 17.7.34031.279 maccatalyst 16.4.7098/7.0.100 VS 17.7.34031.279 ios 16.4.7098/7.0.100 VS 17.7.34031.279 maui-windows 7.0.92/7.0.100 VS 17.7.34031.279 maui-maccatalyst 7.0.92/7.0.100 VS 17.7.34031.279 maui-ios 7.0.92/7.0.100 VS 17.7.34031.279

Use dotnet workload search to find additional workloads to install.

C:\Users\sami>dotnet --info .NET SDK: Version: 7.0.401 Commit: eb26aacfec

Runtime Environment: OS Name: Windows OS Version: 10.0.22621 OS Platform: Windows RID: win10-x64 Base Path: C:\Program Files\dotnet\sdk\7.0.401\

Host: Version: 7.0.11 Architecture: x64 Commit: ecb34f85ec

.NET SDKs installed: 7.0.400 [C:\Program Files\dotnet\sdk] 7.0.401 [C:\Program Files\dotnet\sdk]

.NET runtimes installed: Microsoft.AspNetCore.App 6.0.22 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.11 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.22 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.11 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 6.0.22 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] Microsoft.WindowsDesktop.App 7.0.11 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

Other architectures found: x86 [C:\Program Files (x86)\dotnet] registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]

Environment variables: Not set

global.json file: Not found

Learn more: https://aka.ms/dotnet/info

Download .NET: https://aka.ms/dotnet/download`

RagibNoor commented 9 months ago

Hi, you are referring to https://download.visualstudio.microsoft.com/download/pr/de7f727f-243c-4429-8773-eebd735eb1bb/da4a65f27ace7f805914ef63661e0efd/xamarin.ios-16.4.0.18.pkg - Where did you find this release and where can I see the release notes? Thanks a lot

I have the same question searched on the Microsoft page but could not find anything

Hackmodford commented 9 months ago

@dalexsoto Hi, you are referring to https://download.visualstudio.microsoft.com/download/pr/de7f727f-243c-4429-8773-eebd735eb1bb/da4a65f27ace7f805914ef63661e0efd/xamarin.ios-16.4.0.18.pkg - Where did you find this release and where can I see the release notes? Thanks a lot

Where does one find these releases listed? I can only find older packages.

rolfbjarne commented 9 months ago

@dalexsoto Hi, you are referring to https://download.visualstudio.microsoft.com/download/pr/de7f727f-243c-4429-8773-eebd735eb1bb/da4a65f27ace7f805914ef63661e0efd/xamarin.ios-16.4.0.18.pkg - Where did you find this release and where can I see the release notes? Thanks a lot

Where does one find these releases listed? I can only find older packages.

It hasn't really been released yet, which is why it's nowhere but here.

rolfbjarne commented 9 months ago

@SamiAlan can you get a binlog and upload it here?

SamiAlan commented 9 months ago

Sure. I cloned the project and removed the bits that are confidential. Here is the link: https://drive.google.com/file/d/1NtRXeG5uedXp9vYwTCtRjRndPp7VOQr5/view?usp=sharing

kolodiichyk commented 9 months ago

Hi everybody, I think that faced with the same issue:

MT5209: Error: warning: ignoring duplicate libraries: '-lz' Native linking MT5209: Error: framework 'NewsstandKit' not found Native linking MTOUCH: Error MT5202: Native linking failed. Please review the build log. (MT5202) Error: linker command failed with exit code 1 (use -v to see invocation)

Just create a new Xamarin.iOS or Xamarin.Forms project and try to build. It's from MacBook macOS 13.5.2 (22G91)

dotnet workload list:

Installed Workload Id Manifest Version Installation Source

wasm-tools 7.0.11/7.0.100 SDK 7.0.300 macos 13.3.7099/7.0.100 SDK 7.0.300 maui-maccatalyst 7.0.92/7.0.100 SDK 7.0.300 maui-ios 7.0.92/7.0.100 SDK 7.0.300 maui-android 7.0.92/7.0.100 SDK 7.0.300

dotnet --info:

.NET SDK: Version: 7.0.308 Commit: f6a2f50f2d

Runtime Environment: OS Name: Mac OS X OS Version: 13.5 OS Platform: Darwin RID: osx.13-x64 Base Path: /usr/local/share/dotnet/sdk/7.0.308/

Host: Version: 7.0.11 Architecture: x64 Commit: ecb34f85ec

.NET SDKs installed: 3.1.407 [/usr/local/share/dotnet/sdk] 3.1.408 [/usr/local/share/dotnet/sdk] 3.1.409 [/usr/local/share/dotnet/sdk] 3.1.412 [/usr/local/share/dotnet/sdk] 3.1.413 [/usr/local/share/dotnet/sdk] 3.1.414 [/usr/local/share/dotnet/sdk] 3.1.415 [/usr/local/share/dotnet/sdk] 3.1.416 [/usr/local/share/dotnet/sdk] 3.1.420 [/usr/local/share/dotnet/sdk] 3.1.426 [/usr/local/share/dotnet/sdk] 5.0.201 [/usr/local/share/dotnet/sdk] 5.0.202 [/usr/local/share/dotnet/sdk] 5.0.203 [/usr/local/share/dotnet/sdk] 5.0.400 [/usr/local/share/dotnet/sdk] 5.0.401 [/usr/local/share/dotnet/sdk] 5.0.402 [/usr/local/share/dotnet/sdk] 5.0.403 [/usr/local/share/dotnet/sdk] 5.0.404 [/usr/local/share/dotnet/sdk] 5.0.408 [/usr/local/share/dotnet/sdk] 6.0.408 [/usr/local/share/dotnet/sdk] 6.0.412 [/usr/local/share/dotnet/sdk] 6.0.413 [/usr/local/share/dotnet/sdk] 6.0.414 [/usr/local/share/dotnet/sdk] 7.0.302 [/usr/local/share/dotnet/sdk] 7.0.306 [/usr/local/share/dotnet/sdk] 7.0.307 [/usr/local/share/dotnet/sdk] 7.0.308 [/usr/local/share/dotnet/sdk]

.NET runtimes installed: Microsoft.AspNetCore.App 3.1.13 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.14 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.15 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.18 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.19 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.21 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.22 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.26 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 3.1.32 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.6 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.9 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.12 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.13 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 5.0.17 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.16 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.20 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.21 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 6.0.22 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.9 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.10 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 7.0.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 3.1.13 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.14 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.15 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.18 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.19 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.21 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.22 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.26 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 3.1.32 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.6 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.9 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.12 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.13 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 5.0.17 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.16 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.20 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.21 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 6.0.22 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.9 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.10 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 7.0.11 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

npagare commented 9 months ago

When pairing to my MAC, I'm getting following error with XCode 15 installed.

An error occurred while trying to start the Broker... An error occurred while trying to start Broker 17.7.0.216

rolfbjarne commented 9 months ago

@SamiAlan

Sure. I cloned the project and removed the bits that are confidential. Here is the link: https://drive.google.com/file/d/1NtRXeG5uedXp9vYwTCtRjRndPp7VOQr5/view?usp=sharing

As far as I can tell that's a successful build?

rolfbjarne commented 9 months ago

@kolodiichyk

MT5209: Error: warning: ignoring duplicate libraries: '-lz' Native linking MT5209: Error: framework 'NewsstandKit' not found Native linking MTOUCH: Error MT5202: Native linking failed. Please review the build log. (MT5202) Error: linker command failed with exit code 1 (use -v to see invocation)

Just create a new Xamarin.iOS or Xamarin.Forms project and try to build. It's from MacBook macOS 13.5.2 (22G91)

Which version of Xamarin.iOS do you have?

You can get that using the command line:

/Library/Frameworks/Xamarin.iOS.framework/Versions/Current/bin/mtouch --version
kolodiichyk commented 9 months ago

mtouch 16.4.0.6 (xcode14.3: 97731c92c)

rolfbjarne commented 9 months ago

@kolodiichyk

mtouch 16.4.0.6 (xcode14.3: https://github.com/xamarin/xamarin-macios/commit/97731c92cc6d147825c1a39ed2c5c530a5f9a12b)

You need to install xamarin.ios-16.4.0.18, like the description of this issue says.

Eagle104 commented 9 months ago

I can build and the project works through Pair to Mac etc, But I am not able to debug my application anymore on iOS 17

SamiAlan commented 9 months ago

@SamiAlan

Sure. I cloned the project and removed the bits that are confidential. Here is the link: https://drive.google.com/file/d/1NtRXeG5uedXp9vYwTCtRjRndPp7VOQr5/view?usp=sharing

As far as I can tell that's a successful build?

Yes, The project is building successfully. It is also deploying the app to the IOS device but once I start debugging and open the app, it suddenly shuts down while at the splash screen. Just for clarity, I had a MAX_PATH issue earlier where I Installed a nuget package called Plugin.Firebase.CloudMessaging. I couldn't build the project and the error was that It could not find part of the path to a file related to the package (even though I am sure it exists). I was able to resolve it by deleted the _CopyLocalBindingResources target in the "C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\16.4.7098\targets\Xamarin.Shared.Sdk.targets" file. I'm not sure if that breaks the app now after the update

rolfbjarne commented 9 months ago

@Eagle104

I can build and the project works through Pair to Mac etc, But I am not able to debug my application anymore on iOS 17

Does the app launch/work correctly if you tap on it?

Eagle104 commented 9 months ago

@Eagle104

I can build and the project works through Pair to Mac etc, But I am not able to debug my application anymore on iOS 17

Does the app launch/work correctly if you tap on it?

VS Version 2022 Pro 17.6.5

Xamarin.Forms 5.0.0.2312

XCode 15

Xamarin.iOS 16.4.0.18 - Installed Manually

Mac M2 Ventura 13.5.2

Yes the application opens and Works.

rolfbjarne commented 9 months ago

@SamiAlan

Sure. I cloned the project and removed the bits that are confidential. Here is the link: https://drive.google.com/file/d/1NtRXeG5uedXp9vYwTCtRjRndPp7VOQr5/view?usp=sharing

As far as I can tell that's a successful build?

Yes, The project is building successfully. It is also deploying the app to the IOS device but once I start debugging and open the app, it suddenly shuts down while at the splash screen. Just for clarity, I had a MAX_PATH issue earlier where I Installed a nuget package called Plugin.Firebase.CloudMessaging. I couldn't build the project and the error was that It could not find part of the path to a file related to the package (even though I am sure it exists). I was able to resolve it by deleted the _CopyLocalBindingResources target in the "C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\16.4.7098\targets\Xamarin.Shared.Sdk.targets" file. I'm not sure if that breaks the app now after the update

You can tell if it's something else or not by following the "Detect if an app is affected" instructions in the description of this issue.

You could also try disabling Hot Restart to see if that makes a difference.

rolfbjarne commented 9 months ago

@Eagle104

I can build and the project works through Pair to Mac etc, But I am not able to debug my application anymore on iOS 17

Does the app launch/work correctly if you tap on it?

VS Version 2022 Pro 17.6.5

Xamarin.Forms 5.0.0.2312

XCode 15

Xamarin.iOS 16.4.0.18 - Installed Manually

Mac M2 Ventura 13.5.2

Yes the application opens and Works.

OK, that's a different problem then, and I suggest you file a new issue for it.

rolfbjarne commented 9 months ago

@bobwhitten

I'm a bit confused on how install Xamarin.iOS16.4.0.18 properly. I use VS for Windows. After installing the package on my Mac, of course now when I pair, VS complains that the versions are mismatched. I feel like I missed somewhere the proper way to install the package or reconfig on VS for Windows.

Windows is a bit more complicated, but I believe there's a way to skip the version check. I'll investigate and get back to you.

In order to skip the version check you have to add/edit a registry key:

Create key named DisableXamariniOSValidation (DWORD) with the value 1 under: Computer\HKEY_CURRENT_USER\Software\Xamarin\VisualStudio\MacAgent

Remember to delete this key once the updated version has been released to Visual Studio as well.

LeadAssimilator commented 9 months ago

@rolfbjarne

@bobwhitten

I'm a bit confused on how install Xamarin.iOS16.4.0.18 properly. I use VS for Windows. After installing the package on my Mac, of course now when I pair, VS complains that the versions are mismatched. I feel like I missed somewhere the proper way to install the package or reconfig on VS for Windows.

Windows is a bit more complicated, but I believe there's a way to skip the version check. I'll investigate and get back to you.

In order to skip the version check you have to add/edit a registry key:

Create key named DisableXamariniOSValidation (DWORD) with the value 1 under: Computer\HKEY_CURRENT_USER\Software\Xamarin\VisualStudio\MacAgent

Remember to delete this key once the updated version has been released to Visual Studio as well.

Any chance we could get a checkbox for that in the VS UI under Xamarin -> iOS Settings? Installs of newer packages could perhaps even always clear the flag too to serve as a reminder? Where should I file that feature request?

rolfbjarne commented 9 months ago

@LeadAssimilator

I'm a bit confused on how install Xamarin.iOS16.4.0.18 properly. I use VS for Windows. After installing the package on my Mac, of course now when I pair, VS complains that the versions are mismatched. I feel like I missed somewhere the proper way to install the package or reconfig on VS for Windows.

Windows is a bit more complicated, but I believe there's a way to skip the version check. I'll investigate and get back to you.

In order to skip the version check you have to add/edit a registry key: Create key named DisableXamariniOSValidation (DWORD) with the value 1 under: Computer\HKEY_CURRENT_USER\Software\Xamarin\VisualStudio\MacAgent Remember to delete this key once the updated version has been released to Visual Studio as well.

Any chance we could get a checkbox for that in the VS UI under Xamarin -> iOS Settings? Installs of newer packages could perhaps even always clear the flag too to serve as a reminder? Where should I file that feature request?

Instructions for suggestions are here: https://learn.microsoft.com/en-us/visualstudio/ide/suggest-a-feature?view=vs-2022

LeadAssimilator commented 9 months ago

@rolfbjarne

Windows is a bit more complicated, but I believe there's a way to skip the version check. I'll investigate and get back to you.

In order to skip the version check you have to add/edit a registry key: Create key named DisableXamariniOSValidation (DWORD) with the value 1 under: Computer\HKEY_CURRENT_USER\Software\Xamarin\VisualStudio\MacAgent Remember to delete this key once the updated version has been released to Visual Studio as well.

Any chance we could get a checkbox for that in the VS UI under Xamarin -> iOS Settings? Installs of newer packages could perhaps even always clear the flag too to serve as a reminder? Where should I file that feature request?

Instructions for suggestions are here: https://learn.microsoft.com/en-us/visualstudio/ide/suggest-a-feature?view=vs-2022

Ok thanks. I was expecting it to have to go somewhere else or there would be a more direct path to whomever controls the xamarin specific settings pages.

RhomGit commented 9 months ago

@kolodiichyk

mtouch 16.4.0.6 (xcode14.3: 97731c9)

You need to install xamarin.ios-16.4.0.18, like the description of this issue says.

Logging in to my Mac host and installing this pkg file fixed the problem. I can now compile and run on the simulator. I haven't tried publishing to the App Store yet.

pasha-o commented 9 months ago

I tried the suggestions above using VS 2022 on Windows Version 17.8.0 Preview 2.0 , and everything works on the simulator and app launches. but I can't test it on a real hardware device with iOS 17. it simply gives me the error below Error An error occurred while executing MTouch error MT0000: Unexpected error - Please file a bug report at https://github.com/xamarin/xamarin-macios/issues/new 0

fit4you-bike commented 9 months ago

Hi everybody, I'm also having this error compiling against XCode 15 and 17 iOS sdk

clang : error : linker command failed with exit code 1 (use -v to see invocation) error MT5209 : Native linking error : warning: ignoring duplicate libraries: '-lz' error MT5209 : Native linking error : framework 'NewsstandKit' not found MTOUCH : error MT5202: Native linking failed. Please review the build log.

visual studio for mac 17.6.4 (build 472)

Xamarin.iOS 16.4.0.18 (xcode14.3: 9d266025e) using framework: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator17.0.sdk

xcode Version 15.0 (15A240d)

.NET SDK: Version: 7.0.401 Commit: eb26aacfec

Ambiente di runtime: OS Name: Mac OS X OS Version: 13.5 OS Platform: Darwin RID: osx.13-x64 Base Path: /usr/local/share/dotnet/sdk/7.0.401/

Host: Version: 7.0.11 Architecture: x64 Commit: ecb34f85ec

I'm unable to link besides the fact I've hadded

--weak-framework=NewsstandKit.framework/NewsstandKit

to mtouch options. Any ideas? Thanks in advance