This is a small Xamarin.iOS binding Proxy for Nuke. Since Nuke is a Swift library, which doesn't expose its code with @objc annotations, we cannot bind it directly and need a proxy for this.
This proxy provides enough API for Xamarin.Forms.Nuke to function. If you need more of Nukes API to be surfaced, PRs are welcome.
ImageCaching.Nuke supports .NET 9 and .NET 10 for ios and maccatalyst targets on ARM64, with a minimum iOS/Mac Catalyst version of 15.0.
Nuget:
Install-Package ImageCaching.Nuke
NuGet:
Install-Package https://www.nuget.org/packages/Sharpnado.Maui.Nuke
Install Xcode 27.1 and select it as your active developer directory. Xcode resolves the Nuke dependency through Swift Package Manager automatically.
Install .NET 10.0.403 SDK and ios and maccatalyst workloads:
dotnet workload install ios maccatalystRestore .NET tools:
``sh dotnet tool restore
Run the build script to generate xcframeworks and to update ApiDefinitions
```sh
bash build.sh
This creates Output/NukeProxy.xcframework with ARM64-only slices for iOS devices, iOS Simulator, and Mac Catalyst, targeting iOS/Mac Catalyst 15.0 or later.
To build the XCFramework without regenerating the binding definitions, run bash build.sh --skip-sharpie. CI uses this option to preserve the checked-in definitions.
Intel (
x86_64) Macs and simulators are no longer supported. The script verifies that each generated framework contains only ARM64.
CI uses the same script on the xcode-27 runner and explicitly selects Xcode 27.1. Xcode upgrades require changing the pinned XCODE_VERSION in .github/workflows/build.yml.
Open the NukeProxy.xcodeproj in Xcode and add more code to NukeProxy.swift.
Make sure to annotate correctly with @objc. Refer to the other code and Xamarin.iOS Swift Bindings. When done adding more code, ensure project builds:
- Run
bash build.shfrom the command line to rebuild the ARM64 XCFramework - Adjust the definitions and ensure the project builds
- Create a PR to this repository