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.45k stars 511 forks source link

Xcode 10 with Xamarin ios 13.2.0.42 - error MT4162: The type 'CoreLocation.CLBeaconIdentityConstraint' is not available in iOS 12.2 (it was introduced in iOS 13.0) #7128

Closed stefandevo closed 5 years ago

stefandevo commented 5 years ago

Our build server was upgraded tot 13.2.0.42 but not upgraded XCode to 11. We are using Xamarin.Essentials for GPS location. For iOS we now receive:

/Library/Frameworks/Xamarin.iOS.framework/Versions/13.2.0.42/src/Xamarin.iOS/CLLocationManager.g.cs(1053): error MT4162: The type 'CoreLocation.CLBeaconIdentityConstraint' (used as a parameter in CoreLocation.CLLocationManager/_CLLocationManagerDelegate.DidFailRangingBeacons) is not available in iOS 12.2 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/vagrant/git/src/***.iOS/***.Platform.iOS.csproj]
  /Library/Frameworks/Xamarin.iOS.framework/Versions/13.2.0.42/src/Xamarin.iOS/CLLocationManager.g.cs(1077): error MT4162: The type 'CoreLocation.CLBeaconIdentityConstraint' (used as a parameter in CoreLocation.CLLocationManager/_CLLocationManagerDelegate.DidRangeBeaconsSatisfyingConstraint) is not available in iOS 12.2 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/vagrant/git/src/***.iOS/***.Platform.iOS.csproj]
chamons commented 5 years ago

We've written up this use case here.

To use a newer Xamarin.iOS SDK with an older Xcode, you'll likely need to enable the managed linker.

While frustrating, I don't believe this is a bug. Please reopen if you don't believe this documentation applies to your use case.

koolham commented 5 years ago

Even after enabling the linked manager (by selecting Link Framework SDKs Only in Visual Studio project), this type of error persists for me:

/Library/Frameworks/Xamarin.iOS.framework/Versions/13.2.0.42/src/Xamarin.iOS/CLLocationManager.g.cs(1053): error MT4162: The type 'CoreLocation.CLBeaconIdentityConstraint' (used as a parameter in CoreLocation.CLLocationManager/_CLLocationManagerDelegate.DidFailRangingBeacons) is not available in iOS 11.4 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/**/myagent/_work/1/s/**/Mobile.iOS/Mobile.iOS.csproj]
  /Library/Frameworks/Xamarin.iOS.framework/Versions/13.2.0.42/src/Xamarin.iOS/CLLocationManager.g.cs(1077): error MT4162: The type 'CoreLocation.CLBeaconIdentityConstraint' (used as a parameter in CoreLocation.CLLocationManager/_CLLocationManagerDelegate.DidRangeBeaconsSatisfyingConstraint) is not available in iOS 11.4 (it was introduced in iOS 13.0). Please build with a newer iOS SDK (usually done by using the most recent version of Xcode). [/Users/**/myagent/_work/1/s/**/Mobile.iOS/Mobile.iOS.csproj]
chamons commented 5 years ago

As the error suggests:

Please build with a newer iOS SDK (usually done by using the most recent version of Xcode).

It looks like you have the opposite happening @koolham - A newer Xcode and an older XI SDK.

koolham commented 5 years ago

I’m on an older XCode version (9.4.1) due to limitations of our MacMini (2014 edition) which was working fine with the previous build of xamarin iOS (12.16). The newer xamarin.ios (13.2) broke the build, but using the managed linker (sdk linking only) did not fix the issue.

Sent from my iPhone

Ian Lander Ian.lander@outlook.com

On Oct 4, 2019, at 3:53 PM, Chris Hamons notifications@github.com wrote:



As the error suggests:

Please build with a newer iOS SDK (usually done by using the most recent version of Xcode).

It looks like you have the opposite happening @koolhamhttps://github.com/koolham - A newer Xcode and an older XI SDK.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/xamarin/xamarin-macios/issues/7128?email_source=notifications&email_token=ACKRTA5GIBWMTXCZO6ZC4ULQM7CONA5CNFSM4I3SR6K2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEANCNXA#issuecomment-538584796, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACKRTA6OLDXPIFHIPK3RB3LQM7CONANCNFSM4I3SR6KQ.

rolfbjarne commented 5 years ago

using the managed linker (sdk linking only) did not fix the issue

This is not a guaranteed fix, it's a workaround that sometimes works (it depends on the API that changed between different versions of Xamarin.iOS).

There are only two solutions that should always work: either don't upgrade Xamarin.iOS (or downgrade again), or switch to a newer Xcode (which may require a new macOS version, which may require new hardware if the new macOS version doesn't run on the hardware you have).

pcdus commented 5 years ago

How to downgrade Xamarin iOS?

rolfbjarne commented 5 years ago

@Goldstrike which version do you want?

koolham commented 5 years ago

I was able to uninstall Xamarin iOS by following this guide: https://docs.microsoft.com/en-us/xamarin/get-started/installation/uninstalling-xamarin#uninstallios

pcdus commented 5 years ago

@rolfbjarne I need one of the previous version: I've did 2 updates in 2 past days as I needed to test an app on Android 10. The first on monday that was probably available for a longer time, and the second one on yesterday.

I can't yet update XCode to version 11.1 as we encounter an issue with a webview related to iOS 13, but I would like to deploy our app on an iOS 13 device through my actual version of XCode (version 10.3).

For time, I can't do it as I updated Xamarin.iOS without updating XCode.

rolfbjarne commented 5 years ago

@Goldstrike this is the latest release before our Xcode 11 support: xamarin.ios-12.14.0.114.pkg. Just download, double click and install. You might have to downgrade Visual Studio for Mac too, but the easiest is to try and see if the version you have continues to work.

koolham commented 5 years ago

I was able to manually install the most recent previous version of xamarin.ios (12.16.1.24): https://dl.xamarin.com/MonoTouch/Mac/xamarin.ios-12.16.1.24.pkg without any issue.