
Solana 모바일 앱 게시 방법 가이드
앱 스토어는 암호화폐 앱 게시자에게 우호적이지 않았습니다. Apple App Store 가이드라인은 앱 내 구매에 암호화폐를 사용하는 것을 금지하며, Apple을 통한 결제에는 30%의 수수료를 부과합니다. 블록체인을 통해 제공되는 앱 내 인센티브도 금지되어 개발자는 더 많은 제약을 받습니다. 이러한 요인 때문에 모바일 dApp을 출시하는 독립 개발자는 많지 않습니다. Solana Saga는 제한적인 정책 없이 소액 트랜잭션을 지원하는 수수료 없는 탈중앙화 앱 스토어인 dApp 스토어를 선보이며 모바일 dApp 업계에 변화를 일으켰습니다. Solana Mobile은 개발자가 기존 앱 스토어의 복잡성과 비용 없이 dApp을 개발하고 dApp 스토어에 게시할 기회를 제공합니다.
한편 사용자는 계속 보상을 받고 Saga만의 특별한 혜택을 누리고 있습니다. 새로운 dApp인 Chonky dApp도 dApp 스토어에 게시되었습니다. Helius 기반의 이 dApp은 출시 후 12시간 만에 7,500대 이상의 고유 기기에서 다운로드되었습니다. dApp 스토어에서만 제공되는 Chonky dApp은 Saga Genesis 지갑을 연결한 사용자가 Chonky 지분을 청구할 수 있게 해줍니다.
Chonky는 일주일 이내에 dApp 스토어 게시를 완료하며 이 가이드를 직접 검증했습니다. 자료 준비부터 dApp 스토어 제출까지 Solana Mobile dApp 게시 과정을 알아보세요. 이 가이드는 개발자가 게시 절차의 요구 사항을 이해하고 합리적인 게시 일정을 예상하는 데 도움을 줍니다.
자료
가이드를 따라 게시에 필요한 자료를 준비하고, 출시 가능한 Android Package Kit(APK)를 만드세요. 다음은 게시 단계에 필요한 자료를 수집하고 준비하기 위한 체크리스트입니다.
체크리스트
- 출시 준비가 완료된 빌드
- Android 빌드 도구
- 버전 정보
- Sentry와 같은 오류 보고 도구
- dApp 및 dApp 스토어 에셋
- Helius RPC URL
- 앱 서명 키
- 게시자 키
- 이용 약관 및 계약
- 라이선스
- 개인정보 처리방침
- 저작권
앱 스토어에 게시할 때는 게시자와 소비자에게 적용되는 이용 약관이 있습니다. 이는 사용자를 보호하고 게시자의 책임을 제한하는 데 중요합니다. Solana dApp 스토어 게시자는 게시 전에 게시자 정책, dApp 게시 계약, dApp 스토어 이용 약관에 동의해야 합니다.
게시자는 게시 과정에서 최종 사용자 라이선스 계약(EULA), 개인정보 처리방침, 저작권을 제공해야 합니다. 개발자는 이 문서를 준비해 온라인에 공개해야 합니다. 게시 과정에서 문서 링크가 필요합니다. 개인정보 처리방침 생성기, 저작권 고지 예시 같은 자료를 참고하거나 ChatGPT로 문서를 생성하세요.
준비
dApp 출시 준비는 배포용으로 구성된 빌드에서 시작합니다.
먼저 저장소를 정리하세요. 콘솔 로그를 제거하고 오류 보고 도구로 dApp을 모니터링하세요. 환경 변수도 검토하여 프로덕션 환경에 맞게 업데이트해야 합니다.
비밀 키를 .env 파일에 넣지 마세요!
다음으로 모든 에셋의 크기가 올바른지 확인하고 불필요한 파일을 제거하세요. dApp 스토어 미리보기 이미지는 1080p 해상도(1920px x 1080px)여야 하며 모두 가로 또는 세로 방향으로 통일해야 합니다. dApp 스토어 아이콘의 최대 크기는 512x512px이며 파일은 정사각형이어야 합니다.
dApp 스토어에 게시하려면 Solana 키페어가 필요합니다. solana-keygen으로 새 키페어를 생성하고 나중에 사용할 Solana를 충전하세요. 이 키페어를 안전하게 보관하세요. 키페어를 가진 사람은 누구나 dApp의 후속 릴리스를 dApp 스토어에 제출할 수 있습니다.
앱을 배포용으로 빌드할 때는 앱 키로 빌드에 서명해야 합니다. 새 앱에는 새로운 서명 키가 필요합니다. 디버그용 키를 재사용하지 마세요. 게시자 키와 마찬가지로 앱 키를 가진 사람은 누구나 앱을 업데이트할 수 있습니다. 터미널을 열고 다음 명령을 붙여 넣어 keystore으로 앱 서명 키를 생성하세요.
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 도구를 사용해야 합니다. 이 섹션에서는 dApp 스토어 게시를 위한 Solana Mobile의 설정 단계를 요약합니다.
- dApp 스토어 CLI 도구를 설치합니다.
config.yaml을 생성하고 검증합니다.- App, Publisher, Release NFT를 민팅합니다.
- 제출하고 게시합니다.
게시 디렉터리에서 다음 명령을 실행하세요.
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 빌드 도구의 경로를 사용해 다음 명령으로 게시 유효성을 확인하세요.
Android 빌드 도구를 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_toolsdApp 스토어에 게시하려면 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_urlApp NFT 생성 명령도 한 번만 실행하면 됩니다. 이 명령은 App NFT를 생성하고 민팅 주소를 config.yaml에 기록합니다.
npx dApp-store create app -k path_to_keypair -u mainnet_beta_rpc_url다음 명령을 사용하여 Release NFT를 생성하세요. dApp 스토어에 새 릴리스를 제출할 때마다 새로운 Release 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-policiesdApp을 dApp 스토어에 제출하면 Solana Mobile 팀이 게시자 섹션에 입력한 이메일 주소로 연락합니다. 또는 #dapp store 채널에서 Solana Mobile 팀에 문의하세요. 일반적인 검토 기간은 신규 앱 제출의 경우 2~3일, 업데이트의 경우 하루입니다.
출시 후 고려 사항
처음 게시하는 개발자에게 dApp 스토어 게시는 부담스러울 수 있지만 적절한 도구를 사용하면 절차를 간소화할 수 있습니다. Chonky dApp 출시 당시 저전력/배터리 절약 모드에서 지갑 모달이 작동하지 않거나 사용자가 서명 요청을 기다리지 못하고 취소하는 등의 모바일 문제가 있었습니다. 하지만 Saga 사용자는 대부분 첫 시도에 에어드롭을 청구할 수 있었습니다. dApp 출시 후에는 오류 로깅의 중요성이 더욱 커집니다. 오류를 실시간으로 모니터링하고 사용자 행동을 기록할 수 있기 때문입니다. 로깅 도구를 활용해 중요한 사용 정보를 확보하세요. 현재 Solana Mobile은 조회 수나 앱 다운로드 같은 데이터를 수집하지 않으므로 개발자가 앱에 적절한 로깅을 직접 구현해야 합니다.
모바일로 전환한다는 것은 사용자를 최우선으로 생각한다는 뜻입니다. 모바일 개발자는 UX 디자인부터 서명 워크플로까지 디지털 인터페이스를 탐색하는 모든 과정에서 매끄럽고 통합된 경험을 구현합니다. 사용자의 관심을 얻기 어려운 환경에서 앱은 사용자의 홈 화면에 자리 잡는 것을 목표로 합니다. 인기 앱 스토어의 제한적인 게시 정책 때문에 보상을 제공하는 암호화폐 애플리케이션을 모바일에 성공적으로 제공하는 앱은 많지 않습니다. Solana의 블록체인 기술은 대규모 사용자에게 보상을 제공할 수 있으며, Solana Mobile은 사람들이 암호화폐 네이티브 애플리케이션과 상호작용하는 방식의 최전선에 설 수 있는 유리한 위치에 있습니다. 2025년 Saga Chapter 2 출시를 앞둔 지금이 Solana dApp 스토어용 dApp을 개발하기에 가장 좋은 시기입니다.
이 가이드를 통해 독창적인 dApp을 만들 영감을 얻었다면 Helius 블로그를 구독하고 Solana 개발자 교육 글을 확인하세요. Saga를 보유하고 있으며 Solana Mobile Stack으로 개발을 시작하고 싶으신가요? Solana Mobile의 토큰 게이팅 튜토리얼은 Typescript에 익숙한 초보 Android 개발자가 따라 하기에 좋습니다. Discord의 Helius Hacker Society에 참여하여 Solana 모바일 개발자 콘텐츠를 계속 확인하세요. 질문이 있다면 Helius Forum에서 Helius가 도와드리겠습니다.
추가 자료
관련 아티클
Helius 구독하기
최신 Solana 개발 소식을 확인하고 새 게시물 알림을 받아보세요


