Skip to content

Commit

Permalink
[One .NET] 'dotnet publish' should support $(AndroidPackageFormats) (#…
Browse files Browse the repository at this point in the history
…6403)

Fixes: #6393

We found that `dotnet build -c Release` doesn't copy `.apk` files to
`$(PublishDir)`.

In f9f879c, `$(AndroidPackageFormats)` was changed to default to
`aab;apk`. However, the `dotnet publish` target was not updated for
this change.

I updated an existing test, and made changes so all
`$(AndroidPackageFormats)` files will be copied.
  • Loading branch information
jonathanpeppers committed Oct 19, 2021
1 parent 9a19029 commit 8866030
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
Expand Up @@ -21,7 +21,9 @@ This file contains the implementation for 'dotnet publish'.

<Target Name="_CalculateAndroidFilesToPublish">
<ItemGroup>
<_AndroidFilesToPublish Include="$(OutputPath)*.$(AndroidPackageFormat)" />
<_AllPackageFormats Include="$(AndroidPackageFormat);$(AndroidPackageFormats)" />
<_AndroidPackageFormats Include="@(_AllPackageFormats->Distinct())" />
<_AndroidFilesToPublish Include="$(OutputPath)*.%(_AndroidPackageFormats.Identity)" />
<ResolvedFileToPublish Remove="@(ResolvedFileToPublish)" />
<ResolvedFileToPublish Include="@(_AndroidFilesToPublish)" RelativePath="%(FileName)%(Extension)" />
</ItemGroup>
Expand Down
Expand Up @@ -646,24 +646,24 @@ public void DotNetPublish ([Values (false, true)] bool isRelease)
proj.SetProperty (KnownProperties.RuntimeIdentifier, runtimeIdentifier);
var dotnet = CreateDotNetBuilder (proj);
Assert.IsTrue (dotnet.Publish (), "first `dotnet publish` should succeed");
dotnet.AssertHasNoWarnings ();

var publishDirectory = Path.Combine (FullProjectDirectory, proj.OutputPath, runtimeIdentifier, "publish");
string ext = isRelease ? "aab" : "apk";
var apk = Path.Combine (publishDirectory, $"{proj.PackageName}.{ext}");
var apkSigned = Path.Combine (publishDirectory, $"{proj.PackageName}-Signed.{ext}");
FileAssert.Exists (apk);
var apk = Path.Combine (publishDirectory, $"{proj.PackageName}.apk");
var apkSigned = Path.Combine (publishDirectory, $"{proj.PackageName}-Signed.apk");
// NOTE: the unsigned .apk doesn't exist when $(AndroidPackageFormats) is `aab;apk`
if (!isRelease) {
FileAssert.Exists (apk);
}
FileAssert.Exists (apkSigned);

Assert.IsTrue (dotnet.Publish (parameters: new [] { "AndroidPackageFormat=aab" }), $"second `dotnet publish` should succeed");
var aab = Path.Combine (publishDirectory, $"{proj.PackageName}.aab");
var aabSigned = Path.Combine (publishDirectory, $"{proj.PackageName}-Signed.aab");
// NOTE: $(AndroidPackageFormats) defaults to `aab;apk` in Release
if (isRelease) {
FileAssert.Exists (apkSigned);
} else {
FileAssert.DoesNotExist (apkSigned);
var aab = Path.Combine (publishDirectory, $"{proj.PackageName}.aab");
var aabSigned = Path.Combine (publishDirectory, $"{proj.PackageName}-Signed.aab");
FileAssert.Exists (aab);
FileAssert.Exists (aabSigned);
}
FileAssert.Exists (aab);
FileAssert.Exists (aabSigned);
}

[Test]
Expand Down

0 comments on commit 8866030

Please sign in to comment.