MarLoe.MAUI.Native.Embedded
0.1.5
See the version list below for details.
dotnet add package MarLoe.MAUI.Native.Embedded --version 0.1.5
NuGet\Install-Package MarLoe.MAUI.Native.Embedded -Version 0.1.5
<PackageReference Include="MarLoe.MAUI.Native.Embedded" Version="0.1.5" />
<PackageVersion Include="MarLoe.MAUI.Native.Embedded" Version="0.1.5" />
<PackageReference Include="MarLoe.MAUI.Native.Embedded" />
paket add MarLoe.MAUI.Native.Embedded --version 0.1.5
#r "nuget: MarLoe.MAUI.Native.Embedded, 0.1.5"
#:package MarLoe.MAUI.Native.Embedded@0.1.5
#addin nuget:?package=MarLoe.MAUI.Native.Embedded&version=0.1.5
#tool nuget:?package=MarLoe.MAUI.Native.Embedded&version=0.1.5
MAUI.Native.Embedded
Embed native iOS AppClips into you MAUI app
MAUI currently does not support AppClips for iOS. This NuGet will allow you to embed a natively build AppClips into you MAUI app.
This NuGet will build you native added projects for you. You do not need to do anything but adding it.
iOS AppClips
In you main MAUI project (.csproj) file you must add the following line(s);
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" />
</ItemGroup>
The Native.xcodeproj
can be named anything and placed anywhere as long as it can be referenced from you MAUI project. But I suggest putting it under Platforms/iOS
.
Scheme (optional)
Normally in Xcode projects, the main scheme is named the same as the Xcode project (.xcodeproj) file. Should this not be the case, it is possible to specify the exact scheme to use.
When building your embedded Xcode project the scheme used will be the same name as the Xcode project (.xcodeproj) file. In the example above, the scheme used if not specified will be Native
You can override schme using Scheme
:
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" Scheme="AnotherNative" />
</ItemGroup>
Configuration (optional)
Normally in Xcode projects, the configurations are called Debug
and Release
. This usually corrosponds to the configurations used in .NET and MAUI projects.
When building your embedded Xcode project the configuration names from your MAUI project will be used.
You can override this by using Configuraion
:
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" Configuration="AnotherConfiguration" />
</ItemGroup>
If the configuration names does not match, you e.g. do this
<ItemGroup>
<AppClips Condition="'$(Configuration)' == 'Debug'" Include="./Platforms/iOS/Native/Native.xcodeproj" Configuration="NativeDebug" />
<AppClips Condition="'$(Configuration)' == 'Release'" Include="./Platforms/iOS/Native/Native.xcodeproj" Configuration="NativeRelease" />
</ItemGroup>
SkipValidation (optional)
For AppClips the application identifier and the com.apple.developer.parent-application-identifiers in the AppClips entitlement must match the ApplicationId
of the MAUI app.
After the MAUI app has been build, it is verified that there is a match. If not the build will fail with an error 1013 ( I had to chose a number 😉. The validation process relies on a couple of command line tools to be present on the build system. If not, the validation and thus the build will fail.
You can skip validation by providing SkipValidation
:
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" SkipValidation="true" />
</ItemGroup>
NoSigning (optional)
Especially for CI builds, it can be difficult to get provisionings working.
You can skip signing by providing NoSigning
:
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" NoSigning="true" />
</ItemGroup>
Hints
Here are a few hints that might make your life easier.
Hint: Only add for release builds
When e.g. adding AppClips, you might want to only build and embed the native project when making release builds. Do this by adding a condtion:
<ItemGroup>
<AppClips Condition="'$(Configuration)' == 'Release'" Include="./Platforms/iOS/Native/Native.xcodeproj" />
</ItemGroup>
Hint: Custom Xcode project version
If your Xcode project uses a custom way of storing versions, you can make an custom update here.
All you need to do is to add this target to your project (.csproj)
<Target Name="CustomXcodeUpdateVersion" AfterTargets="_UpdateXcodeProjectVersion">
</Target>
TLDR;
Support AppClipp in your MAUI project by adding this to your project (.csproj) file:
<ItemGroup>
<AppClips Include="./Platforms/iOS/Native/Native.xcodeproj" />
</ItemGroup>
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.