The App Store requires the arm64_32 architecture when building with Xcode 10. Unfortunately we don't support arm64_32 quite yet, so we need to make the App Store think watch extensions were built with Xcode 9.4 in order to pass validation. Fixes https://github.com/xamarin/xamarin-macios/issues/4810.
This commit is contained in:
Родитель
6a460bb50b
Коммит
8077b509d0
|
@ -36,6 +36,8 @@ namespace Xamarin.iOS.Tasks
|
||||||
[Required]
|
[Required]
|
||||||
public bool Debug { get; set; }
|
public bool Debug { get; set; }
|
||||||
|
|
||||||
|
public bool UseFakeWatchOS4_3Sdk { get; set; }
|
||||||
|
|
||||||
public string DebugIPAddresses { get; set; }
|
public string DebugIPAddresses { get; set; }
|
||||||
|
|
||||||
public string ResourceRules { get; set; }
|
public string ResourceRules { get; set; }
|
||||||
|
@ -154,29 +156,65 @@ namespace Xamarin.iOS.Tasks
|
||||||
plist.SetIfNotPresent (ManifestKeys.CFBundleVersion, "1.0");
|
plist.SetIfNotPresent (ManifestKeys.CFBundleVersion, "1.0");
|
||||||
plist.SetIfNotPresent (ManifestKeys.CFBundleShortVersionString, plist.GetCFBundleVersion ());
|
plist.SetIfNotPresent (ManifestKeys.CFBundleShortVersionString, plist.GetCFBundleVersion ());
|
||||||
|
|
||||||
|
string dtCompiler = null;
|
||||||
|
string dtPlatformBuild = null;
|
||||||
|
string dtSDKBuild = null;
|
||||||
|
string dtPlatformName = null;
|
||||||
|
string dtPlatformVersion = null;
|
||||||
|
string dtXcode = null;
|
||||||
|
string dtXcodeBuild = null;
|
||||||
|
|
||||||
if (!SdkIsSimulator) {
|
if (!SdkIsSimulator) {
|
||||||
SetValue (plist, "DTCompiler", sdkSettings.DTCompiler);
|
dtCompiler = sdkSettings.DTCompiler;
|
||||||
SetValue (plist, "DTPlatformBuild", dtSettings.DTPlatformBuild);
|
dtPlatformBuild = dtSettings.DTPlatformBuild;
|
||||||
SetValue (plist, "DTSDKBuild", sdkSettings.DTSDKBuild);
|
dtSDKBuild = sdkSettings.DTSDKBuild;
|
||||||
}
|
}
|
||||||
|
|
||||||
plist.SetIfNotPresent ("DTPlatformName", SdkPlatform.ToLowerInvariant ());
|
dtPlatformName = SdkPlatform.ToLowerInvariant ();
|
||||||
if (!SdkIsSimulator)
|
if (!SdkIsSimulator)
|
||||||
SetValue (plist, "DTPlatformVersion", dtSettings.DTPlatformVersion);
|
dtPlatformVersion = dtSettings.DTPlatformVersion;
|
||||||
|
|
||||||
var sdkName = sdkSettings.CanonicalName;
|
var dtSDKName = sdkSettings.CanonicalName;
|
||||||
// older sdksettings didn't have a canonicalname for sim
|
// older sdksettings didn't have a canonicalname for sim
|
||||||
if (SdkIsSimulator && string.IsNullOrEmpty (sdkName)) {
|
if (SdkIsSimulator && string.IsNullOrEmpty (dtSDKName)) {
|
||||||
var deviceSdkSettings = currentSDK.GetSdkSettings (sdkVersion, false);
|
var deviceSdkSettings = currentSDK.GetSdkSettings (sdkVersion, false);
|
||||||
sdkName = deviceSdkSettings.AlternateSDK;
|
dtSDKName = deviceSdkSettings.AlternateSDK;
|
||||||
}
|
}
|
||||||
SetValue (plist, "DTSDKName", sdkName);
|
|
||||||
|
|
||||||
if (!SdkIsSimulator) {
|
if (!SdkIsSimulator) {
|
||||||
SetValue (plist, "DTXcode", AppleSdkSettings.DTXcode);
|
dtXcode = AppleSdkSettings.DTXcode;
|
||||||
SetValue (plist, "DTXcodeBuild", dtSettings.DTXcodeBuild);
|
dtXcodeBuild = dtSettings.DTXcodeBuild;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (UseFakeWatchOS4_3Sdk) {
|
||||||
|
// This is a workaround for https://github.com/xamarin/xamarin-macios/issues/4810
|
||||||
|
if (Framework == PlatformFramework.WatchOS) {
|
||||||
|
if (dtPlatformBuild != null)
|
||||||
|
dtPlatformBuild = "15T212";
|
||||||
|
if (dtPlatformVersion != null)
|
||||||
|
dtPlatformVersion = "4.3";
|
||||||
|
if (dtSDKBuild != null)
|
||||||
|
dtSDKBuild = "15T212";
|
||||||
|
if (dtSDKName != null)
|
||||||
|
dtSDKName = "watchos4.3";
|
||||||
|
if (dtXcode != null)
|
||||||
|
dtXcode = "0940";
|
||||||
|
if (dtXcodeBuild != null)
|
||||||
|
dtXcodeBuild = "9F1027a";
|
||||||
|
} else {
|
||||||
|
Log.LogWarning ("Can only fake the watchOS 4.3 SDK when building for watchOS.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SetValueIfNotNull (plist, "DTCompiler", dtCompiler);
|
||||||
|
SetValueIfNotNull (plist, "DTPlatformBuild", dtPlatformBuild);
|
||||||
|
SetValueIfNotNull (plist, "DTSDKBuild", dtSDKBuild);
|
||||||
|
plist.SetIfNotPresent ("DTPlatformName", dtPlatformName);
|
||||||
|
SetValueIfNotNull (plist, "DTPlatformVersion", dtPlatformVersion);
|
||||||
|
SetValue (plist, "DTSDKName", dtSDKName);
|
||||||
|
SetValueIfNotNull (plist, "DTXcode", dtXcode);
|
||||||
|
SetValueIfNotNull (plist, "DTXcodeBuild", dtXcodeBuild);
|
||||||
|
|
||||||
SetDeviceFamily (plist);
|
SetDeviceFamily (plist);
|
||||||
|
|
||||||
plist.SetIfNotPresent (ManifestKeys.MinimumOSVersion, minimumOSVersion.ToString ());
|
plist.SetIfNotPresent (ManifestKeys.MinimumOSVersion, minimumOSVersion.ToString ());
|
||||||
|
@ -235,6 +273,13 @@ namespace Xamarin.iOS.Tasks
|
||||||
return !Log.HasLoggedErrors;
|
return !Log.HasLoggedErrors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetValueIfNotNull (PDictionary dict, string key, string value)
|
||||||
|
{
|
||||||
|
if (value == null)
|
||||||
|
return;
|
||||||
|
SetValue (dict, key, value);
|
||||||
|
}
|
||||||
|
|
||||||
void SetRequiredArchitectures (PDictionary plist)
|
void SetRequiredArchitectures (PDictionary plist)
|
||||||
{
|
{
|
||||||
PObject capabilities;
|
PObject capabilities;
|
||||||
|
|
|
@ -24,6 +24,8 @@ Copyright (C) 2015-2016 Xamarin. All rights reserved.
|
||||||
<!-- This must be set before importing Microsoft.CSharp.targets -->
|
<!-- This must be set before importing Microsoft.CSharp.targets -->
|
||||||
<!-- See Xamarin.iOS.AppExtension.CSharp.targets for a detailed explanation of this variable -->
|
<!-- See Xamarin.iOS.AppExtension.CSharp.targets for a detailed explanation of this variable -->
|
||||||
<CopyNuGetImplementations Condition="'$(CopyNuGetImplementations)' == ''">true</CopyNuGetImplementations>
|
<CopyNuGetImplementations Condition="'$(CopyNuGetImplementations)' == ''">true</CopyNuGetImplementations>
|
||||||
|
|
||||||
|
<UseFakeWatchOS4_3Sdk Condition="'$(UseFakeWatchOS4_3Sdk)' == ''">True</UseFakeWatchOS4_3Sdk>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<Import Project="$(MSBuildThisFileDirectory)..\iOS\Xamarin.iOS.Common.targets" />
|
<Import Project="$(MSBuildThisFileDirectory)..\iOS\Xamarin.iOS.Common.targets" />
|
||||||
|
|
|
@ -701,6 +701,7 @@ Copyright (C) 2013-2016 Xamarin. All rights reserved.
|
||||||
SdkPlatform="$(_SdkPlatform)"
|
SdkPlatform="$(_SdkPlatform)"
|
||||||
SdkIsSimulator="$(_SdkIsSimulator)"
|
SdkIsSimulator="$(_SdkIsSimulator)"
|
||||||
DebugIPAddresses="$(_DebugIPAddresses)"
|
DebugIPAddresses="$(_DebugIPAddresses)"
|
||||||
|
UseFakeWatchOS4_3Sdk="$(UseFakeWatchOS4_3Sdk)"
|
||||||
>
|
>
|
||||||
</CompileAppManifest>
|
</CompileAppManifest>
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче