Apple.Extras
Package
Section titled “Package”AvantiPoint.Apple.Extras
Secondary MSBuild SDK for native .NET iOS, MAUI, and Uno heads that host Apple companion projects. Baseline — not .
Add the SDK version to global.json and use ordinary ProjectReference items:
<Project Sdk="Microsoft.NET.Sdk;AvantiPoint.Apple.Extras"> <PropertyGroup> <TargetFramework>net10.0-ios</TargetFramework> <OutputType>Exe</OutputType> <PublishAot>true</PublishAot> </PropertyGroup> <ItemGroup> <ProjectReference Include="../MyApp.Watch/MyApp.Watch.csproj" /> <ProjectReference Include="../MyApp.Shared/MyApp.Shared.csproj" /> </ItemGroup></Project>- Uno: keep
Uno.Sdkfirst. - MAUI: retain
UseMauiandSingleProject.
Extras classifies companion references before restore, excludes Apple app projects on Android, and preserves ordinary shared-library references. On iOS it builds and embeds Watch and App Clip apps. App Clips must target net10.0-ios; native iOS, MAUI, and Uno parent simulator paths are verified.
Widget projects targeting net10.0-ios build through ordinary references into Microsoft’s native extension embedding/signing pipeline; C# widget configuration/timeline/UI verified with a native iOS host; MAUI/Uno Widget simulator acceptance also passes. Native macOS heads can reference net10.0-macos widgets (embed under Contents/PlugIns); C# AppKit head launches under Native AOT, but macOS system Widget execution is still unverified.
What Extras is not
Section titled “What Extras is not”Extras supplies build integration only. The iOS head keeps Microsoft’s Foundation/UIKit bindings; Extras does not inject a placeholder WidgetKit assembly or expose simulated ActivityKit/WidgetCenter operations. Real phone-side WidgetKit/ActivityKit integration remains future work.
Toolchain
Section titled “Toolchain”Acceptance toolchain called out in the Apple.Sdk README: Xcode 26.6 with .NET 10.0.302 / workload 10.0.302.0; package versions 26.6.x. Physical-device checks remain outstanding. Child restore must preserve shared-library target frameworks.
Incremental embedded products
Section titled “Incremental embedded products”Extras records Watch/App Clip/Widget bundles it embeds. Removing or renaming references prunes obsolete recorded products before signing; unrelated extensions stay untouched. Watch copies replace the previous child directory. Run Clean when adopting tracking over an older output tree. Output-directory changes never delete the previous directory.
