Есть ли наиболее эффективный способ структурирования проекта Xamarin.Forms? - PullRequest
0 голосов
/ 24 октября 2019

Я создаю приложение, использующее Xamarin.Forms для развертывания на устройствах Android и iOS, и оно будет иметь два выпущенных варианта для каждой платформы. Я создал решение и добавил два проекта, Test.Free и Test.Pro, и оба эти проекта содержат версию приложения для Android и iOS.

Так выглядит на моем компьютереЯ думаю, это нормально.

This is how it looks on my computer, which I think is okay.

Вот так все выглядит в Visual Studio в обозревателе решений

This is how things look in Visual Studio on the Solution Explorer

Меня это беспокоит, так как проект Test.iOS находится в ветви проекта Test.Free, а он должен быть в Test.

Это только дваконфигурации, которые у меня есть в настоящее время.

These are the only two configurations I have currently.

Первый - это то, как он выглядел при добавлении новых проектов.

The first one is what it looked like when I added the new projects.

Моя цель состояла в том, чтобы иметь одну версию кода приложений, создать в ней базовое приложение и добавить его к Test.Free и Test.Pro версиям приложения, а затем перейти и настроитькаждый из этих проектов будет реализован после того, как будут добавлены все их общие характеристики.

Почему Test.iOS меньше Test.Free? Это результат настройки IDE, которую я пропустил?

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

Я должен был использовать разные конфигурации и иметь только один проект iOS и один проект Android и использовать условную компиляцию, когда код не совпадает.

А затем я обрабатываю имена пакетов, номера версий, значки и т. Д. в трубопроводе CI.

0 голосов
/ 24 октября 2019

Я полностью согласен с ответом Даниэля.

Итак, у вас должен быть один общий проект, один проект Android и один проект iOS.

Затем вы можете иметь несколько конфигураций, таких как (бесплатно илиPro или как вы хотите назвать это). В настройках вашего проекта добавьте условные символы компиляции, такие как FREE или PRO, и используйте их в коде, где вы хотите различать бесплатную и профессиональную версии. Пример:

public void SomeMethod()
{

#if FREE
            //do something
#elif PRO
            //require a license for example
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...