Skip to content
This repository was archived by the owner on May 15, 2024. It is now read-only.

Commit d1d3b00

Browse files
authored
Merge pull request #2087 from xamarin/target-monoandroid13
Target MonoAndroid13.0
2 parents 48ebfcf + 5fb5402 commit d1d3b00

File tree

26 files changed

+238
-81
lines changed

26 files changed

+238
-81
lines changed

DeviceTests/DeviceTests.Android/DeviceTests.Android.csproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<OutputType>Library</OutputType>
99
<RootNamespace>DeviceTests.Droid</RootNamespace>
1010
<AssemblyName>XamarinEssentialsDeviceTestsAndroid</AssemblyName>
11-
<TargetFrameworkVersion>v10.0</TargetFrameworkVersion>
11+
<TargetFrameworkVersion>v13.0</TargetFrameworkVersion>
1212
<AndroidApplication>True</AndroidApplication>
1313
<AndroidUseIntermediateDesignerFile>true</AndroidUseIntermediateDesignerFile>
1414
<AndroidResgenClass>Resource</AndroidResgenClass>
@@ -19,6 +19,7 @@
1919
<AndroidUseAapt2>true</AndroidUseAapt2>
2020
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
2121
<AndroidSupportedAbis>armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis>
22+
<AndroidEnableMultiDex>true</AndroidEnableMultiDex>
2223
</PropertyGroup>
2324
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2425
<DebugSymbols>true</DebugSymbols>
@@ -57,13 +58,13 @@
5758
<Reference Include="System.Xml" />
5859
</ItemGroup>
5960
<ItemGroup>
60-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
61+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
6162
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
6263
<PackageReference Include="xunit" Version="2.4.1" />
6364
<PackageReference Include="xunit.runner.devices" Version="2.5.25" />
6465
<PackageReference Include="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.23212.1" />
65-
<PackageReference Include="Xamarin.AndroidX.MediaRouter" Version="1.2.0.1" />
66-
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0.6" />
66+
<PackageReference Include="Xamarin.AndroidX.MediaRouter" Version="1.3.1.1" />
67+
<PackageReference Include="Xamarin.AndroidX.Palette" Version="1.0.0.15" />
6768
</ItemGroup>
6869
<ItemGroup>
6970
<ProjectReference Include="..\..\Xamarin.Essentials\Xamarin.Essentials.csproj">

DeviceTests/DeviceTests.Android/Properties/AndroidManifest.xml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0.1.0" package="com.xamarin.essentials.devicetests" android:installLocation="auto">
3-
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="29" />
4-
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
3+
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="33" />
4+
<uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS" />
5+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
56
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
67
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
78
<uses-permission android:name="android.permission.BATTERY_STATS" />
89
<uses-permission android:name="android.permission.CAMERA" />
9-
<uses-permission android:name="android.permission.FLASHLIGHT" />
10+
<uses-permission android:name="android.permission.FLASHLIGHT" />
1011
<uses-permission android:name="android.permission.INTERNET" />
1112
<uses-permission android:name="android.permission.VIBRATE" />
1213
<uses-permission android:name="android.permission.READ_CONTACTS" />
@@ -41,5 +42,5 @@
4142
<action android:name="android.media.action.IMAGE_CAPTURE" />
4243
</intent>
4344
</queries>
44-
<application android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:theme="@style/MainTheme"></application>
45+
<application android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:theme="@style/MainTheme"></application>
4546
</manifest>

DeviceTests/DeviceTests.Shared/DeviceTests.Shared.csproj

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="MSBuild.Sdk.Extras/3.0.22">
22
<PropertyGroup>
3-
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">Xamarin.iOS10;MonoAndroid10.0;uap10.0.16299</TargetFrameworks>
4-
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">Xamarin.iOS10;MonoAndroid10.0;</TargetFrameworks>
3+
<TargetFrameworks Condition=" '$(OS)' == 'Windows_NT' ">Xamarin.iOS10;MonoAndroid13.0;uap10.0.16299</TargetFrameworks>
4+
<TargetFrameworks Condition=" '$(OS)' != 'Windows_NT' ">Xamarin.iOS10;MonoAndroid13.0;</TargetFrameworks>
55
<AssemblyName>XamarinEssentialsDeviceTestsShared</AssemblyName>
66
<RootNamespace>DeviceTests.Shared</RootNamespace>
77
<Product>$(AssemblyName) ($(TargetFramework))</Product>
@@ -13,6 +13,7 @@
1313
<DefineConstants>$(DefineConstants);</DefineConstants>
1414
<MDocDocumentationDirectory>$(MSBuildThisFileDirectory)..\docs\en</MDocDocumentationDirectory>
1515
<Configurations>Debug;Release</Configurations>
16+
<BuildWithMSBuildOnMono>true</BuildWithMSBuildOnMono>
1617
</PropertyGroup>
1718
<PropertyGroup Condition=" '$(Configuration)'=='Debug' ">
1819
<DebugType>full</DebugType>
@@ -23,7 +24,7 @@
2324
</PropertyGroup>
2425
<ItemGroup>
2526
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
26-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
27+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
2728
<PackageReference Include="xunit" Version="2.4.1" />
2829
<PackageReference Include="xunit.runner.devices" Version="2.5.25" />
2930
<PackageReference Include="UnitTests.HeadlessRunner" Version="2.0.0" />

DeviceTests/DeviceTests.UWP/DeviceTests.UWP.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@
114114
</PropertyGroup>
115115
<ItemGroup>
116116
<PackageReference Include="UnitTests.HeadlessRunner" Version="2.0.0" />
117-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
117+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
118118
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.9" />
119119
<PackageReference Include="xunit" Version="2.4.1" />
120120
<PackageReference Include="xunit.runner.devices" Version="2.5.25" />

DeviceTests/DeviceTests.iOS/DeviceTests.iOS.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
<Reference Include="Xamarin.iOS" />
7878
</ItemGroup>
7979
<ItemGroup>
80-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
80+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
8181
<PackageReference Include="xunit" Version="2.4.1" />
8282
<PackageReference Include="xunit.runner.devices" Version="2.5.25" />
8383
<PackageReference Include="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="1.0.0-prerelease.23212.1" />

DeviceTests/build.cake

Lines changed: 101 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#addin nuget:?package=Cake.AppleSimulator&version=0.2.0
22
#addin nuget:?package=Cake.Android.Adb&version=3.2.0
33
#addin nuget:?package=Cake.Android.AvdManager&version=2.2.0
4+
#addin nuget:?package=Cake.Android.SdkManager&version=3.0.2
45
#addin nuget:?package=Cake.FileHelpers&version=3.3.0
6+
#addin nuget:?package=Cake.Boots&version=1.1.0.712-preview2
57

68
var TARGET = Argument("target", "Default");
79

@@ -33,15 +35,24 @@ var TCP_LISTEN_HOST = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName())
3335

3436
var OUTPUT_PATH = MakeAbsolute((DirectoryPath)"../output/");
3537

36-
var ANDROID_HOME = EnvironmentVariable("ANDROID_HOME");
38+
// set up env
39+
var ANDROID_SDK_ROOT = GetAndroidSDKPath();
40+
var ANDROID_HOME = ANDROID_SDK_ROOT;
3741

38-
System.Environment.SetEnvironmentVariable("PATH",
39-
$"{ANDROID_HOME}/tools/bin" + System.IO.Path.PathSeparator +
40-
$"{ANDROID_HOME}/platform-tools" + System.IO.Path.PathSeparator +
41-
$"{ANDROID_HOME}/emulator" + System.IO.Path.PathSeparator +
42-
EnvironmentVariable("PATH"));
42+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/tools/bin", prepend: true);
43+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/cmdline-tools/5.0/bin", prepend: true);
44+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/cmdline-tools/7.0/bin", prepend: true);
45+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/cmdline-tools/latest/bin", prepend: true);
4346

44-
var RESTORE_CONFIG = MakeAbsolute((FilePath)"../devopsnuget.config").FullPath;
47+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/platform-tools", prepend: true);
48+
SetEnvironmentVariable("PATH", $"{ANDROID_SDK_ROOT}/emulator", prepend: true);
49+
50+
Information("Android SDK Root: {0}", ANDROID_SDK_ROOT);
51+
52+
string androidSdks = EnvironmentVariable("ANDROID_API_SDKS", "platform-tools,platforms;android-26,platforms;android-27,platforms;android-28,platforms;android-29,build-tools;29.0.3,platforms;android-30,build-tools;30.0.2,platforms;android-32,build-tools;32.0.0,platforms;android-33,build-tools;33.0.2");
53+
54+
Information("ANDROID_API_SDKS: {0}", androidSdks);
55+
string[] androidSdkManagerInstalls = androidSdks.Split(',');
4556

4657
// utils
4758

@@ -88,6 +99,28 @@ Task DownloadTcpTextAsync(int port, FilePath filename, Action waitAction = null)
8899
});
89100
}
90101

102+
void SetEnvironmentVariable(string name, string value, bool prepend = false)
103+
{
104+
var target = EnvironmentVariableTarget.Process;
105+
106+
if (prepend)
107+
value = value + System.IO.Path.PathSeparator + EnvironmentVariable(name);
108+
109+
Environment.SetEnvironmentVariable(name, value, target);
110+
111+
Information("Setting environment variable: {0} = '{1}'", name, value);
112+
}
113+
114+
string GetAndroidSDKPath()
115+
{
116+
var ANDROID_SDK_ROOT = Argument("android", EnvironmentVariable("ANDROID_SDK_ROOT") ?? EnvironmentVariable("ANDROID_HOME"));
117+
118+
if (string.IsNullOrEmpty(ANDROID_SDK_ROOT)) {
119+
throw new Exception("Environment variable 'ANDROID_SDK_ROOT' or 'ANDROID_HOME' must be set to the Android SDK root.");
120+
}
121+
122+
return ANDROID_SDK_ROOT;
123+
}
91124

92125
// iOS tasks
93126

@@ -100,7 +133,6 @@ Task("build-ios")
100133
c.Properties["Platform"] = new List<string> { "iPhoneSimulator" };
101134
c.Properties["BuildIpa"] = new List<string> { "true" };
102135
c.Properties["ContinuousIntegrationBuild"] = new List<string> { "false" };
103-
c.Properties["RestoreConfigFile"] = new List<string> { RESTORE_CONFIG };
104136
c.Targets.Clear();
105137
c.Targets.Add("Rebuild");
106138
c.BinaryLogger = new MSBuildBinaryLogSettings {
@@ -138,14 +170,71 @@ Task("test-ios-emu")
138170

139171
// Android tasks
140172

173+
Task("boots")
174+
.Does(async () =>
175+
{
176+
await Boots (Product.XamarinAndroid, ReleaseChannel.Stable);
177+
});
178+
179+
Task("provision-androidsdk")
180+
.Description("Install Xamarin.Android SDK")
181+
.Does(() =>
182+
{
183+
Information ("ANDROID_HOME: {0}", ANDROID_HOME);
184+
185+
if(androidSdkManagerInstalls.Length > 0)
186+
{
187+
Information("Updating Android SDKs");
188+
var androidSdkSettings = new AndroidSdkManagerToolSettings {
189+
SkipVersionCheck = true
190+
};
191+
192+
if(!String.IsNullOrWhiteSpace(ANDROID_HOME))
193+
androidSdkSettings.SdkRoot = ANDROID_HOME;
194+
195+
try{
196+
AcceptLicenses (androidSdkSettings);
197+
}
198+
catch(Exception exc)
199+
{
200+
Information("AcceptLicenses: {0}", exc);
201+
}
202+
203+
try{
204+
AndroidSdkManagerUpdateAll (androidSdkSettings);
205+
}
206+
catch(Exception exc)
207+
{
208+
Information("AndroidSdkManagerUpdateAll: {0}", exc);
209+
}
210+
211+
try{
212+
AcceptLicenses (androidSdkSettings);
213+
}
214+
catch(Exception exc)
215+
{
216+
Information("AcceptLicenses: {0}", exc);
217+
}
218+
219+
try{
220+
AndroidSdkManagerInstall (androidSdkManagerInstalls, androidSdkSettings);
221+
}
222+
catch(Exception exc)
223+
{
224+
Information("AndroidSdkManagerInstall: {0}", exc);
225+
}
226+
}
227+
});
228+
141229
Task("build-android")
230+
.IsDependentOn("provision-androidsdk")
231+
.IsDependentOn("boots")
142232
.Does(() =>
143233
{
144234
MSBuild(ANDROID_PROJ, c => {
145235
c.Configuration = "Debug"; // needs to be debug so unit tests get discovered
146236
c.Restore = true;
147237
c.Properties["ContinuousIntegrationBuild"] = new List<string> { "false" };
148-
c.Properties["RestoreConfigFile"] = new List<string> { RESTORE_CONFIG };
149238
c.Targets.Clear();
150239
c.Targets.Add("Rebuild");
151240
c.Targets.Add("SignAndroidPackage");
@@ -188,12 +277,14 @@ Task("test-android-emu")
188277
}
189278
Information("Waited {0} seconds for the emulator to boot up.", waited);
190279

280+
var targetArch = ANDROID_EMU_TARGET.Split(';').Last();
281+
191282
// Run the tests
192283
var resultCode = StartProcess("xharness", "android test " +
193284
$"--app=\"{ANDROID_APK_PATH}\" " +
194285
$"--package-name=\"{ANDROID_PKG_NAME}\" " +
195286
$"--instrumentation=\"{ANDROID_INSTRUMENTATION_NAME}\" " +
196-
$"--device-arch=\"x86\" " +
287+
$"--device-arch=\"{targetArch}\" " +
197288
$"--output-directory=\"{ANDROID_TEST_RESULTS_PATH}\" " +
198289
$"--verbosity=\"Debug\" ");
199290

@@ -225,7 +316,6 @@ Task("build-uwp")
225316
c.Properties["AppxBundlePlatforms"] = new List<string> { "x86" };
226317
c.Properties["AppxBundle"] = new List<string> { "Always" };
227318
c.Properties["AppxPackageSigningEnabled"] = new List<string> { "true" };
228-
c.Properties["RestoreConfigFile"] = new List<string> { RESTORE_CONFIG };
229319
c.Targets.Clear();
230320
c.Targets.Add("Rebuild");
231321
c.BinaryLogger = new MSBuildBinaryLogSettings {

Samples/Samples.Android/Samples.Android.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<AndroidManifest>Properties\AndroidManifest.xml</AndroidManifest>
1616
<MonoAndroidResourcePrefix>Resources</MonoAndroidResourcePrefix>
1717
<MonoAndroidAssetsPrefix>Assets</MonoAndroidAssetsPrefix>
18-
<TargetFrameworkVersion>v11.0</TargetFrameworkVersion>
18+
<TargetFrameworkVersion>v13.0</TargetFrameworkVersion>
1919
<AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
2020
<AndroidUseAapt2>true</AndroidUseAapt2>
2121
<AndroidHttpClientHandlerType>Xamarin.Android.Net.AndroidClientHandler</AndroidHttpClientHandlerType>
@@ -58,8 +58,8 @@
5858
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="4.5.3" />
5959
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
6060
<PackageReference Include="Microsoft.AppCenter.Distribute" Version="4.5.3" />
61-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
62-
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2083" />
61+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
62+
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2578" />
6363
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
6464
</ItemGroup>
6565
<ItemGroup>

Samples/Samples.Mac/Samples.Mac.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,8 @@
6161
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="4.5.3" />
6262
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
6363
<PackageReference Include="Microsoft.AppCenter.Distribute" Version="4.5.3" />
64-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
65-
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2083" />
64+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
65+
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2578" />
6666
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
6767
</ItemGroup>
6868
<ItemGroup>

Samples/Samples.UWP/Samples.UWP.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,8 @@
119119
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="4.5.3" />
120120
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
121121
<PackageReference Include="Microsoft.AppCenter.Distribute" Version="4.5.3" />
122-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
123-
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2083" />
122+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
123+
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2578" />
124124
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.9" />
125125
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
126126
</ItemGroup>

Samples/Samples.iOS/Samples.iOS.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,8 +80,8 @@
8080
<PackageReference Include="Microsoft.AppCenter.Analytics" Version="4.5.3" />
8181
<PackageReference Include="Microsoft.AppCenter.Crashes" Version="4.5.3" />
8282
<PackageReference Include="Microsoft.AppCenter.Distribute" Version="4.5.3" />
83-
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2083" />
84-
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2083" />
83+
<PackageReference Include="Xamarin.Forms" Version="5.0.0.2578" />
84+
<PackageReference Include="Xamarin.Forms.Visual.Material" Version="5.0.0.2578" />
8585
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
8686
</ItemGroup>
8787
<ItemGroup>

0 commit comments

Comments
 (0)