Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump min OS versions to match Xcode 14 #15216

Closed
3 tasks done
rolfbjarne opened this issue Jun 7, 2022 · 6 comments
Closed
3 tasks done

Bump min OS versions to match Xcode 14 #15216

rolfbjarne opened this issue Jun 7, 2022 · 6 comments
Assignees
Labels
feature A feature to be implemented
Milestone

Comments

@rolfbjarne
Copy link
Member

rolfbjarne commented Jun 7, 2022

The release notes for Xcode 14 (beta 1) say:

"Xcode 14 supports building applications that target macOS 10.13, iOS 11, tvOS 11, watchOS 4, and later."

Should we do the same?

Note that the underlying SDKs shipped with Xcode 14 seem to support building for earlier OS versions just fine, so we might get away with not doing anything for a while (i.e. it might be an IDE restriction only).


In general, we won't support anything lower than what the current stable version of Xcode does.

However, because:

  • We don't want to change min OS versions in a minor release.
  • Our major release schedules don't match up very well with Xcode's release schedules.

We'll bump the min OS versions a bit delayed compared to Xcode.

This means that we'll bump to the following OS versions only for .NET 8 (and not .NET 7, because by the time Xcode 14 is stable, it's very late in the .NET 7 release):

  • iOS 11
  • tvOS 11
  • macOS 10.15 (that's what .NET 6+ supports) [.NET may bump this to macOS 11 for .NET 8, in which case we'll have to follow suit)
  • Mac Catalyst 13.1

Note:

  • We're supporting macOS 10.15, but we're not testing on OS versions that Apple doesn't support anymore. At the time of this writing, this means macOS 11 is the lowest we test.
  • The same applies to Mac Catalyst, we're only testing on Mac Catalyst 14.2, because that's the version in macOS 11 contains.

TODO:

  • Update release notes for .NET 8: https://github.com/xamarin/xamarin-macios/wiki/.NET-8-release-notes
  • Update our code. This is a significant change/simplification, because we can drop 32-bit support (armv7, armv7s).
  • Notify dotnet/runtime that they don't need to build earlier versions of iOS and tvOS anymore, as well as drop armv7+armv7s binaries/packs.
@rolfbjarne rolfbjarne added the request-for-comments The issue is a suggested idea seeking feedback label Jun 7, 2022
@rolfbjarne rolfbjarne added this to the xcode14 milestone Jun 7, 2022
@rolfbjarne
Copy link
Member Author

CC @davidortinau

@spouliot
Copy link
Contributor

spouliot commented Jun 7, 2022

I wonder if that change removed the 32bits compilers...

Otherwise this is not the first time Apple bumped its requirements. Xcode 13.x can still build/install for older devices but can't launch them (you have to do it manually).

update

From the release notes

Building iOS projects with deployment targets for the armv7, armv7s, and i386 architectures is no longer supported. (92831716)

It's not clear if the command lines tools are still available (and they might be removed at any moment).

@mandel-macaque
Copy link
Member

Looks like inmacOS 12.4 we are having issues installing the older sim (on CI, which is another world of problems):

ownload completed in 64.4599445s
Mounting '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771.dmg' into '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771.dmg-mount'...
Expanding '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771.dmg-mount/iPhoneSimulatorSDK12_4.pkg' into '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning-expanded-pkg'...
Creating fixed package '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771-fixed.pkg' from '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning-expanded-pkg'...
Installing '/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771-fixed.pkg'...
Jun  9 11:01:55  installer[15270] <Debug>: Referenced component packages (1) trustLevel=100
Jun  9 11:01:55  installer[15270] <Debug>: -[IFPKGDerivedDocument sortedPackageLocations]: result = (
	    "file://localhost"
	)
Jun  9 11:01:55  installer[15270] <Debug>: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: location = file://localhost
Jun  9 11:01:55  installer[15270] <Debug>: -[IFDInstallController(Private) _buildInstallPlanReturningError:]: file://localhost/private/var/folders/z3/p1mf40sj2qv9vh9v8fn8fl5w0000gn/T/x-provisioning/com.apple.pkg.iPhoneSimulatorSDK12_4-12.4.1.1568665771-fixed.pkg
Jun  9 11:01:55  installer[15270] <Info>: Set authorization level to root for session
Jun  9 11:01:55  installer[15270] <Info>: Authorization is being checked, waiting until authorization arrives.
Jun  9 11:01:55  installer[15270] <Info>: Administrator authorization granted.
Jun  9 11:01:55  installer[15270] <Info>: Packages have been authorized for installation.
Jun  9 11:01:55  installer[15270] <Debug>: Will use PK session
Jun  9 11:01:55  installer[15270] <Debug>: Using authorization level of root for IFPKInstallElement
Jun  9 11:02:11  installer[15270] <Info>: Starting installation:
Jun  9 11:02:11  installer[15270] <Notice>: Configuring volume "Macintosh HD"
Jun  9 11:02:11  installer[15270] <Info>: Preparing disk for local booted install.
Jun  9 11:02:11  installer[15270] <Notice>: Free space on "Macintosh HD": 398.01 GB (398014599168 bytes).
Jun  9 11:02:11  installer[15270] <Notice>: Create temporary directory "/var/folders/zz/zyxvpxvq6csfxvn_n0000000000000/T//Install.15270llI83E"
Jun  9 11:02:11  installer[15270] <Notice>: IFPKInstallElement (1 packages)
Jun  9 11:02:11  installer[15270] <Info>: Current Path: /usr/sbin/installer
Jun  9 11:02:11  installer[15270] <Info>: Current Path: /usr/bin/sudo
Jun  9 11:02:11  installer[15270] <Notice>: PackageKit: Enqueuing install with framework-specified quality of service (utility)
Jun  9 11:03:34  installer[15270] <Debug>: install:didFailWithError:Error Domain=PKInstallErrorDomain Code=120 "An unexpected error occurred while moving files to the final destination." UserInfo={NSUnderlyingError=0x6000001a84b0 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}, NSLocalizedDescription=An unexpected error occurred while moving files to the final destination., arguments=(
	    "-f",
	    "-s",
	    "/Library/InstallerSandboxes/.PKInstallSandboxManager/1504666D-23E1-4A72-9939-33374D807114.activeSandbox/Root",
	    "/"
	)}
Jun  9 11:03:34  installer[15270] <Error>: Install failed: The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.

@rolfbjarne
Copy link
Member Author

It doesn't look like we need to do this for Xcode 14.

IMHO we should still do it at some point though, so I'm moving to .NET 8.

@rolfbjarne rolfbjarne modified the milestones: xcode14, .NET 8 Aug 31, 2022
@rolfbjarne rolfbjarne changed the title [xcode14] Bump min OS versions to match Xcode 14? Bump min OS versions to match Xcode (14)? Aug 31, 2022
@dalexsoto
Copy link
Member

Resolution: Do it for .NET 8

@rolfbjarne rolfbjarne added feature A feature to be implemented and removed request-for-comments The issue is a suggested idea seeking feedback labels Sep 27, 2022
@rolfbjarne rolfbjarne changed the title Bump min OS versions to match Xcode (14)? Bump min OS versions to match Xcode 14 Nov 14, 2022
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Nov 16, 2022
…options:documentAttributes:error:]'.

The 'initWithFileURL:options:documentAttributes:error:' was deprecated in iOS
9, and a new alternative (initWithURL:options:documentAttributes:error:) was
added. At the time, we implemented automatic detection of the current OS, and
would choose one version or the other depending on which was available.

We won't support anything below iOS 9 anymore, which means that keeping the
backwards-compatible constructor is useless, so just remove the corresponding
code and expose the new alternative directly.

On another note, this constructor uses a 'ref NSError' argument instead of an
'out NSError' on mobile platforms (likely due to the generator not having
proper 'out' parameter support when this constructor was implemented), so
improve to use 'out' parameters in XAMCORE_5_0 (and macOS, where it already
uses 'out' parameters).

Ref: xamarin#15216
rolfbjarne added a commit that referenced this issue Nov 17, 2022
…options:documentAttributes:error:]'. (#16787)

The 'initWithFileURL:options:documentAttributes:error:' was deprecated in iOS
9, and a new alternative (initWithURL:options:documentAttributes:error:) was
added. At the time, we implemented automatic detection of the current OS, and
would choose one version or the other depending on which was available.

We won't support anything below iOS 9 anymore, which means that keeping the
backwards-compatible constructor is useless, so just remove the corresponding
code and expose the new alternative directly.

On another note, this constructor uses a 'ref NSError' argument instead of an
'out NSError' on mobile platforms (likely due to the generator not having
proper 'out' parameter support when this constructor was implemented), so
improve to use 'out' parameters in XAMCORE_5_0 (and macOS, where it already
uses 'out' parameters).

Ref: #15216
rolfbjarne added a commit that referenced this issue Nov 17, 2022
Unify the code for the following functions:

* NSAttributedString.GetData[FromRange]
* NSAttributedString.GetFileWrapper[FromRange]

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: #15216
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Nov 18, 2022
Unify the code for the following constructors:

+ NSAttributedString (NSData data, NSDictionary options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
+ NSAttributedString (NSUrl url, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
+ NSAttributedString (NSData data, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: xamarin#15216
rolfbjarne added a commit that referenced this issue Nov 21, 2022
…ns. (#16804)

Unify the code for the following constructors:

* NSAttributedString (NSData data, NSDictionary options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSUrl url, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSData data, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: #15216
haritha-mohan pushed a commit to haritha-mohan/xamarin-macios that referenced this issue Nov 22, 2022
…ns. (xamarin#16804)

Unify the code for the following constructors:

* NSAttributedString (NSData data, NSDictionary options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSUrl url, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);
* NSAttributedString (NSData data, NSAttributedStringDocumentAttributes options, out NSDictionary resultDocumentAttributes, ref/out NSError error);

These functions use 'ref' arguments instead of 'out' arguments for mobile
platforms (likely due to the generator not having proper 'out' parameter
support when these functions were implemented), so improve to use 'out'
parameters in XAMCORE_5_0 (and macOS, where they already use 'out'
parameters).

Also fix nullability.

Ref: xamarin#15216
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Nov 22, 2022
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
@rolfbjarne rolfbjarne self-assigned this Nov 28, 2022
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Dec 19, 2022
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Dec 23, 2022
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Jan 10, 2023
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Jan 31, 2023
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
rolfbjarne added a commit to rolfbjarne/xamarin-macios that referenced this issue Feb 2, 2023
Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes xamarin#15216.
rolfbjarne added a commit that referenced this issue Feb 7, 2023
#16864)

Bump min OS versions to:

* iOS 11.0
* tvOS 11.0
* watchOS 4.0 (not really relevant for .NET, but matches iOS 11.0)
* macOS 10.15

Also bump the min version to execute our tooling to the macOS min version (it
doesn't make sense to be able to run our tooling on an OS you can't run the
compiled results on).

Fixes #15216.
@rolfbjarne
Copy link
Member Author

This is complete now.

@ghost ghost locked as resolved and limited conversation to collaborators Mar 18, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature A feature to be implemented
Projects
None yet
Development

No branches or pull requests

4 participants