Eerste commit
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Razor">
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- De schermen zijn voor allebei dezelfde; alleen wat het toestel zelf doet verschilt.
|
||||
Zie Platforms\ en de #if-blokken in Toestelslot.cs en Toestelmeldingen.cs.
|
||||
|
||||
iOS staat standaard UIT, en dat is geen halfheid maar de enige werkbare stand. Zodra
|
||||
net10.0-ios in deze lijst staat, wil elke build - ook een build van alleen de APK - de
|
||||
iOS-werkbelasting en een Mac hebben. Op een machine zonder die twee struikelt dan het
|
||||
maken van de Android-app over iets wat er niets mee te maken heeft.
|
||||
|
||||
Aanzetten doe je per keer:
|
||||
|
||||
dotnet build -p:MetIos=true
|
||||
tools\Apk-maken.ps1 (blijft gewoon Android, hier verandert niets)
|
||||
|
||||
of blijvend, door MetIos in een Directory.Build.props of in de omgeving te zetten op de
|
||||
machine die wél aan een Mac hangt. Zie docs/iOS-app.md. -->
|
||||
<TargetFrameworks>net10.0-android</TargetFrameworks>
|
||||
<TargetFrameworks Condition="'$(MetIos)' == 'true'">$(TargetFrameworks);net10.0-ios</TargetFrameworks>
|
||||
|
||||
<OutputType>Exe</OutputType>
|
||||
<RootNamespace>MijnBesluit.App</RootNamespace>
|
||||
<UseMaui>true</UseMaui>
|
||||
<SingleProject>true</SingleProject>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
|
||||
<ApplicationTitle>MijnBesluit</ApplicationTitle>
|
||||
<ApplicationId>nl.mijnbesluit.app</ApplicationId>
|
||||
<ApplicationDisplayVersion>1.0</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>1</ApplicationVersion>
|
||||
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">24.0</SupportedOSPlatformVersion>
|
||||
|
||||
<!-- Op papier kan MAUI vanaf iOS 12.2, maar onder 13 zijn er meldingen van apps die op een
|
||||
echt toestel omvallen, en 15.0 is wat het sjabloon zelf gebruikt. Dat draait op een
|
||||
iPhone 6s en nieuwer - toestellen uit 2015. Lager gaan levert je een handvol toestellen
|
||||
op en een soort fouten dat je niet kunt nabootsen. -->
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">15.0</SupportedOSPlatformVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Het echte logo. Het pictogram is alleen het witte woordmerk op een doorzichtige
|
||||
achtergrond, met het logogroen eronder: zo maakt Android er zelf een rond, vierkant of
|
||||
druppelvormig pictogram van zonder dat er letters afvallen. Het woordmerk staat daarom
|
||||
op zeventig procent - alles buiten die cirkel kan een toestel wegsnijden.
|
||||
Het startscherm laat het hele logo zien op de rustige achtergrondkleur. -->
|
||||
<MauiIcon Include="Resources\AppIcon\appicon.png" Color="#C1D13F" />
|
||||
<MauiSplashScreen Include="Resources\Splash\splash.png" Color="#faf7f2" BaseSize="128,128" />
|
||||
<MauiFont Include="Resources\Fonts\*" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Sinds .NET 8 brengt <UseMaui>true</UseMaui> deze packages niet meer vanzelf mee.
|
||||
$(MauiVersion) volgt de werkbelasting die op deze machine staat, dus hier hoeft geen
|
||||
versienummer met de hand bijgehouden te worden. -->
|
||||
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Components.WebView.Maui" Version="$(MauiVersion)" />
|
||||
|
||||
<ProjectReference Include="..\MijnBesluit.AppUi\MijnBesluit.AppUi.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Meldingen op de telefoon, via Firebase.
|
||||
|
||||
Dit blok doet niets zolang google-services.json er niet staat, en gaat vanzelf aan zodra
|
||||
je hem uit de Firebase-console in Platforms\Android zet. Zo is er geen stap "en vergeet
|
||||
het csproj niet aan te passen" die je een keer overslaat, en blijft het project bouwen op
|
||||
een machine waar dat bestand niet staat.
|
||||
|
||||
De schakelaar FIREBASE hoort bij de #if in Toestelmeldingen.cs: zonder het package is die
|
||||
code niet te compileren, dus die staat uit tot het package er is.
|
||||
|
||||
Zie docs/Meldingen.md. -->
|
||||
<PropertyGroup Condition="Exists('$(MSBuildProjectDirectory)\Platforms\Android\google-services.json')">
|
||||
<DefineConstants>$(DefineConstants);FIREBASE</DefineConstants>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android' AND Exists('$(MSBuildProjectDirectory)\Platforms\Android\google-services.json')">
|
||||
<!-- Binding op com.google.firebase:firebase-messaging. Het versienummer moet passen bij de
|
||||
werkbelasting op deze machine; 125.1.1.1 hoort bij net10.0-android. Klaagt de build over
|
||||
versies, kijk dan in NuGet welke bij jouw .NET-versie hoort. -->
|
||||
<PackageReference Include="Xamarin.Firebase.Messaging" Version="125.1.1.1" />
|
||||
|
||||
<!-- Firebase's afhankelijkheden pinnen oudere AndroidX .Ktx-packages, terwijl MAUI de
|
||||
bijbehorende basispackages al nieuwer binnenhaalt. Dat gaf niet alleen de NU1608-
|
||||
waarschuwingen, maar ook een harde fout bij het dexen: sinds AndroidX Fragment 1.9.0
|
||||
zitten de Kotlin-uitbreidingen in het hoofdpackage zelf, dus kwam bijvoorbeeld
|
||||
androidx.fragment.app.FragmentManagerKt twee keer binnen: een keer uit fragment.aar
|
||||
en een keer uit het oude fragment-ktx.aar.
|
||||
|
||||
Door deze vijf expliciet op de versie te zetten die bij het al opgeloste basispackage
|
||||
hoort, zijn de .Ktx-packages leeg (ze verwijzen alleen nog naar het hoofdpackage) en
|
||||
is de dubbele klasse weg. Verhoogt een nieuwere MAUI de basispackages, dan komen de
|
||||
NU1608-waarschuwingen terug; dat is het signaal om deze nummers mee te verhogen, niet
|
||||
om het blok weg te halen. De nummers komen uit NuGet: Fragment.Ktx 1.9.0 bestaat,
|
||||
Collection.Ktx 1.6.0.1, en de drie Lifecycle-packages op 2.11.0.1. -->
|
||||
<PackageReference Include="Xamarin.AndroidX.Fragment.Ktx" Version="1.9.0" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.6.0.1" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.11.0.1" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData.Core.Ktx" Version="2.11.0.1" />
|
||||
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Process" Version="2.11.0.1" />
|
||||
<GoogleServicesJson Include="Platforms\Android\google-services.json" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user