엔드포인트

스토어 준비 가이드

앱이 Google Play와 App Store를 위해 아직 필요한 것과 순서대로 따라 할 단계를 알려 줘요.

GEThttps://www.setherion.com/api/v1/projects/{id}/store

요금제: 모든 요금제

에디터의 “Publish to app stores” 창이 보여 주는 내용을 데이터로 돌려줘요. 스토어에 무엇이 준비되었는지, 그리고 way를 보내면 Android와 iPhone 단계를 순서대로 알려 줘요. 창과 같은 도구로 앱의 저장된 코드를 읽기 때문에 창과 결과가 다를 수 없어요.

무료이고 크레딧이 들지 않아요. Viewer 권한이면 충분해요. 창과 전체 안내는 앱 스토어에 게시하기를 보세요.

요청

way 없이 보내면 두 방법을 먼저 비교할 수 있어요:

bash
curl https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/store \
  -H "Authorization: Bearer $SETHERION_API_KEY"

way를 함께 보내면 단계를 받아요:

bash
curl "https://www.setherion.com/api/v1/projects/7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14/store?way=easy" \
  -H "Authorization: Bearer $SETHERION_API_KEY"
파라미터의미
way선택 사항이에요. easy 또는 native예요. easy는 코드 없이 PWA Builder로 게시한 웹사이트를 스토어 패키지로 감싸요. native는 소유자가 컴퓨터에서 빌드하는 휴대폰 프로젝트로서의 앱 전체이며, 광고와 인앱 결제에 필요해요. 그 밖의 값은 400으로 응답해요.

앱에 코드가 있어야 해요. 앱이 게시되어 있으면 이 호출은 게시된 앱에 스토어 아이콘(/icon-512.png)도 요청하며, 최대 5초 기다려요.

way 없이 받는 응답

json
{
  "ok": true,
  "app": { "name": "Coffee shop", "url": "https://coffee-shop.setherion.app" },
  "ready": [
    {
      "item": "Published on the web",
      "state": "ok",
      "note": "https://coffee-shop.setherion.app"
    },
    {
      "item": "Store icon",
      "state": "ok",
      "note": "PNG in every size the stores ask for, made when the app is published."
    },
    {
      "item": "Privacy policy page",
      "state": "missing",
      "note": "Both stores ask for a link to one, and none was found in this app.",
      "fix": "Add a Privacy Policy page at /privacy, linked from the footer and from the sign-up screen. Say what the app keeps (the account email and what people enter), why, for how long, that nothing is sold, and how to ask for an account and its data to be deleted. Leave the owner's contact email as a placeholder to fill in."
    }
  ],
  "ways": {
    "easy": "Easy, no code: PWA Builder wraps the published website into store packages. About 2 steps in Setherion, the rest in the stores. Android is done from any computer; iPhone needs a Mac with Xcode.",
    "native": "Native, for developers: the whole app as a phone project (Capacitor). Needed for ads and in-app purchases. Built on the owner's computer (Android Studio; a Mac with Xcode for iPhone), or in the cloud by GitHub when pushed to GitHub: no Android Studio and no Mac."
  },
  "onlyInSetherion": "In Setherion: open the app, Publish, then \"Publish to app stores\". Only there: dropping PWA Builder's ZIP, adding Google Play's key, downloading the phone project or pushing it to GitHub, the store screenshots (every size both stores ask for, free), and the store guidelines check. The window ticks the steps it can see, and keeps the owner's own ticks."
}
필드타입의미
appobject앱의 name과, 앱의 주소인 url이에요. 게시되지 않았으면 이 값이 null이에요.
readylist준비된 것과 빠진 것이에요. 아래를 보세요.
waysobject방법마다 한 문장씩이에요. easy와 native예요.
onlyInSetherionstringSetherion 창에서만 할 수 있는 일이에요. 프로그램이 어디까지 할 수 있는지 알 수 있어요.

ready 목록

각 항목에는 item, state, note가 있고, 가끔 fix도 있어요.

필드의미
item검사하는 대상이에요.
stateok, missing, 또는 방금 검사할 수 없었다면 unknown이에요.
note이유를 알려 주는 한 문장이에요.
fix에디터가 추가할 수 있는 missing 항목에만 있어요. 수정은 크레딧을 쓰므로 소유자가 동의하면 앱 수정에 prompt로 보낼 텍스트예요.
나타날 수 있는 항목
  • Published on the web. 앱에 주소가 있으면 ok예요. 주소가 없으면 missing이에요. Easy 방법은 게시된 주소를 패키지로 만들기 때문에 먼저 게시해야 해요. Native 방법은 주소 없이도 작동해요.
  • Store icon. 앱이 게시된 뒤에만 나와요. 게시된 앱이 PNG 아이콘을 제공하면 ok, 제공하지 않으면 missing이에요(다시 게시하세요. 자기 도메인을 쓰는 앱은 지금은 SVG 아이콘만 있어요). 게시된 앱을 확인할 수 없었다면 unknown이에요.
  • Delete account button. 사람들이 앱에 회원가입할 수 있을 때만 나와요. Apple은 이런 앱에 이 버튼이 없으면 거부해요. missing에는 fix가 있어요.
  • Privacy policy page. 두 스토어 모두 개인정보 처리방침 링크를 요구해요. missing에는 fix가 있어요.

way가 있을 때의 응답

같은 필드와, 요청한 방법의 단계가 들어 있어요:

json
{
  "ok": true,
  "app": { "name": "Coffee shop", "url": "https://coffee-shop.setherion.app" },
  "ready": [ "... as above ..." ],
  "ways": { "easy": "...", "native": "..." },
  "way": "easy",
  "android": [
    {
      "step": 1,
      "title": "Make the Android package",
      "meta": "PWA Builder, about 2 minutes",
      "detail": "Open PWA Builder with the app's address filled in. Choose Package for stores, then Android, and download the ZIP.",
      "link": "https://www.pwabuilder.com/reportcard?site=https%3A%2F%2Fcoffee-shop.setherion.app"
    },
    {
      "step": 2,
      "title": "Link the app to your site",
      "meta": "So it opens without a browser's address bar",
      "detail": "In Setherion: open the app, Publish, then \"Publish to app stores\", Easy, Android, this step: drop the ZIP from PWA Builder there. ...",
      "done": false
    }
  ],
  "iphone": [ "... five steps, numbered the same way ..." ],
  "iphoneNotes": [
    "A Mac is needed. The Easy way builds the iPhone app on a Mac with Xcode. The Native way can build it on GitHub's Mac computers instead. Make sure you have one of the two before you pay Apple's $99 a year.",
    "To Apple this looks like a website. Nobody signs in, nothing is saved, and Apple turns down apps that are only a website (guideline 4.2). Sign-in, saved data and features people come back to make it an app. Run the store guidelines check on the first page before you send it."
  ],
  "onlyInSetherion": "..."
}

(여기서는 줄였어요. 실제 응답에는 모든 단계가 전부 들어 있어요.)

필드타입의미
waystring요청한 방법으로, easy 또는 native예요.
androidlistAndroid 단계를 순서대로 담아요.
iphonelistiPhone 단계를 순서대로 담아요.
iphoneNoteslist of stringsApple이 앱을 거부할 수 있는 이유예요. 각각 한 문장이고, 창에서 제목을 붙이는 항목에는 제목이 붙어 있어요.

각 단계에는 다음이 있어요:

필드타입의미
stepnumber목록에서의 순서로, 1부터 시작해요.
titlestring단계의 이름으로, 창에 표시되는 이름이에요.
metastring짧은 한 줄이에요. 걸리는 시간, 필요한 것, 또는 드는 비용을 적어요.
detailstring해야 할 일이에요. 실행할 명령어처럼 여러 줄이 들어갈 수 있어요.
linkstring할 수 있는 곳이 있을 때 그 주소예요. 없으면 빠져 있어요.
donebooleanEasy 방법의 Android에서 Setherion이 스스로 확인할 수 있는 단계에만 있어요. 사이트 연결 단계와 Google Play 키 단계예요. 알 수 없으면 빠져 있어요.
목록별 단계

Easy, Android: Android 패키지를 만들고, 앱을 내 사이트에 연결하고, Google Play 개발자 계정을 만들고, 올려서 테스트하고, Google Play 키를 추가하고, 스토어 페이지를 채우고 출시해요.

Easy, iPhone: Apple 개발자 계정을 만들고, iPhone 패키지를 만들고, 빌드해서 올리고, 내 iPhone에서 써 보고, 스토어 페이지를 채워 심사를 위해 보내요.

Native, Android: 프로젝트를 다운로드하고, 빌드하고, 서명하고, 올려서 테스트하고, 출시해요.

Native, iPhone: 프로젝트를 다운로드하고, 빌드하고, 서명해서 올리고, 내 iPhone에서 써 보고, 스토어 페이지를 채워 심사를 위해 보내요.

Native 방법에서는 앱이 광고를 표시하거나 무언가를 판매하면 detail의 명령어에 추가 설정 단계가 들어가고, 스토어 양식에 쓸 광고와 인앱 결제 안내도 들어가요.

오류

상태발생하는 경우
400way가 easy나 native가 아닌 다른 값이에요.
401키가 없거나 잘못되었거나 취소되었어요.
404그런 앱이 없거나, 내 키로는 그 앱을 열 수 없어요.
409앱에 아직 코드가 없어요. 먼저 Setherion에서 앱을 만드세요.
정확한 문장
상태error
400way is "easy" or "native".
404No such app on this account.
409This app has no code yet. Build it in Setherion first.

이 페이지가 도움이 됐나요?

커뮤니티 참여하기

질문, 아이디어, 그리고 다른 사람들이 만들고 있는 것.