I am trying to bind a framework that has its own Info.plist which requires iphoneos8.2. Per the documentation
https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/tools/
I installed Xcode 6.2 which shows the iPhoneos8.2.sdk inside of Applications/Contents/... so that a sharpie command of
sharpie xcode -sdks -v
should return any sdk found at /Application/Xcode*.app. However, my output still just shows the 9.3 sdks. I also tried copying the 8.2 sdk into the Xcode.app/Contents/.. folders as suggested in other posts on SO to no avail. The output does see both Xcode 7.3.1 and 6.2 but it does not list sdk: iphoneos8.2 under the Xcode 6.2 only the macosx10.10 sdk. Like I said the 8.2 iphoneos8.2 is confirmed in the contents/developer/sdks folder for 6.2.
Does anyone know why the 8.2 sdk would not be found by sharpie?
So here's the short of why this doesn't appear.
Objective Sharpie enumerates /Applications/Xcode*.app
thus you would think it would pickup an old iphoneos
sdk. However it cannot do that because it has a dependency on clang
in which clang
has a minimum compatibility version against the respective iphoneos
, macosx
, and watchos
. Thus in this case, iphoneos
must be > 8.3 and any that meet this requirement will be detected against the sharpie xcode -sdks
command.
These of course come directly from clang:
http://clang.llvm.org/docs/AttributeReference.html#availability
ios
Apple’s iOS operating system. The minimum deployment target is specified by the -mios-version-min=*version*
or -miphoneos-version-min=*version*
command-line arguments.
macos
Apple’s Mac OS X operating system. The minimum deployment target is specified by the -mmacosx-version-min=*version*
command-line argument. macosx is supported for backward-compatibility reasons, but it is deprecated.
tvos
Apple’s tvOS operating system. The minimum deployment target is specified by the -mtvos-version-min=*version*
command-line argument.
watchos
Apple’s watchOS operating system. The minimum deployment target is specified by the -mwatchos-version-min=*version*
command-line argument.