Как реализовать рекомендации Apple по общему коду расширения в Xamarin?

В руководстве по расширению Apple есть этот документ по Использование встроенной платформы для поделитесь кодом

Я хочу поделиться кодом между моим расширением и приложением хостинга. Как реализовать следующее в приложении Xamarin:

  • Требовать только безопасный для расширений приложений API
  • Вы должны выбрать «Frameworks» в качестве места назначения для встроенной платформы на этапе сборки «Копировать файлы».

person halfbit    schedule 16.09.2016    source источник


Ответы (1)


Требовать только безопасный для расширений приложений API

В настоящее время на этапе проверки/анализа или компиляции кода в Xamarin.iOS нет ничего, что предупредило бы или предотвратило использование API, которые не разрешены в расширениях.

т. е. в healthkit.cs есть TODO примечания:

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

В настоящее время разработчик C# должен следовать рекомендациям Apple. Очевидно, что следующее может привести к отклонению приложения, если оно находится в коде расширения:

var a = UIKit.UIApplication.SharedApplication;

Но список Некоторые API недоступны для расширений приложений, предоставленный Apple, довольно лаконичен в отношении того, что не разрешено:

Лично В целях совместного использования кода я добавляю директиву компилятора в свои проекты расширений для кода условной компиляции, который мне нужно удалить... ("NS_EXTENSION_UNAVAILABLE_IOS", точно так же, как это доступно в проектах расширений ObjC/Swift)

person SushiHangover    schedule 16.09.2016