这篇指南详细介绍了如何在Solana dApp商店发布移动应用,包括准备材料、构建、发布步骤与注意事项。文章强调了Solana Saga提供的低摩擦和无费用的发布方式,目的是帮助开发者顺利理解和进行发布流程,其中涵盖了必要文件、工具,以及错误监控的重要性。
8 分钟阅读
2024年1月23日
应用商店从来就没有对加密应用发布者友好过。 Apple App Store 的指导原则禁止使用加密货币进行应用内购买,并对通过 Apple 的支付收取 30% 的佣金率。开发者还受到禁止通过区块链提供应用内激励的限制。这些因素导致少数独立开发者发布移动 dApp。Solana Saga 通过引入 dApp 商店打破了移动 dApp 行业 - 这是一个无需费用的去中心化应用商店,可让微交易在没有限制政策的情况下进行。Solana Mobile 为开发者提供了构建 dApp 并发布到 dApp 商店的机会,无需传统应用商店相关的摩擦和成本。
同时,用户不断获得奖励并享受独特的 Saga 特权。一个全新的 dApp 已经发布到 dApp 商店 - The Chonky dApp。该 dApp 由 Helius 提供支持,在前十二个小时内从 dApp 商店下载次数超过 7,500 次设备。Chonky dApp 仅在 dApp 商店提供,允许用户在连接 Saga Genesis 钱包时声明 Chonky 的一部分。
在不到一周内发布到 dApp 商店,本指南经过 Chonky 的实际测试。了解发布 Solana Mobile dApp 的过程,从材料准备到提交给 dApp 商店。本指南旨在帮助开发者理解发布流程的要求,并估算设置合理发布期望的时间表。
根据本指南收集发布所需的材料,目标是生成一个发布准备好的 Android Package Kit (APK)。以下是发布步骤所需材料的检查列表。
在发布到应用商店时,有为发布者和消费者设定的条款和条件。这对保护用户和限制发布者的责任至关重要。Solana dApp 商店出版者在发布前同意dApp 发布政策、dApp 发布协议 和 dApp 商店使用条款。
在发布过程中,出版者必须提供最终用户许可协议 (EULA)、隐私政策 和 版权。作为开发者,获取这些文件并使其在线可用 - 在发布过程中需要文件的链接。查看诸如 隐私政策生成器、示例版权声明 或使用 ChatGPT 生成文件。
准备 dApp 上线的第一步是构建配置释放版本。
首先,清理代码库。删除控制台日志,并使用错误报告工具监控 dApp。还需要检查和更新环境变量以适应生产环境。
请勿将秘钥放入 .env 文件中!
接下来,确保所有资产大小正确,并移除不必要的文件。用于 dApp 商店的预览图像需要为 1080p 分辨率(1920px x 1080px),并且要全部为横向或竖向。对于 dApp 商店图标,最大尺寸为 512x512px,文件必须为正方形。
发布到 dApp 商店时,需要一个 Solana 密钥对。使用 solana-keygen 生成一个新的密钥对,并为后续操作提供 Solana 资金。保持此密钥对的安全。否则,拥有密钥对的任何人都可以向 dApp 商店提交后续的 dApp 发布。
当应用程序构建为发布时,必须使用 app key 签名构建。新应用需要新签名密钥;请勿使用与调试相同的密钥。和发布密钥一样,任何人都可以用 app key 更新应用。打开终端并粘贴以下命令,通过 keystore
生成 app 签名密钥。
代码
keytool -genkey -v -keystore release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
在当前目录创建 release-key.keystore
和 storePassword
(也用作 keyPassword
)。使用以下代码示例在 build.gradle
中创建发布 signingConfigs
和 buildTypes
。
代码
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 目录中,运行以下命令清理来自调试的重复资源并汇总以发布。
如果成功,命令将在 /android/app/build/outputs/apk 文件夹中生成 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 商店的设置步骤的摘要:
config.yaml
**。在发布目录中,运行以下命令:
代码
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
的空白参考,预填充版本可以在 dapp-publishing GitHub 上找到。
代码
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,点击 工具 下拉菜单,选择 SDK 管理器 找到路径。
导航到 SDK 工具 选项卡,点击 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 商店,将为 config.yaml
的每个部分创建 NFT。
首先创建 Publisher NFT。这是一次性操作,后续版本无需再次执行此步骤。将 mainnet_beta_rpc_url
替换为 Helius RPC URL。
代码
npx dApp-store create publisher -k path_to_your_keypair -u mainnet_beta_rpc_url
App NFT 的创建也是一次性的命令。该命令将创建 App NFT 并在 config.yaml
中记录铸造地址。
代码
npx dApp-store create app -k path_to_keypair -u mainnet_beta_rpc_url
使用以下命令创建 Release 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 团队将通过发布者部分中使用的电子邮件地址与你联系。或者,可以在 #dapp store 频道与 Solana Mobile 团队联系。新应用提交的典型审核时间为两到三天,而更新为一天。
对于首次发布者来说,发布到 dApp 商店的壮举可能会令人畏惧,但借助合适的工具,这个过程可以变得简单。在 Chonky dApp 发布时,除了像钱包弹出窗口在省电模式下无法工作和不耐烦的用户取消签名请求等移动故障外,Saga 用户能够在第一次尝试时成功领取空投。错误记录在 dApp 发布后证明其重要性,实时监控错误并记录用户行为。通过利用日志工具获取重要的使用信息。目前,Solana Mobile 不收集任何数据,比如浏览量和应用下载量,因此开发者负责在应用中实现适当的日志记录。
移动出行就是优先考虑用户。从用户体验设计到签名工作流程,移动开发者优化以在浏览数字界面时提供无缝集成体验。在注意力稀缺的世界中,应用程序旨在占据用户主屏幕的一个位置。由于流行应用商店的限制发布政策,成功将有益的加密应用带到移动设备的应用数量不多。Solana 的区块链技术使用户能够获得大量奖励,而 Solana Mobile 在人们与加密原生应用互动的最前沿处处于良好位置。在即将到来的 2025 年的 Saga Chapter 2 之前,现在是为 Solana dApp 商店构建 dApps 的最佳时机。
如果该食谱是创造独特 dApp 的灵感,订阅 Helius 博客,阅读 Solana 开发者教育的文章。拥有 Saga 并想开始使用 Solana Mobile Stack进行开发?Token-Gating on Solana Mobile 教程非常适合那些熟悉 Typescript 的首次 Android 开发者。加入 Helius Hacker Society 于 Discord 上,并关注更多 Solana 移动开发者内容。Helius 在 Helius Forum. 上随时为你解疑。
- 原文链接: helius.dev/blog/publishi...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!