Closed eqmarcin closed 3 days ago
You are not alone. I have the same issue.
If you want to keep using Xcode 15.4, you can install this version: https://github.com/xamarin/xamarin-macios/releases/tag/dotnet-8.0.1xx-xcode15.4-8030 of the .NET for iOS SDK. But you'll be stuck on .NET 8. You should be able to do that with dotnet workload install --version 8.0.402
.
Is there any specific reason you don't want to use Xcode 16?
Oh wow, I didn't expect a response! Cool!
I am using Xcode 16, and it was working including submitting to the Apple App Store. The problems started when I upgraded to VS 17.12, and when I upgraded some NuGet packages. I use VS on Windows primarily, and use Pair-to-Mac when making builds for the Apple App Store.
So I don't have the exact same issue as the original poster, but I get the same error messages and duplicative versions of MAUI workloads.
I had everything working on VS 17.11 (or whatever version came before 17.12.0):
After installing VS 17.12 it made breaking changes:
dotnet --version
reported I was now using 9)dotnet workload list
showed both 8.0.400 and 17.12.xxxx versions for all the MAUI workloads)<AndroidSupportedAbis>armeabi-v7a;arm64-v8a;x86;x86_64</AndroidSupportedAbis>
to: <RuntimeIdentifiers>android-arm;android-arm64;android-x86;android-x64</RuntimeIdentifiers>
This version of Microsoft.iOS requires the iOS 18.0 SDK (shipped with Xcode 16.0)
even though I have Xcode 16.0 on the macinfo.plist
not being found. After doing a few more cleanings, the issue magically went away. So then I tried to get back to the previously known-working state with these steps https://github.com/xamarin/xamarin-macios/releases/tag/dotnet-8.0.1xx-xcode16.0-8303 below:
global.json
file with: {"sdk": {"version": "8.0.402", "rollForward": "patch", "allowPrerelease": false }}
dotnet workload uninstall maui
dotnet workload uninstall android ios maccatalyst maui-windows
dotnet nuget locals all --clear
bin
and obj
directoriesdotnet workload install maui --version 8.0.402.1
dotnet restore --force
And now I have things as follows:
> dotnet --version
8.0.402
and:
> dotnet workload list
Workload version: 8.0.402.1
Installed Workload Id Installation Source
----------------------------------------------------------
android SDK 8.0.400, VS 17.12.35506.116
aspire SDK 8.0.400, VS 17.12.35506.116
ios SDK 8.0.400, VS 17.12.35506.116
maccatalyst SDK 8.0.400, VS 17.12.35506.116
macos SDK 8.0.400
maui SDK 8.0.400
maui-windows SDK 8.0.400, VS 17.12.35506.116
tvos SDK 8.0.400
I tried to add my .csproj
file for context, but this forum doesn't allow attaching .csproj files. If you want it I can rename it to *.txt and try attaching.
I've gotten it running again on Windows VS when I don't use Pair-to-Mac.
I am getting strange and new errors with Pair-to-Mac from Windows VS:
Root assembly 'SQLitePCLRaw.provider.dynamic_cdecl' could not be found.
The file "obj\Release\net8.0-ios\ios-arm64\linked\Link.semaphore" cannot be created. Could not find a part of the path 'C:\swd\sotamat\SotamatApp\SotamatApp\obj\Release\net8.0-ios\ios-arm64\linked\Link.semaphore'.
Ideas of what to try next?
@brianmathews it'd be useful to breakup your blockers here a bit to separate issues so we can route them.
It sounds like you have two categories of issues here
1) You're blocked from updating to .NET9 because of some blockers/regressions 2) You're having troubles reverting back to .NET 8 workloads (state) and using pair to mac
If you could log issues why you're blocked from using .NET9 that would be helpful so we can fix any regressions.
And then any pair to mac issues you're hitting if you could log these through VS Feedback so we can check the relevant logs
Closing this issue as by design
@jfversluis has posted a workaround here if you need to use 15.4 https://github.com/dotnet/maui/issues/25888#issuecomment-2482799859
If you have specific bugs/issues blocking you from using XCode 16/17.12 please log those specific issues so we can resolve them
Description
I have updated Visual Studio Community to from 17.11.4 to 17.12.0 and now I can't build/run iOS apps on paired Mac (Mac OS Sonoma 14.7.1 with XCode 15.4) as it says that XCode 16 is required.
I'm using .NET 8.0.404 and workloads below (this setup works on another PC with VS 17.11.4)
Errors:
This version of Microsoft.iOS requires the iOS 18.0 SDK (shipped with Xcode 16.0). Either upgrade Xcode to get the required header files or set the managed linker behaviour to Link Framework SDKs Only in your project's iOS Build Options > Linker Behavior (to try to avoid the new APIs).
The linker step 'Setup' failed during processing: This version of Microsoft.iOS requires the iOS 18.0 SDK (shipped with Xcode 16.0). Either upgrade Xcode to get the required header files or set the managed linker behaviour to Link Framework SDKs Only in your project's iOS Build Options > Linker Behavior (to try to avoid the new APIs).
Changing linker setting to "Link Framework SDKs Only" fixes the above for builds but it disables Hot Reload ("iOS Linker settings for MyApp are unsupported").
Not sure if there is anything that I can do to have it working as before?
Notes: I can't downgrade VS version this feature is not available for Community edition. Upgrading Mac OS and XCode to v16 and/or .NET to 9 breaks the app.
Steps to Reproduce
No response
Link to public reproduction project repository
No response
Version with bug
8.0.80 SR8
Is this a regression from previous behavior?
No, this is something new
Last version that worked well
Unknown/Other
Affected platforms
iOS, I was not able test on other platforms
Affected platform versions
No response
Did you find any workaround?
No response
Relevant log output