Skip to content

Commit

Permalink
Merge pull request #152 from dansiegel/manifests
Browse files Browse the repository at this point in the history
Templated App Manifests
  • Loading branch information
dansiegel authored Oct 26, 2020
2 parents b841b1d + 7d7bb3e commit d6dd4b2
Show file tree
Hide file tree
Showing 32 changed files with 402 additions and 242 deletions.
12 changes: 9 additions & 3 deletions build/azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ trigger:
branches:
include:
- master
- v*.*
paths:
exclude:
- theme/*
Expand Down Expand Up @@ -89,10 +90,10 @@ stages:
# appRootDirectory: E2E/E2EApp/E2EApp.iOS
# csprojName: E2EApp.iOS.csproj

- stage: Release
- stage: CIRelease
displayName: Deploy NuGet Artifacts
dependsOn: Test
condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), eq(variables['Build.SourceBranch'], 'refs/heads/v2.0')))
condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/master'), startsWith(variables['Build.SourceBranch'], 'refs/heads/v')))
jobs:
- deployment: SponsorConnect
displayName: Sponsor Connect
Expand All @@ -108,10 +109,15 @@ stages:
packagesToPush: '$(Pipeline.Workspace)/**/*.nupkg;$(Pipeline.Workspace)/**/*.snupkg'
nuGetFeedType: external
publishFeedCredentials: 'SponsorConnect'

- stage: Release
displayName: Deploy Release
dependsOn: CIRelease
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/heads/v'))
jobs:
- deployment: NuGet
displayName: NuGet.org
environment: NuGet
condition: and(succeeded(),eq(variables['Build.SourceBranch'], 'refs/heads/v2.0'))
strategy:
runOnce:
deploy:
Expand Down
7 changes: 7 additions & 0 deletions samples/BuildToolsSample/secrets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"AppDisplayName": "Build Tools",
"Message": "Hello Mobile.BuildTools from secrets.json",
"AppCenterId": "7c7d626e-2e35-47d1-9dbb-93324189b987",
"Backend": "http://awesomebackend.azurewebsites.com",
"ClientId": "8b3242c1-a254-4474-ae95-c7db8513b542"
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:controls="clr-namespace:BuildToolsSample.Controls"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
xmlns:controls="clr-namespace:BuildToolsSample.Controls"
xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
ios:Page.UseSafeArea="True"
ios:NavigationPage.PrefersLargeTitles="True"
xmlns:helpers="clr-namespace:BuildToolsSample.Helpers"
xmlns:essentials="clr-namespace:Xamarin.Essentials;assembly=Xamarin.Essentials"
xmlns:essentials="clr-namespace:Xamarin.Essentials;assembly=Xamarin.Essentials"
x:Class="BuildToolsSample.Views.HomePage">

<NavigationPage.TitleView>
Expand All @@ -19,47 +19,47 @@

<controls:PageTitleView Subtitle="Home">
<StackLayout HorizontalOptions="Center">
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Settings.Foo: " />
<Span Text="{x:Static helpers:Settings.Foo}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Name: " />
<Span Text="{x:Static essentials:AppInfo.Name}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Package Name: " />
<Span Text="{x:Static essentials:AppInfo.PackageName}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="App Version: " />
<Span Text="{x:Static essentials:AppInfo.VersionString}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Bundle Version: " />
<Span Text="{x:Static essentials:AppInfo.BuildString}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Settings.Foo: " />
<Span Text="{x:Static helpers:Settings.Message}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Name: " />
<Span Text="{x:Static essentials:AppInfo.Name}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Package Name: " />
<Span Text="{x:Static essentials:AppInfo.PackageName}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="App Version: " />
<Span Text="{x:Static essentials:AppInfo.VersionString}" />
</FormattedString>
</Label.FormattedText>
</Label>
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Bundle Version: " />
<Span Text="{x:Static essentials:AppInfo.BuildString}" />
</FormattedString>
</Label.FormattedText>
</Label>
</StackLayout>
</controls:PageTitleView>


</ContentPage>

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
namespace BuildToolsSample.Droid
{
[Application(
Label = "Prism Sample",
Icon = "@mipmap/icon"
)]
public class MainApplication : Application
Expand All @@ -15,4 +14,4 @@ public MainApplication(IntPtr javaReference, JniHandleOwnership transfer)
{
}
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.avantipoint.buildtoolssample">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29" />
<application android:label="Build Tools"></application>
<application android:label="$AppDisplayName$"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
</manifest>
</manifest>
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<key>MinimumOSVersion</key>
<string>10.0</string>
<key>CFBundleDisplayName</key>
<string>Build Tools</string>
<string>$AppDisplayName$</string>
<key>CFBundleIdentifier</key>
<string>com.avantipoint.buildtoolssample</string>
<key>CFBundleVersion</key>
Expand Down
5 changes: 4 additions & 1 deletion src/Mobile.BuildTools.Reference/Logging/ConsoleLogger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ namespace Mobile.BuildTools.Logging
{
internal class ConsoleLogger : ILog
{
public void LogError(string message) =>
Console.WriteLine(message);

public void LogErrorFromException(Exception ex) =>
Console.WriteLine(ex);

Expand All @@ -16,4 +19,4 @@ public void LogWarning(string message) =>
public void LogWarning(string formattedString, params object[] args) =>
Console.WriteLine(formattedString, args);
}
}
}
40 changes: 35 additions & 5 deletions src/Mobile.BuildTools/AndroidManifest.targets
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,32 @@
<UsingTask TaskName="Mobile.BuildTools.Tasks.TemplateManifestTask"
AssemblyFile="$(_MobileBuildToolsParentBuildTasksDll)"/>

<Target Name="_GatherManifests"
<PropertyGroup>
<BeforeGenerateAndroidManifest>
MobileBuildToolsInit;
$(BeforeGenerateAndroidManifest);
</BeforeGenerateAndroidManifest>
<AfterGenerateAndroidManifest>
HandleAndroidManifest;
AutomaticBuildVersioning;
$(AfterGenerateAndroidManifest);
</AfterGenerateAndroidManifest>
</PropertyGroup>

<Target Name="_MBTGatherManifests"
BeforeTargets="HandleAndroidManifest"
Condition="$(BuildToolsEnableTemplateManifests)">
<PropertyGroup>
<TemlateAppManifest>$(IntermediateOutputPath)android\AndroidManifest.xml</TemlateAppManifest>
<TemplateAppManifest>$(IntermediateOutputPath)android\AndroidManifest.xml</TemplateAppManifest>
<ProcessedAppManifest>$([System.IO.Path]::Combine('$(IntermediateOutputPath)', 'templated', 'AndroidManifest.xml'))</ProcessedAppManifest>
<VersionedAppManifest>$([System.IO.Path]::Combine('$(IntermediateOutputPath)', 'versioned', 'AndroidManifest.xml'))</VersionedAppManifest>
</PropertyGroup>

<ItemGroup>
<TemplatedManifest Include="$(TemplateAppManifest)" Visible="false" />
<TemplatedHandledManifest Include="$(ProcessedAppManifest)" Visible="false" />
<VersionedPlist Include="$(VersionedAppManifest)" Visible="false" />
</ItemGroup>
</Target>

<Target Name="HandleAndroidManifest"
Expand All @@ -18,11 +39,15 @@
ProjectName="$(MSBuildProjectName)"
ProjectDirectory="$(MSBuildProjectDirectory)"
SolutionDirectory="$(SolutionDir)"
Configuration="$(Configuration)"
IntermediateOutputPath="$(IntermediateOutputPath)"
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
ReferenceAssemblyPaths="$(_XATargetFrameworkDirectories)"
ManifestPath="$(TemplateAppManifest)"
Condition="$(BuildToolsEnableTemplateManifests)" />
Condition="$(BuildToolsEnableTemplateManifests)">
<Output TaskParameter="ProcessedManifest"
PropertyName="_AppManifest" />
</TemplateManifestTask>
</Target>

<Target Name="AutomaticBuildVersioning"
Expand All @@ -33,10 +58,15 @@
ProjectName="$(MSBuildProjectName)"
ProjectDirectory="$(MSBuildProjectDirectory)"
SolutionDirectory="$(SolutionDir)"
Configuration="$(Configuration)"
IntermediateOutputPath="$(IntermediateOutputPath)"
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
ManifestPath="$(TemplateAppManifest)"
ReferenceAssemblyPaths="$(_XATargetFrameworkDirectories)"
Condition="$(BuildToolsEnableAutomaticVersioning)" />
Condition="$(BuildToolsEnableAutomaticVersioning)" >
<!--<Output TaskParameter="VersionedManifest"
PropertyName="_AppManifest" />-->
</AutomaticBuildVersioningTask>
</Target>

</Project>
</Project>
84 changes: 84 additions & 0 deletions src/Mobile.BuildTools/AppleManifests.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
<Project>
<UsingTask TaskName="Mobile.BuildTools.Tasks.TemplateManifestTask"
AssemblyFile="$(_MobileBuildToolsParentBuildTasksDll)"/>

<!-- Collect Info.plist -->
<Target Name="_MBTGatherManifests"
BeforeTargets="HandleTokenizedInfoPlist"
DependsOnTargets="_DetectAppManifest">
<PropertyGroup>
<TemlateAppManifest>$(_AppBundlePath)Info.plist</TemlateAppManifest>
<ProcessedInfoPlist>$([System.IO.Path]::Combine('$(IntermediateOutputPath)', 'templated', 'Info.plist'))</ProcessedInfoPlist>
<VersionedInfoPlist>$([System.IO.Path]::Combine('$(IntermediateOutputPath)', 'versioned', 'Info.plist'))</VersionedInfoPlist>
</PropertyGroup>
<ItemGroup>
<TemplatedManifest Include="$(_AppManifest)" Visible="false" />
<TemplatedHandledManifest Include="$(ProcessedInfoPlist)" Visible="false" />
<VersionedPlist Include="$(VersionedInfoPlist)" Visible="false" />
</ItemGroup>

<!-- We only want to delete the Versioned PList so update the version -->
<Delete Files="@(VersionedPlist)" />
</Target>

<!-- Process Info.plist -->
<Target Name="HandleTokenizedInfoPlist"
BeforeTargets="_DetectSigningIdentity;AutomaticBuildVersioning"
DependsOnTargets="MobileBuildToolsInit"
Inputs="@(TemplatedManifest)"
Outputs="@(TemplatedHandledManifest)">
<TemplateManifestTask ConfigurationPath="$(BuildToolsConfigFilePath)"
ProjectName="$(MSBuildProjectName)"
ProjectDirectory="$(MSBuildProjectDirectory)"
SolutionDirectory="$(SolutionDir)"
IntermediateOutputPath="$(IntermediateOutputPath)"
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
ManifestPath="$(_AppManifest)"
OutputManifestPath="$(ProcessedInfoPlist)"
Condition="$(BuildToolsEnableTemplateManifests)">
<!-- <Output TaskParameter="ProcessedManifest"
PropertyName="_AppManifest" /> -->
</TemplateManifestTask>
</Target>

<!-- Version Info.plist -->
<Target Name="AutomaticBuildVersioning"
AfterTargets="HandleTokenizedInfoPlist;MobileBuildToolsInit"
Condition="$(BuildToolsEnableAutomaticVersioning) == 'True'">

<AutomaticBuildVersioningTask ConfigurationPath="$(BuildToolsConfigFilePath)"
ProjectName="$(MSBuildProjectName)"
ProjectDirectory="$(MSBuildProjectDirectory)"
SolutionDirectory="$(SolutionDir)"
IntermediateOutputPath="$(IntermediateOutputPath)"
TargetFrameworkIdentifier="$(TargetFrameworkIdentifier)"
ManifestPath="$(ProcessedInfoPlist)"
Condition=" $(BuildToolsEnableAutomaticVersioning) ">
<!-- OutputManifestPath="$(VersionedInfoPlist)" -->
<!-- <Output TaskParameter="VersionedManifest"
PropertyName="_AppManifest" /> -->
</AutomaticBuildVersioningTask>

</Target>

<!-- Update Includes -->
<Target Name="SetProcessedAppManifest"
AfterTargets="AutomaticBuildVersioning;HandleTokenizedInfoPlist"
BeforeTargets="_DetectAppManifest">
<PropertyGroup>
<__OutputMBTInfoPlist Condition=" Exists('$(ProcessedInfoPlist)') AND !Exists('$(VersionedInfoPlist)') ">$(ProcessedInfoPlist)</__OutputMBTInfoPlist>
<__OutputMBTInfoPlist Condition=" Exists('$(VersionedInfoPlist)') ">$(VersionedInfoPlist)</__OutputMBTInfoPlist>
</PropertyGroup>
<ItemGroup Condition=" $(__OutputMBTInfoPlist) != '' ">
<None Update="Info.plist" LogicalName="RawInfo.plist" />
<None Include="$(__OutputMBTInfoPlist)" LogicalName="Info.plist" Visible="false" />
</ItemGroup>
</Target>

<!-- Update APS Environment -->
<Target Name="SetApsEnvironmentToProduction"
AfterTargets="HandleTokenizedInfoPlist"
Condition=" '$(APSProductionEnvironment)' != '' And '$(APSProductionEnvironment)' != 'false' ">
<PropertyListEditor PropertyList="$(DeviceSpecificIntermediateOutputPath)Entitlements.xcent" Action="Set" Entry="aps-environment" Type="String" Value="production" />
</Target>
</Project>
5 changes: 3 additions & 2 deletions src/Mobile.BuildTools/BuildEnvironmentDump.targets
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@
AssemblyFile="$(_MobileBuildToolsParentBuildTasksDll)"/>

<Target Name="CIEnvironmentDump">
<BuildEnvironmentDumpTask ProjectDirectory="$(MSBuildProjectDirectory)" />
<BuildEnvironmentDumpTask ProjectDirectory="$(MSBuildProjectDirectory)"
Configuration="$(Configuration)" />
</Target>

</Project>
</Project>
Loading

0 comments on commit d6dd4b2

Please sign in to comment.