用途:指导为 .NET MAUI 创建 iOS 精简绑定(Native Library Interop / Slim Bindings),即用一层薄的 Swift 或 Objective-C 封装只暴露所需原生 API,再生成 C# 绑定,便于创建与维护。
主要能力:覆盖从项目结构搭建、XcodeGen 生成 Xcode 工程、C# 绑定项目(IsBindingProject、XcodeProject 引用)、Swift 封装实现、Objective Sharpie 生成 ApiDefinition.cs,到在 MAUI 应用中引用与调用的完整流程;并给出原生 SDK 变更后的更新步骤与常见构建/运行时错误排查。
必要用法:安装 XcodeGen(brew install xcodegen)并创建目录结构;在 project.yml 中设置 BUILD_LIBRARY_FOR_DISTRIBUTION: YES、MACH_O_TYPE: staticlib、DEFINES_MODULE: YES、SWIFT_VERSION: "5.0",运行 xcodegen generate;绑定项目引用 Xcode 工程后执行 dotnet build;用 Objective Sharpie 生成绑定,例如 sharpie bind --output=sharpie-output --namespace=MyBinding --sdk=iphoneos18.0 --scope=Headers "path/to/MyBinding-Swift.h";发布构建用 dotnet build -c Release。依赖可经 CocoaPods(use_frameworks! :linkage => :static,pod install 后引用 .xcworkspace)、Swift Package Manager 或手动 xcframework。
适用场景:只需原生库部分功能、希望 SDK 升级时更易维护、偏好用 Swift/Objective-C 写封装、需要与破坏性变更隔离时推荐精简绑定;需要完整 API 面或面向第三方开发者时建议传统绑定。
限制:Swift 类须继承 NSObject 并加 @objc(ClassName),方法须 public 且 @objc(selector:),仅用 Objective-C 兼容类型,异步用 completion handler 并加 [Async],错误转 NSError;具体代码示例、完整脚本与详细排错见其参考文件。Android 绑定请使用 android-slim-bindings 技能。