Единая библиотека для Android и iOS - PullRequest
0 голосов
/ 07 мая 2018

Я новичок в Xamarin и разработал Xamarin Class Library для iOS и Android отдельно. В библиотеке есть некоторая бизнес-логика, которая запускает ViewController для iOS и Activity для Android. Сгенерированный двоичный файл для iOS и Android - iOS.dll и Android.dll соответственно. Затем эти библиотеки используются в собственных приложениях Xamarin.iOS и Xamarin.Android.

Есть некоторые моменты в бизнес-логике, которые одинаковы для Android и iOS. Есть ли способ разработать единую библиотеку, имеющую всю бизнес-логику с условными проверками для обеих платформ для разных логик.

Я посмотрел в Portable Class Library, но он просит включить Xamarin.Forms для ее использования. Я не использую Xamarin.Forms ни в одной части приложения. Я получаю приведенную ниже ошибку при использовании библиотеки

Код PCL

if (Device.OS == TargetPlatform.iOS)
{
    Lib_iOS.Helper helper = new Lib_iOS.Helper();
    helper.launchScreen(parameters, callback);
}
else if (Device.OS == TargetPlatform.Android)
{
    Lib_Android.Helper helper = new Lib_Android.Helper();
    helper.launchScreen(parameters, callback);
}

Error

Вы ДОЛЖНЫ вызывать Xamarin.Forms.Init (); до его использования.

Примечание. В рамках бизнес-требований мне нужно использовать только DLL в приложении для iOS и Android

1 Ответ

0 голосов
/ 07 мая 2018

Пожалуйста, ознакомьтесь с официальной статьей об опциях совместного использования кода: https://docs.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/code-sharing.

Если вы хотите использовать один и тот же код в зависимости от платформы, вы можете создать общий проект. Условия будут выглядеть как

#if __ANDROID__
...
#else
...
#endif
...