Skip to content

Commit

Permalink
[Xamarin.Android.Build.Tasks] fix @(LibraryProjectZip) and NuGets (#7151
Browse files Browse the repository at this point in the history
)

Context: xamarin/GooglePlayServicesComponents#652

In .NET 6, `@(AndroidLibrary.Pack)` defaults to true (97190b6), while
`%(LibraryProjectZip.Pack)` was never set, and thus was false.  This
would be an issue if you migrated a project using `@(LibraryProjectZip)` and were
not relying on the default wildcards used by:

	<AndroidLibrary Include="**/*.aar" />

The result is that `.aar` files weren't included into the `.nupkg`,
which would result in subsequent build & packaging errors when
using the `.nupkg`, as the `.aar` was missing.

Set `%(LibraryProjectZip.Pack)`=True by default in .NET 6+, to ease
project migration from Classic Xamarin.Android to .NET 6.

I updated a test for this scenario and fixed some assertions that are
working since 2ca2a10 was merged.
  • Loading branch information
jonathanpeppers authored Jul 6, 2022
1 parent dbadf13 commit f149c25
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ This item group populates the Build Action drop-down in IDEs.
<Bind>true</Bind>
<Pack Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Pack>
</AndroidLibrary>
<LibraryProjectZip>
<Pack Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Pack>
</LibraryProjectZip>
<AndroidJavaSource>
<Bind Condition=" '$(UsingAndroidNETSdk)' == 'true' ">true</Bind>
</AndroidJavaSource>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -304,6 +304,10 @@ public String Say (String quote) {
MetadataValues = "Link=x86\\libfoo.so",
BinaryContent = () => Array.Empty<byte> (),
});
proj.OtherBuildItems.Add (new AndroidItem.LibraryProjectZip ("..\\baz.aar") {
WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar",
MetadataValues = "Bind=false",
});
proj.OtherBuildItems.Add (new AndroidItem.AndroidLibrary (default (Func<string>)) {
Update = () => "nopack.aar",
WebContent = "https://repo1.maven.org/maven2/com/balysv/material-menu/1.1.0/material-menu-1.1.0.aar",
Expand All @@ -318,16 +322,17 @@ public String Say (String quote) {
using var nupkg = ZipHelper.OpenZip (nupkgPath);
nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/{proj.ProjectName}.dll");
nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/{proj.ProjectName}.aar");

nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/sub/directory/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"contentFiles/any/{dotnetVersion}-android{apiLevel}.0/sub/directory/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/nopack.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/nopack.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"contentFiles/any/{dotnetVersion}-android{apiLevel}.0/nopack.aar");

//TODO: this issue is not fixed in net6.0-android MSBuild targets
if (dotnetVersion != "net6.0") {
//TODO: this issue is not fixed in net6.0-android MSBuild targets
nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/sub/directory/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"contentFiles/any/{dotnetVersion}-android{apiLevel}.0/sub/directory/bar.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/nopack.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, "content/nopack.aar");
nupkg.AssertDoesNotContainEntry (nupkgPath, $"contentFiles/any/{dotnetVersion}-android{apiLevel}.0/nopack.aar");
nupkg.AssertContainsEntry (nupkgPath, $"lib/{dotnetVersion}-android{apiLevel}.0/baz.aar");
}
}

Expand Down

0 comments on commit f149c25

Please # to comment.