НОВОЕ: Helius приобретает Light Protocol
Публикация мобильных приложений Solana: практическое руководство
Блог/Разработка

Публикация мобильных приложений Solana: практическое руководство

Инженер по интеграциям0xSolanaGirl в X
Чтение: 8 мин

Магазины приложений никогда не были дружелюбны к издателям криптоприложений. Правила Apple App Store запрещают использовать криптовалюту для покупок в приложениях и предусматривают комиссию 30% за платежи через Apple. Кроме того, разработчикам запрещено предлагать в приложениях вознаграждения через блокчейн. Из-за этих ограничений лишь немногие независимые разработчики выпускают мобильные dApp. Solana Saga меняет индустрию мобильных dApp благодаря магазину dApp — децентрализованному магазину приложений без комиссий, который поддерживает микротранзакции и не навязывает ограничительные правила. Solana Mobile позволяет разработчикам создавать dApp и публиковать их в магазине dApp без сложностей и затрат, характерных для традиционных магазинов приложений.

Тем временем пользователи продолжают получать вознаграждения и пользоваться уникальными преимуществами Saga. В магазине dApp появилось совершенно новое приложение — Chonky dApp. Этот dApp на базе Helius за первые двенадцать часов скачали из магазина dApp более чем на 7 500 уникальных устройств. Chonky dApp доступен только в магазине dApp и позволяет пользователям получить долю Chonky при подключении кошелька Saga Genesis.

Chonky опубликовал приложение в магазине dApp менее чем за неделю, проверив это руководство на практике. Узнайте, как опубликовать мобильное dApp для Solana: от подготовки материалов до отправки в магазин dApp. Это руководство поможет разработчикам понять требования процесса публикации, оценить сроки и сформировать реалистичные ожидания.

Материалы

Следуйте руководству и соберите материалы, необходимые для публикации. В результате вы должны получить готовый к выпуску пакет Android Package Kit (APK). Ниже приведен список материалов, которые нужно собрать и подготовить к публикации.

Контрольный список

  • Готовая к выпуску сборка
  • Android Build Tools
  • Информация о версии
  • Инструменты для отчетов об ошибках, например Sentry
  • Ресурсы dApp и магазина dApp
  • URL RPC Helius
  • Ключ подписи приложения 
  • Ключ издателя
  • Условия и соглашения 
  • Лицензия
  • Политика конфиденциальности
  • Уведомление об авторских правах

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

В процессе публикации издатель должен предоставить лицензионное соглашение с конечным пользователем (EULA), политику конфиденциальности и уведомление об авторских правах. Как разработчик, подготовьте эти документы и опубликуйте их в интернете — ссылки на них потребуются при публикации. Используйте такие ресурсы, как генераторы политик конфиденциальности и пример уведомления об авторских правах, либо создайте документы с помощью ChatGPT.

Подготовка

Подготовка dApp к запуску начинается со сборки, настроенной для выпуска. 

Сначала очистите репозиторий. Удалите вывод в консоль и подключите инструменты для отчетов об ошибках, чтобы отслеживать состояние dApp. Также проверьте и обновите переменные окружения для производственной среды.

Затем убедитесь, что все ресурсы имеют правильный размер, и удалите ненужные файлы. Изображения для предпросмотра в магазине dApp должны иметь разрешение 1080p (1920 × 1080 пикселей) и одинаковую ориентацию: горизонтальную или вертикальную. Максимальный размер значков для магазина dApp составляет 512 × 512 пикселей, а сам файл должен быть квадратным.

Для публикации в магазине dApp требуется пара ключей Solana. Создайте новую пару ключей с помощью solana-keygen и пополните ее в Solana для дальнейшего использования. Храните эту пару ключей в безопасности. Иначе любой, у кого она окажется, сможет отправлять в магазин dApp последующие версии приложения.

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

Код
keytool -genkey -v -keystore release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000

Создайте release-key.keystore и storePassword (также используется как keyPassword) в текущем каталоге. Используйте следующий пример кода, чтобы создать конфигурации выпуска signingConfigs и buildTypes в build.gradle.

Код
signingConfigs {
        release {
            storeFile file('release.keystore')
            storePassword 'password'
            keyAlias 'release-key'
            keyPassword 'password'
        }
    }
    buildTypes {
        debug {
            signingConfig signingConfigs.debug
        }
        release {
            signingConfig signingConfigs.release
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            debuggable false
        }
    }

В том же файле задайте locale(s) приложения и обновите versionCode и versionName. Это последняя возможность изменить applicationId.

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

Если команда выполнится успешно, APK будет создан в папке /android/app/build/outputs/apk.

Код
yarn react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/build/intermediates/res/merged/release/ && rm -rf android/app/src/main/res/drawable-* && rm -rf android/app/src/main/res/raw/* && cd android && ./gradlew assembleRelease && cd ..

Этапы публикации

Для публикации в магазине dApp потребуются инструменты CLI магазина. В этом разделе кратко изложены этапы настройки от Solana Mobile для публикации в магазине dApp:

  1. Установите инструменты CLI магазина dApp.
  2. Создайте и проверьте config.yaml.
  3. Выпустите NFT приложения, издателя и релиза.
  4. Отправьте и опубликуйте приложение.

В каталоге публикации выполните следующие команды:

Код
pnpm init
pnpm install --save-dev @solana-mobile/dApp-store-cli
npx dApp-store init

Команда инициализации создаст файл config.yaml. Он определяет, как dApp будет отображаться в магазине dApp. Необходимо заполнить три раздела: publisher, app и release.

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

Это пустой шаблон config.yaml. Предварительно заполненную версию можно найти в репозитории GitHub dapp-publishing.

Код
publisher:
  name:
  address:
  website:
  email:
  media:
    - purpose: icon
      uri:
app:
  name:
  address:
  android_package:
  urls:
    license_url:
    privacy_policy_url:
    copyright_url:
    website:
  media:
    - purpose: icon
      uri:
release:
  address:
  media:
    - purpose: icon
      uri:
    - purpose: screenshot
      uri:
    - purpose: screenshot
      uri:
    - purpose: screenshot
      uri:
  files:
    - purpose: install
      uri:
  catalog:
    en-US:
      name:
      short_description:
      long_description:
      new_in_version:
      saga_features:
solana_mobile_dApp_publisher_portal:
  google_store_package:
  testing_instructions:

Раздел выпуска можно изменять при обновлении приложения. Заполните поля мультимедиа, чтобы в магазине dApp отображались изображения для предпросмотра и значки. Для установки файла нужно указать путь к APK. Поместите эти файлы в репозиторий публикации и укажите относительные пути к ним в качестве URI. Описания приложения можно редактировать в каталоге, а такие поля, как google_store_package и saga_features, заполнять необязательно.

После заполнения config.yaml проверьте корректность публикации следующей командой, указав пути к паре ключей Solana и Android Build Tools.

Если Android Build Tools установлены вместе с Android Studio, путь можно найти в Android Studio: откройте раскрывающееся меню Tools и выберите SDK Manager.

Перейдите на вкладку SDK Tools и нажмите Android_SDK_Build_Tools 34, чтобы увидеть путь к инструментам сборки. Путь должен выглядеть так: C:\Users\user\AppData\Local\Android\Sdk.

Код
npx dApp-store validate -k path_to_keypair -b path_to_android_sdk_build_tools

Для публикации в магазине dApp создаются NFT для каждого раздела config.yaml

Начните с создания NFT издателя. Это однократная операция, поэтому для последующих выпусков этот шаг не потребуется. Замените mainnet_beta_rpc_url на URL RPC Helius.

Код
npx dApp-store create publisher -k path_to_your_keypair -u mainnet_beta_rpc_url

Создание NFT приложения также выполняется однократно. Эта команда создаст NFT приложения и запишет адрес минта в config.yaml.

Код
npx dApp-store create app -k path_to_keypair -u mainnet_beta_rpc_url

Создайте NFT релиза с помощью следующей команды. При отправке нового выпуска в магазин dApp необходимо создать новый NFT релиза. Адрес минта автоматически обновляется при каждом запуске команды.

Код
npx dApp-store create release -k path_to_keypair -b path_to_android_sdk_build_tools -u mainnet_beta_rpc_url

После успешного создания всех трех NFT приложение можно отправить в магазин dApp.

Опубликуйте приложение с помощью команды ниже и передайте флаги --requestor-is-authorized --complies-with-solana-dApp-store-policies, чтобы подтвердить соблюдение требований.

Код
npx dApp-store publish submit -k path_to_keypair -u mainnet_beta_rpc_url --requestor-is-authorized --complies-with-solana-dApp-store-policies

После отправки dApp в магазин dApp команда Solana Mobile свяжется с вами по адресу электронной почты, указанному в разделе издателя. Также можно обратиться к команде Solana Mobile в канале #dapp store. Обычно проверка нового приложения занимает два-три дня, а обновления — один день.

Выводы после запуска

Первая публикация в магазине dApp может показаться сложной задачей, но правильные инструменты значительно упрощают процесс. При запуске Chonky dApp возникли некоторые проблемы на мобильных устройствах: модальные окна кошелька не работали в режиме низкого энергопотребления, а нетерпеливые пользователи отменяли запрос на подпись. Несмотря на это, пользователи Saga смогли получить аирдроп с первой попытки. После запуска dApp особенно важным становится журналирование ошибок: оно позволяет отслеживать ошибки в реальном времени и фиксировать действия пользователей. Используйте инструменты журналирования, чтобы получать важную информацию об использовании приложения. Сейчас Solana Mobile не собирает данные о просмотрах и скачиваниях приложений, поэтому разработчик должен самостоятельно реализовать подходящее журналирование в своем приложении. 

Переход на мобильные устройства означает приоритет интересов пользователя. Мобильные разработчики оптимизируют все — от UX-дизайна до процессов подписания — и создают цельный, удобный интерфейс для работы с цифровыми продуктами. В мире, где внимание пользователей ограничено, приложения стремятся занять место на главном экране. Из-за строгих правил публикации в популярных магазинах лишь немногим приложениям удается перенести полезные криптопродукты на мобильные устройства. Блокчейн-технология Solana позволяет массово вознаграждать пользователей, а Solana Mobile имеет все шансы оказаться в авангарде взаимодействия людей с криптонативными приложениями. Поскольку выход Saga Chapter 2 ожидается в 2025 году, сейчас идеальное время для создания dApp для магазина Solana dApp.

Если это руководство вдохновило вас на создание уникального dApp, подпишитесь на блог Helius и ознакомьтесь со статьями по разработке на Solana. У вас есть Saga и вы хотите начать разработку с помощью Solana Mobile Stack? Руководство Управление доступом по токенам в Solana Mobile отлично подойдет Android-разработчикам, которые знакомы с Typescript и только начинают работать с этой платформой. Присоединяйтесь к Helius Hacker Society в Discord, чтобы получать новые материалы о мобильной разработке на Solana. Helius поможет вам получить ответы на любые вопросы на форуме Helius.

Дополнительные ресурсы

Подпишитесь на Helius

Следите за новостями разработки на Solana и получайте уведомления о наших публикациях

Увеличенное изображение