如何在Xamarin中实现Apple对共享扩展代码的指导?

时间:2016-09-16 20:18:00

标签: xamarin xamarin.ios ios-extensions

Apple Extension指南在Using an embedded framework to share code

上有此文档

我想在我的Extension和托管应用程序之间共享代码。如何在Xamarin应用程序中实现以下内容:

  • 仅需要App-Extension-Safe API
  • 您必须在“复制文件”构建阶段选择“框架”作为嵌入式框架的目标。

1 个答案:

答案 0 :(得分:0)

  

仅需要App-Extension-Safe API

目前Xamarin.iOS中的代码审核/分析或编译阶段没有任何内容可以警告或阻止扩展中不允许的API,

即。 healthkit.cs中有TODO个注释:

// FIXME NS_EXTENSION_UNAVAILABLE("Not available to extensions") ;

目前由C#开发人员遵循Apple的指南。显然,如果这是在扩展代码中,则以下内容会导致应用被拒绝:

var a = UIKit.UIApplication.SharedApplication;

但是Apple提供的某些API不可用于App Extensions 列表相当简洁,不允许:

个人为了代码共享目的,我将扩展项目的编译器指令添加到需要删除的条件编译代码中...(“NS_EXTENSION_UNAVAILABLE_IOS”,就像ObjC / Swift中可用的那样扩展项目)