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.43k stars 507 forks source link

"Framework Requires 'iphoneos14.5' which is not installed" #15922

Open mmholtman opened 1 year ago

mmholtman commented 1 year ago

Steps to Reproduce

Execute sharpie bind command on a '.framework' proj that requires 'iphoneos14.5' with Xcode 12.5 installed to support that SDK

Expected Behavior

Successfully binds the framework and generates an ApiDefinition.cs

Actual Behavior

"framework requires SDK 'iphoneos14.5' which is not installed. You may need a newer Xcode." despite the current xcode shows that it supports that sdk. (xcodebuild -showsdks)

chamons commented 1 year ago

Thanks for the feedback.

What Xcode do you have set on xcode-select -p? What does xcodebuild -showsdks show for the currently selected Xcode.

For sharpie to work, we need to match the framework SDK referenced, and that requires the correct Xcode being selected globally.

ghost commented 1 year ago

Hi @mmholtman. We have added the "need-info" label to this issue, which indicates that we have an open question for you before we can take further action. This issue will be closed automatically in 7 days if we do not hear back from you by then - please feel free to re-open it if you come back to this issue after that time.

mmholtman commented 1 year ago

@chamons for xcode-select -p -> Xcode 12.5.1 xcodebuild -showsdks -> iOS SDKs: iOS 14.5 -sdk iphoneos14.5

iOS Simulator SDKs: Simulator - iOS 14.5 -sdk iphonesimulator14.5

macOS SDKs: DriverKit 20.4 -sdk driverkit.macosx20.4 macOS 11.3 -sdk macosx11.3

tvOS SDKs: tvOS 14.5 -sdk appletvos14.5

tvOS Simulator SDKs: Simulator - tvOS 14.5 -sdk appletvsimulator14.5

watchOS SDKs: watchOS 7.4 -sdk watchos7.4

watchOS Simulator SDKs: Simulator - watchOS 7.4 -sdk watchsimulator7.4

tj-devel709 commented 1 year ago

@mmholtman Perhaps you could try updating to the latest Sharpie (aka.ms/objective-sharpie), Xcode / SDK and giving that a shot. We don't test our builds over a year old as often so this may help you.

petro2050 commented 1 year ago

@tj-devel709 @chamons @dalexsoto

I have this exact problem. xcodebuild -showsdks shows that I have 16.1 installed, but sharpie xcode -sdks contradicts this. It shows I have 15.4 installed. I'm running Xcode 14.1.

What's a workaround? I have the latest sharpie from aka.ms/objective-sharpie (btw sharpie update bombs).

timjamwoo commented 1 year ago

@petro2050 @mmholtman did you get anywhere with this? I have the same problem with the current version of sharpie from aka.ms/objective-sharpie. sharpie update is still broken too. I'm running sharpie bind with --sdk=iphoneos16.4 and I get the following response:

Done. Exiting with error code 1. error: MobileRTC: framework requires SDK 'iphoneos16.2' which is not installed. You may need a newer Xcode.

Xcode Version 14.3.1 (14E300c) xcodebuild -showsdks:

DriverKit SDKs:
    DriverKit 22.4                  -sdk driverkit22.4

iOS SDKs:
    iOS 16.4                        -sdk iphoneos16.4

iOS Additional SDKs:
    Asset Runtime SDK for macOS hosts targeting iOS 16.4    -sdk assetruntime.host.macosx.target.iphoneos16.4

iOS Simulator SDKs:
    Simulator - iOS 16.4            -sdk iphonesimulator16.4

macOS SDKs:
    macOS 13.3                      -sdk macosx13.3
    macOS 13.3                      -sdk macosx13.3

tvOS SDKs:
    tvOS 16.4                       -sdk appletvos16.4

tvOS Additional SDKs:
    Asset Runtime SDK for macOS hosts targeting tvOS 16.4   -sdk assetruntime.host.macosx.target.appletvos16.4

tvOS Simulator SDKs:
    Simulator - tvOS 16.4           -sdk appletvsimulator16.4

watchOS SDKs:
    watchOS 9.4                     -sdk watchos9.4

watchOS Additional SDKs:
    Asset Runtime SDK for macOS hosts targeting watchOS 9.4 -sdk assetruntime.host.macosx.target.watchos9.4

watchOS Simulator SDKs:
    Simulator - watchOS 9.4         -sdk watchsimulator9.4