Выпуск Visual Studio, как создавать

Обновлено: 21.11.2024

У Конана есть разные помощники для управления проектами на основе Visual Studio и MSBuild. В этом практическом руководстве показано, как объединить их для создания и использования пакетов, полностью основанных на Visual Studio. В этом руководстве используется VS2015, но можно использовать и другие версии.

Создание пакетов¶

Начните клонирование существующего примера репозитория, содержащего простую библиотеку «Hello World» и приложение:

Он содержит папку src с исходным кодом и папку сборки с решением Visual Studio 2015, содержащим 2 проекта: статическую библиотеку HelloLib и приложение Greet. Откройте его:

Вы должны иметь возможность выбрать подпроект Greet -> Установить как запускаемый проект . Затем создайте и запустите приложение с помощью Ctrl+F5. (Отладка -> Начать без отладки)

В репозитории уже есть рецепт conanfile.py:

В этом рецепте используется помощник сборки MSBuild() для сборки проекта sln. Если в нашем рецепте есть требования, помощник MSBUILD также позаботится о том, чтобы внедрить всю необходимую информацию из требований, включая каталоги, имена библиотек, определения, флаги и т. д., чтобы позволить нашему проекту найти объявленные зависимости.

Рецепт также содержит папку test_package с простым примером использования приложения. В этом примере приложение-потребитель использует cmake для сборки, но оно также может использовать Visual Studio. Мы оставили cmake, потому что он создается по умолчанию с помощью conan new, а также чтобы показать, что пакеты, созданные из проектов Visual Studio, также можно использовать с другими системами сборки, такими как CMake.

Если мы хотим создать пакет, рекомендуется закрыть VS IDE, удалить временные файлы сборки из VS, чтобы избежать проблем, а затем создать и протестировать пакет. Здесь используются системные значения по умолчанию, предполагая, что это Visual Studio 14, Release, x86_64:

Вместо того, чтобы закрывать IDE и запускать команду: git clean, мы могли бы также настроить более разумный фильтр в поле exports_sources, чтобы временные файлы сборки не экспортировались в задание.

Этот процесс можно повторить для создания и тестирования пакетов для разных конфигураций:

Вы можете перечислить различные созданные бинарные пакеты:

Загрузка двоичных файлов¶

Локально созданные пакеты уже можно загружать на пульт Conan. Если вы создали их с исходным именем пользователя «memsharded», как из клона git, вы можете сделать копию conan, чтобы поместить их под своим собственным именем пользователя. Конечно, вы также можете напрямую использовать свое имя пользователя в conan create.

Другой альтернативой является настройка разрешений на удаленном компьютере, чтобы разрешить загрузку пакетов с разными именами пользователей. По умолчанию артефакты будут делать это, а сервер Conan — нет: разрешения должны быть указаны в разделе [write_permissions] server.conf.

Повторное использование пакетов¶

Чтобы использовать существующие пакеты непосредственно из Visual Studio, Conan предоставляет генератор visual_studio. Давайте клонируем существующий проект «Chat», состоящий из статической библиотеки ChatLib, использующей предыдущий пакет «Hello World», и приложения MyChat, вызывающего библиотечную функцию ChatLib.

Как и выше, репозиторий содержит решение Visual Studio в папке сборки. Но если вы попытаетесь открыть его, он не загрузится. Это связано с тем, что он ожидает найти файл с необходимой информацией о зависимостях, поэтому сначала необходимо получить этот файл. Просто беги:

Вы увидите, что он создал два файла: файл conaninfo.txt, содержащий текущую конфигурацию зависимостей, и файл conanbuildinfo.props, содержащий свойства Visual Studio (такие как ), поэтому он может найти установленные зависимости. .

Теперь вы можете открыть IDE, собрать и запустить приложение (кстати, функция чата просто вызывает функцию hello() два или три раза, в зависимости от типа сборки):

Если вы хотите связать отладочную версию пакета Hello, просто установите его и измените тип сборки IDE:

Теперь вы можете закрыть IDE и очистить временные файлы:

Опять же, в репозитории есть рецепт пакета conanfile.py вместе с test_package . Рецепт почти идентичен предыдущему, только с двумя небольшими отличиями:

Это позволит нам создать и протестировать пакет библиотеки ChatLib:

Вы также можете повторить этот процесс для разных типов сборки и архитектуры.

Другие конфигурации¶

Приведенный выше пример работает как есть для VS2017, поскольку VS поддерживает обновление с предыдущих версий. В MSBuild() уже реализована такая функциональность, поэтому сборку и тестирование пакетов можно выполнять с помощью VS2017.

Если вам нужно выполнить сборку для более старых версий Visual Studio, это также возможно. В этом случае у вас, вероятно, будут разные проекты решений в папке сборки. Тогда рецепт должен только выбрать правильный, что-то вроде:

Наконец, мы использовали только один файл conanbuildinfo.props, который решение загружает на глобальном уровне. Вы также можете определить несколько файлов conanbuildinfo.props, по одному для каждой конфигурации (выпуск/отладка, x86/x86_64), и соответственно загрузить их.

На данный момент генератор visual_studio имеет единую конфигурацию (обычно рекомендуется использовать пакеты, содержащие артефакты отладки или выпуска). Он не поддерживает пакеты с несколькими конфигурациями (пакеты, содержащие артефакты отладки и выпуска). Пожалуйста, сообщите и оставьте отзыв (отправьте сообщение о проблеме в github), чтобы запросить эту функцию, если это необходимо.

В этой статье вы познакомитесь с несколькими параметрами, которые можно настроить при создании приложений с помощью Visual Studio. Вы создадите пользовательскую конфигурацию сборки, скроете определенные предупреждающие сообщения и увеличите выходные данные сборки для примера приложения.

Установите пример приложения

Создать пользовательскую конфигурацию сборки

При создании решения конфигурации сборки отладки и выпуска, а также их целевые платформы по умолчанию определяются для решения автоматически. Затем вы можете настроить эти конфигурации или создать свои собственные. Конфигурации сборки определяют тип сборки. Платформы сборки указывают операционную систему, на которую нацелено приложение для этой конфигурации. Дополнительные сведения см. в статьях Общие сведения о конфигурациях сборки, Общие сведения о платформах сборки и Практическое руководство. Настройка отладочной и выпускной конфигураций.

Вы можете изменить или создать конфигурации и параметры платформы с помощью диалогового окна Configuration Manager. В этой процедуре вы создадите конфигурацию сборки для тестирования.

Создать конфигурацию сборки

Откройте диалоговое окно диспетчера конфигураций.

В списке конфигурации активного решения выберите .

В диалоговом окне "Новая конфигурация решения" назовите новую конфигурацию "Тест", скопируйте параметры из существующей конфигурации "Отладка" и нажмите кнопку "ОК".

В списке активных платформ решений выберите .

В диалоговом окне "Новая платформа решения" выберите x64 и не копируйте настройки с платформы x86.

Нажмите кнопку ОК.

Конфигурация активного решения была изменена на "Тестирование" с установленной платформой активного решения x64.

Выберите Закрыть.

Вы можете быстро проверить или изменить активную конфигурацию решения с помощью списка "Конфигурации решения" на стандартной панели инструментов.

Создайте приложение

Далее вы создадите решение с пользовательской конфигурацией сборки.

Создайте решение

В строке меню выберите «Сборка» > «Создать решение» или нажмите Ctrl+Shift+B.

В окне вывода отображаются результаты сборки. Сборка прошла успешно.

Скрыть предупреждения компилятора

Далее мы добавим код, вызывающий генерацию предупреждения компилятором.

В проекте Visual Basic откройте файл ExpenseReportPage.xaml.vb. В пользовательском конструкторе Public Sub New. , добавьте следующий код: Dim i .

Создайте решение.

В окне вывода отображаются результаты сборки. Сборка прошла успешно, но были сгенерированы предупреждения:

Вы можете временно скрыть определенные предупреждающие сообщения во время сборки, чтобы они не загромождали выходные данные сборки.

В обозревателе решений выберите узел проекта верхнего уровня.

В строке меню выберите «Вид» > «Страницы свойств».

Откроется конструктор проектов.

Выберите страницу "Сборка", а затем в поле "Подавить предупреждения" укажите номер предупреждения 0168.

Создайте решение.

В окне вывода отображается только сводная информация по сборке.

Подавить все предупреждения сборки Visual Basic

В обозревателе решений выберите узел проекта верхнего уровня.

В строке меню выберите «Вид» > «Страницы свойств».

Откроется конструктор проектов.

На странице "Компиляция" установите флажок "Отключить все предупреждения".

Создайте решение.

В окне вывода отображается только сводная информация по сборке.

Отображать дополнительные сведения о сборке в окне вывода

Вы можете изменить количество информации о процессе сборки, отображаемой в окне вывода. Уровень детализации сборки обычно установлен на «Минимальный», что означает, что в окне «Вывод» отображается только сводка процесса сборки вместе с любыми предупреждениями или ошибками с высоким приоритетом. Вы можете отобразить дополнительные сведения о сборке в диалоговом окне "Параметры", "Проекты и решения", "Сборка и запуск".

Если вы отобразите больше информации, сборка займет больше времени.

Изменить объем информации в окне вывода

Откройте диалоговое окно "Параметры".

Команда

Выберите категорию "Проекты и решения", а затем выберите страницу "Сборка и запуск".

В списке подробностей выходных данных сборки проекта MSBuild выберите «Нормальный», а затем нажмите кнопку «ОК».

В строке меню выберите «Сборка» > «Очистить решение».

Создайте решение, а затем просмотрите информацию в окне вывода.

Информация о сборке включает время начала сборки (указывается в начале) и порядок обработки файлов. Эта информация также включает фактический синтаксис компилятора, который Visual Studio запускает во время сборки.

В сборке Visual Basic параметр /nowarn не содержит определенных предупреждений для исключения, поэтому предупреждения не отображаются.

Вы можете выполнить поиск содержимого окна вывода, если отобразите диалоговое окно "Найти" с помощью клавиш Ctrl+F.

Создать сборку релиза

Вы можете создать версию примера приложения, оптимизированную для его поставки. Для сборки выпуска вы укажете, что исполняемый файл копируется в сетевую папку перед запуском сборки.

Укажите сборку выпуска для Visual Basic

Откройте конструктор проектов.

Выберите страницу компиляции.

В списке "Конфигурация" выберите "Выпуск".

В списке "Платформа" выберите x86.

В поле Выходной путь сборки укажите сетевой путь.

Например, вы можете указать \\myserver\builds .

Может появиться окно с предупреждением о том, что указанная вами сетевая папка может быть ненадежной. Если вы доверяете указанному местоположению, нажмите кнопку ОК в окне сообщения.

Создайте приложение.

Откройте конструктор проектов.

Выберите страницу сборки.

В списке "Конфигурация" выберите "Выпуск".

В списке "Платформа" выберите x86.

В поле Выходной путь укажите сетевой путь.

Например, вы можете указать \\myserver\builds .

Может появиться окно с предупреждением о том, что указанная вами сетевая папка может быть ненадежной. Если вы доверяете указанному местоположению, нажмите кнопку ОК в окне сообщения.

На стандартной панели инструментов установите для параметра "Конфигурации решения" значение "Выпуск" и для "Платформы решений" значение "x86".

Во время типичного цикла разработки вы тестируете приложение с помощью флаттер-запуска в командной строке или с помощью параметров «Выполнить» и «Отладка» в вашей среде IDE. По умолчанию Flutter создает отладочную версию вашего приложения.

Если вы будете готовы подготовить релизную версию своего приложения, например, для публикации в Google Play Store, вам может помочь эта страница. Перед публикацией вы можете внести последние штрихи в свое приложение. На этой странице рассматриваются следующие темы:

Примечание. На этой странице [проект] относится к каталогу, в котором находится ваше приложение. Следуя этим инструкциям, замените [проект] каталогом вашего приложения.

Добавление значка запуска

При создании нового приложения Flutter оно имеет значок запуска по умолчанию. Чтобы настроить этот значок, вы можете проверить пакет flutter_launcher_icons.

Кроме того, вы можете сделать это вручную, выполнив следующие действия:

Ознакомьтесь с рекомендациями по дизайну значков продуктов в стиле Material Design.

В каталоге [project]/android/app/src/main/res/ поместите файлы значков в папки, названные с использованием квалификаторов конфигурации. Папки mipmap по умолчанию демонстрируют правильное соглашение об именах.

В AndroidManifest.xml обновите атрибут android:icon тега приложения, указав ссылки на значки из предыдущего шага (например, ).

Чтобы убедиться, что значок был заменен, запустите приложение и проверьте значок приложения в панели запуска.

Включение компонентов материала

Если ваше приложение использует представления платформы, вы можете включить материальные компоненты, выполнив действия, описанные в руководстве по началу работы для Android.

  1. Добавьте зависимость от материала Android в /android/app/build.gradle:

Чтобы узнать последнюю версию, посетите Google Maven.

  1. Установите светлую тему в /android/app/src/main/res/values/styles.xml:
  1. Установите темную тему в /android/app/src/main/res/values-night/styles.xml

Подписание приложения

Чтобы опубликовать приложение в Play Маркете, необходимо поставить цифровую подпись. Следуйте приведенным ниже инструкциям, чтобы подписать приложение.

В Android есть два ключа подписи: развертывание и загрузка. Конечные пользователи загружают .apk, подписанный «ключом развертывания». «Ключ загрузки» используется для аутентификации файлов .aab/.apk, загруженных разработчиками в Play Store, и повторно подписывается с помощью ключа развертывания один раз в Play Store.

  • Настоятельно рекомендуется использовать автоматическую облачную подпись для ключа развертывания. Дополнительную информацию см. в официальной документации Play Store.

Создать хранилище ключей для загрузки

Если у вас уже есть хранилище ключей, перейдите к следующему шагу. Если нет, создайте его одним из следующих способов:

Выполните в командной строке следующее:

В Mac/Linux используйте следующую команду:

В Windows используйте следующую команду:

Эта команда сохраняет файл upload-keystore.jks в вашем домашнем каталоге. Если вы хотите сохранить его в другом месте, измените аргумент, который вы передаете, на параметр -keystore. Однако держите файл хранилища ключей закрытым; не проверяйте его в общедоступном контроле версий!

Примечание:

Команда keytool может отсутствовать на вашем пути — это часть Java, которая устанавливается как часть Android Studio. Для конкретного пути запустите flutter doctor -v и найдите путь, напечатанный после «Java binary at:». Затем используйте этот полный путь, заменив java (в конце) на keytool . Если ваш путь включает имена, разделенные пробелами, такие как Program Files , используйте нотацию, соответствующую платформе для имен. Например, в Mac/Linux используйте Program\ Files , а в Windows — «Program Files».

Тег JKS -storetype требуется только для Java 9 или новее. Начиная с версии Java 9 тип хранилища ключей по умолчанию равен PKS12.

Ссылка на хранилище ключей из приложения

Предупреждение. Держите файл key.properties закрытым. не проверяйте его в общедоступной системе контроля версий.

Настроить вход в Gradle

Настройте Gradle для использования вашего ключа загрузки при создании приложения в режиме выпуска, отредактировав файл [project]/android/app/build.gradle.

Добавьте информацию о хранилище ключей из файла свойств перед блоком Android:

Загрузите файл key.properties в объект keystoreProperties.

Найдите блок buildTypes:

И замените его следующей информацией о конфигурации подписи:

Выпускные сборки вашего приложения теперь будут подписываться автоматически.

Примечание. Возможно, после изменения файла gradle вам потребуется выполнить чистку флаттера. Это предотвращает влияние кэшированных сборок на процесс подписания.

Уменьшение кода с помощью R8

R8 – это новое средство сжатия кода от Google, которое включается по умолчанию при сборке выпуска APK или AAB. Чтобы отключить R8, передайте флаг --no-shrink в файле flutter build apk или flutter build appbundle .

Примечание. Обфускация и минимизация могут значительно увеличить время компиляции приложения для Android.

Включение поддержки мультидекса

При написании больших приложений или использовании больших подключаемых модулей вы можете столкнуться с ограничением dex в Android, составляющим 64 000 методов, при таргетинге на минимальное количество API, равное 20 или ниже. Это также может произойти при запуске отладочных версий вашего приложения с помощью флаттер-запуска, в котором не включено сжатие.

Инструмент Flutter поддерживает простое включение multidex. Самый простой способ — выбрать поддержку multidex при появлении запроса. Инструмент обнаруживает ошибки сборки multidex и спрашивает, прежде чем вносить изменения в ваш проект Android. Включение позволяет Flutter автоматически зависеть от androidx.multidex:multidex и использовать сгенерированное приложение FlutterMultiDexApplication в качестве приложения проекта.

Примечание. Поддержка Multidex изначально включена при таргетинге min SDK 21+.

Вы также можете выбрать поддержку multidex вручную, следуя инструкциям Android и изменив конфигурацию каталога Android вашего проекта. Файл хранения multidex должен включать:

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

Просмотр манифеста приложения

Просмотрите файл манифеста приложения по умолчанию, AndroidManifest.xml , расположенный в [project]/android/app/src/main, и убедитесь, что значения верны, особенно следующие:

application Отредактируйте android:label в теге приложения, чтобы отразить окончательное название приложения. Uses-permission Добавьте разрешение android.permission.INTERNET, если вашему коду приложения требуется доступ в Интернет. Стандартный шаблон не включает этот тег, но разрешает доступ в Интернет во время разработки, чтобы обеспечить связь между инструментами Flutter и работающим приложением.

Просмотр конфигурации сборки Gradle

Проверьте файл сборки Gradle по умолчанию ( build.gradle ), расположенный в [project]/android/app, чтобы убедиться, что значения верны:

В блоке defaultConfig

applicationId Укажите окончательный уникальный идентификатор приложения. minSdkVersion Укажите минимальный уровень API, для которого предназначено приложение. По умолчанию это flutter.minSdkVersion. targetSdkVersion Укажите целевой уровень API, для которого предназначено приложение. По умолчанию это flutter.targetSdkVersion. versionCode Положительное целое число, используемое в качестве внутреннего номера версии. Этот номер используется только для определения того, является ли одна версия более поздней, чем другая, при этом более высокие числа указывают на более поздние версии. Эта версия не показывается пользователям. versionName Строка, используемая в качестве номера версии, отображаемого пользователям. Этот параметр можно указать как необработанную строку или как ссылку на строковый ресурс. buildToolsVersion Если вы используете подключаемый модуль Android для Gradle 3.0.0 или более поздней версии, ваш проект автоматически использует версию инструментов сборки по умолчанию, указанную в подключаемом модуле. Кроме того, вы можете указать версию инструментов сборки.

Под блоком android

Дополнительную информацию см. в разделе сборки на уровне модуля в файле сборки Gradle.

Создание приложения для выпуска

У вас есть два возможных формата выпуска при публикации в Play Маркете.

Примечание. Магазин Google Play предпочитает формат набора приложений. Дополнительную информацию см. в разделах Наборы приложений для Android и О наборах приложений для Android.

Предупреждение. Недавно команда Flutter получила несколько отчетов от разработчиков, указывающих на сбои приложений на определенных устройствах с Android 6.0. Если вы ориентируетесь на Android 6.0, выполните следующие действия:

Если вы создаете пакет приложений, отредактируйте android/gradle.properties и добавьте флаг: android.bundle.enableUncompressedNativeLibs=false .

Если вы создаете APK, убедитесь, что в теге android/app/src/AndroidManifest.xml не установлено значение android:extractNativeLibs=false.

Дополнительную информацию см. в общедоступном выпуске.

Создайте набор приложений

В этом разделе описывается, как создать комплект выпускного приложения. Если вы выполнили шаги подписания, пакет приложений будет подписан. На этом этапе вы можете подумать об обфускации своего кода Dart, чтобы затруднить обратный инжиниринг. Обфускация вашего кода включает в себя добавление пары флагов в вашу команду сборки и поддержку дополнительных файлов для распутывания трассировки стека.

Из командной строки:

  1. Введите cd [проект]
  2. Запустите сборку приложения flutter build
    (По умолчанию при запуске сборки flutter используется релизная сборка.)

Пакет выпуска для вашего приложения создается по адресу [project]/build/app/outputs/bundle/release/app.aab .

По умолчанию пакет приложения содержит ваш код Dart и среду выполнения Flutter, скомпилированную для armeabi-v7a (32-разрядная версия ARM), arm64-v8a (64-разрядная версия ARM) и x86-64 (64-разрядная версия x86).

Протестируйте набор приложений

Набор приложений можно протестировать несколькими способами — в этом разделе описаны два из них.

В автономном режиме с помощью инструмента Bundle

  1. Если вы еще этого не сделали, загрузите bundletool из репозитория GitHub.
  2. Создайте набор APK-файлов из набора App Bundle.
  3. Разверните APK-файлы на подключенных устройствах.

Онлайн через Google Play

  1. Загрузите свой пакет в Google Play, чтобы протестировать его. Вы можете использовать внутреннюю тестовую версию, а также альфа- или бета-каналы для тестирования пакета перед его выпуском в рабочую среду.
  2. Выполните следующие действия, чтобы загрузить пакет в Play Маркет.

Создать APK

Несмотря на то, что пакеты App Bundle предпочтительнее APK, есть магазины, которые еще не поддерживают App Bundle. В этом случае создайте выпуск APK для каждого целевого ABI (бинарного интерфейса приложения).

Если вы выполнили шаги по подписанию, APK будет подписан.На этом этапе вы можете подумать об обфускации своего кода Dart, чтобы затруднить обратный инжиниринг. Обфускация вашего кода включает в себя добавление пары флагов в вашу команду сборки.

Из командной строки:

  1. Введите cd [проект]
  2. Запустите flutter build apk --split-per-abi
    (По умолчанию команда flutter build --release .)

Эта команда создает три файла APK:

  • [проект]/build/app/outputs/apk/release/app-armeabi-v7a-release.apk
  • [проект]/build/app/outputs/apk/release/app-arm64-v8a-release.apk
  • [проект]/build/app/outputs/apk/release/app-x86_64-release.apk

Снятие флага --split-per-abi приводит к созданию толстого APK, содержащего ваш код, скомпилированный для всех целевых ABI. Такие APK-файлы больше по размеру, чем их разделенные аналоги, что приводит к тому, что пользователь загружает собственные двоичные файлы, которые не применимы к архитектуре их устройства.

Установить APK на устройство

Выполните следующие действия, чтобы установить APK на подключенное устройство Android.

Из командной строки:

  1. Подключите устройство Android к компьютеру с помощью USB-кабеля.
  2. Введите cd [проект].
  3. Запустите установку флаттера.

Публикация в магазине Google Play

Подробные инструкции по публикации вашего приложения в Google Play Store см. в документации по запуску Google Play.

Обновление номера версии приложения

Номер версии приложения по умолчанию — 1.0.0 . Чтобы обновить его, перейдите к файлу pubspec.yaml и обновите следующую строку:

Номер версии – это три числа, разделенные точками, например 1.0.0 в приведенном выше примере, за которыми следует необязательный номер сборки, например 1 в приведенном выше примере, разделенный знаком + .

В сборке Flutter можно переопределить и версию, и номер сборки, указав --build-name и --build-number соответственно.

В Android имя сборки используется как versionName, а номер сборки — как versionCode. Дополнительные сведения см. в разделе Версия вашего приложения в документации Android.

После обновления номера версии в файле pubspec запустите flutter pub get из верхней части проекта или используйте кнопку Pub get в своей среде IDE. При этом обновляются значения versionName и versionCode в файле local.properties, которые впоследствии обновляются в файле build.gradle при перестроении приложения Flutter.

Часто задаваемые вопросы по выпуску Android

Вот некоторые часто задаваемые вопросы о развертывании приложений для Android.

Когда мне следует создавать наборы приложений, а не APK-файлы?

Магазин Google Play рекомендует развертывать пакеты приложений поверх APK, так как они обеспечивают более эффективную доставку приложения пользователям. Однако, если вы распространяете свое приложение не через Play Маркет, APK может быть единственным вариантом.

Что такое толстый APK?

Полный APK – это отдельный APK, содержащий двоичные файлы для нескольких встроенных в него ABI. Это имеет то преимущество, что один APK работает на нескольких архитектурах и, таким образом, имеет более широкую совместимость, но у него есть недостаток, заключающийся в том, что размер его файла намного больше, что заставляет пользователей загружать и хранить больше байтов при установке вашего приложения. При создании APK-файлов вместо наборов App Bundle настоятельно рекомендуется создавать разделенные APK-файлы, как описано в разделе о создании APK-файла с использованием флага --split-per-abi.

Какие целевые архитектуры поддерживаются?

При создании приложения в режиме выпуска приложения Flutter можно скомпилировать для armeabi-v7a (32-разрядная версия ARM), arm64-v8a (64-разрядная версия ARM) и x86-64 (64-разрядная версия x86). Flutter в настоящее время не поддерживает сборку для x86 Android (см. проблему 9253).

Как подписать пакет приложений, созданный с помощью flutter build appbundle?

Как создать выпуск из Android Studio?

В Android Studio откройте существующую папку android/ в папке вашего приложения. Затем выберите build.gradle (модуль: приложение) на панели проекта:

Далее выберите вариант сборки. Нажмите «Сборка» > «Выбрать вариант сборки» в главном меню. Выберите любой из вариантов на панели «Варианты сборки» (отладка по умолчанию):

Результирующие файлы App Bundle или APK находятся в build/app/outputs в папке вашего приложения.

Если не указано иное, эта работа распространяется под лицензией Creative Commons Attribution 4.0 International License, а образцы кода распространяются под лицензией BSD.

Для большей части программирования в Visual Studio вам потребуется создавать и использовать "проекты". Проекты — это способ, с помощью которого Visual Studio организует и поддерживает различные файлы, используемые для программы.Некоторые из этих файлов являются файлами, которые вы создаете для своего кода C. Другие файлы включают «объектные» файлы, созданные компилятором при компиляции кода, «исполняемый» файл (*.exe), который Visual Studio создает путем связывания скомпилированного кода с другим кодом, библиотеками и т. д., которые необходимы для запуска. ваша программа, а также различные файлы, используемые Visual Studio для организации и отслеживания статуса вашего проекта.

Создание нового проекта

Чтобы создать новый проект:

  • Перейдите в меню "Файл" и выберите "Создать". Должно появиться диалоговое окно "Создать".
  • Диалоговое окно «Создать» должно иметь четыре вкладки («Файлы», «Проекты», «Рабочие пространства», «Другие документы»), расположенные в верхней части окна. Выберите вкладку Проекты. После этого должен появиться список типов проектов, которые можно создать.
  • Нажмите Консольное приложение Win32 в списке проектов.
  • Введите имя проекта в поле «Имя проекта» справа от диалогового окна.
  • Выберите каталог для проекта в поле Location справа от диалогового окна.
  • После того, как вы ввели имя и каталог для файла, нажмите кнопку ОК.
  • После того как вы нажмете кнопку OK, диалоговое окно должно отобразиться в виде набора вариантов для типа проекта или приложения. Выберите «Пустой проект», нажав кнопку рядом с этим вариантом.
  • Выбрав тип проекта, нажмите кнопку "Готово". Затем появится диалоговое окно с сообщением о том, что было создано пустое консольное приложение (без файлов кода C — вам нужно будет создать их позже).
  • Нажмите кнопку OK, чтобы закрыть диалоговое окно с новой информацией о проекте. Теперь вы готовы начать вводить свой программный код C.

Создание и добавление файлов в проект

Перед созданием и добавлением файлов в проект убедитесь, что вы создали проект и он открыт. Если проект не открыт, сначала откройте его.

Чтобы начать добавлять файлы в проект:

  • Перейдите в меню "Файл" и выберите "Создать". Должно появиться диалоговое окно "Создать".
  • Диалоговое окно «Создать» должно иметь четыре вкладки («Файлы», «Проекты», «Рабочие пространства», «Другие документы»), расположенные в верхней части окна. Выберите вкладку «Файлы». После этого должен появиться список типов проектов, которые можно создать.
  • Нажмите исходный файл C++ в списке типов файлов, которые можно создать.
  • Убедитесь, что флажок "Добавить в проект" установлен и название вашего проекта отображается в поле непосредственно под полем "Добавить в проект".
  • Введите имя файла в поле Имя файла. Обязательно используйте расширение «.c» для имени файла, например. грамм. "мой файл.c". Если вы не укажете расширение, файл будет создан как файл C++, что впоследствии может вызвать некоторые проблемы.
  • Нажмите кнопку OK после ввода необходимой информации для создания нового файла. Затем новый файл следует открыть и отобразить в окне Visual Studio, чтобы вы могли начать связывание информации.
  • Обязательно сохраняйте файл (с помощью команды «Сохранить» в меню «Файл») часто и по завершении ввода информации. Нажмите «Консольное приложение Win32» в списке проектов.

Создание исполняемого файла («Сборка» проекта)

Прежде чем вы сможете запустить программу, вы должны создать проект и добавить в него файлы. Для компиляции, компоновки и запуска, т.е. е. чтобы «создать» свою программу, сначала убедитесь, что проект открыт.

Читайте также: