MarLoe.MAUI.Native.Embedded 0.1.5

There is a newer version of this package available.
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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MarLoe.MAUI.Native.Embedded" Version="0.1.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MarLoe.MAUI.Native.Embedded" Version="0.1.5" />
                    
Directory.Packages.props
<PackageReference Include="MarLoe.MAUI.Native.Embedded" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MarLoe.MAUI.Native.Embedded --version 0.1.5
                    
#r "nuget: MarLoe.MAUI.Native.Embedded, 0.1.5"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MarLoe.MAUI.Native.Embedded@0.1.5
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MarLoe.MAUI.Native.Embedded&version=0.1.5
                    
Install as a Cake Addin
#tool nuget:?package=MarLoe.MAUI.Native.Embedded&version=0.1.5
                    
Install as a Cake Tool

MAUI.Native.Embedded

NuGet version (MarLoe.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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • 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.

Version Downloads Last Updated
0.5.1 183 9/11/2025
0.4.1 171 9/9/2025
0.3.2 185 8/31/2025
0.3.1 233 8/26/2025
0.2.2 144 8/18/2025
0.2.1 158 8/13/2025
0.1.6 126 7/31/2025
0.1.5 117 7/31/2025
0.1.4 129 7/29/2025
0.1.3 137 7/28/2025