Caputchin
마켓플레이스 게임 개발

마켓플레이스 공개 실패 고치기

Publish or update 모달이 오류를 반환하거나, 공개 실패에 대해 우리에게서 이메일을 받으면, 아래에서 당신의 오류 코드를 찾고 고침을 따르세요. 고침을 당신의 저장소에 푸시한 뒤, Publish or update를 다시 클릭해 즉시 다시 확인하거나, 다음 일일 색인기 실행을 기다리세요.

여기 나열된 모든 실패는 당신이 저장소에서 고칠 수 있는 것입니다. 여기서 당신의 오류가 보이지 않으면, 덜 흔한 코드는 전체 공개 오류 레퍼런스를 확인하세요.

terms_accepted가 설정되지 않음

당신의 caputchin.json이 최상위에 "terms_accepted": true를 갖지 않을 때 이것을 봅니다.

  1. 당신 저장소의 caputchin.json을 여세요.
  2. 마켓플레이스 제출 약관을 읽으세요.
  3. 매니페스트의 최상위에 "terms_accepted": true를 더하세요.
  4. 커밋하고 푸시하세요.
  5. Publish or update를 다시 클릭하거나, 다음 일일 색인 실행을 기다리세요.

값은 리터럴 JSON 불리언 true여야 합니다. 문자열("true"), 숫자(1), 또는 필드 생략은 모두 받아들이지 않음으로 셉니다.

라이선스가 승인된 목록에 없음

license가 없거나, 잘못됐거나, 우리 승인된 목록 밖의 식별자를 댈 때 이것을 봅니다.

  1. 당신의 코드와 번들된 자산을 진짜로 덮는 SPDX 식별자를 승인된 목록에서 고르세요.
  2. caputchin.json을 열고 최상위에 license 필드를 설정하세요, 예를 들어 "license": "MIT".
  3. 당신의 코드가 듀얼 라이선스면, SPDX OR 표현식을 쓰세요(예: "MIT OR Apache-2.0"). 적어도 한 분기가 승인된 목록에 있어야 합니다.
  4. 당신의 코드가 MIT이지만 Creative Commons 자산을 번들하면, AND를 쓰세요(예: "MIT AND CC-BY-4.0"). 모든 분기가 승인된 목록에 있어야 합니다.
  5. 커밋, 푸시, 재시도.

당신의 프로젝트가 우리 승인된 목록에 없는 라이선스(가장 흔하게 GPL 계열, AGPL, 또는 LGPL)에 의존하면, 유일한 고침은 영향받는 구성 요소를 다시 라이선스하거나 제거하는 것입니다. 우리는 작성자별로 예외를 줄 수 없습니다.

당신의 저장소를 찾을 수 없음

우리 매니페스트 가져오기가 404를 반환할 때 이것을 봅니다.

흔한 원인과 고침:

  • 당신의 저장소가 비공개입니다. 공개로 만들거나, 색인에 나타나지 않도록 caputchin-game 토픽을 제거하세요.
  • 당신의 저장소에 caputchin-game GitHub 토픽이 없습니다. 저장소 페이지의 About 섹션을 통해 더하세요.
  • 당신의 저장소에 루트의 caputchin.json이 없습니다(또는, 컬렉션의 자식 게임의 경우, leaf 디렉터리의 caputchin.json이 없음).
  • 당신이 입력한 저장소 URL이 틀렸습니다. owner/name이나 전체 https://github.com/owner/name URL을 쓰세요.

caputchin.json을 당신의 저장소에 푸시한 다음, 재시도하세요.

매니페스트 구조가 잘못됨

entry, npm, games, marketplace.support, 또는 run.modules[0].name 같은 필드 이름으로 detail이 시작하는 manifest-error를 봅니다.

detail이 정확히 어느 필드가 틀렸는지 알려 줍니다:

  • entry: entry must be a clean relative path: 당신의 entry 값이 순회(../), 절대 슬래시, 쿼리 문자열, 또는 공백을 담습니다. dist/game.js 같은 깨끗한 저장소 상대 경로를 쓰세요.
  • npm: npm package name is malformed: 당신의 npm 필드가 유효한 npm 좌표가 아닙니다. name이나 @scope/name을, 알파벳 숫자 + 하이픈 + 점 + 밑줄만 써서 쓰세요.
  • games[i] must be a relative path inside the repo: 당신 컬렉션의 games 배열의 자식 경로가 저장소를 벗어납니다. ../external이나 /abs/path가 아니라 packages/leaf-memory 같은 경로를 쓰세요.
  • run.entry must be a clean relative path: entry와 같은 위생 규칙을, 선택적 분할 run 엔트리에 적용.
  • run.modules[i].name: 모듈 이름은 [a-zA-Z0-9_-]+\.(wasm|js)$와 일치해야 하고 entry.jsartifact.js일 수 없습니다.

이름 지정된 필드를 규칙대로 편집하고, 커밋, 푸시, 재시도하세요.

marketplace.author가 유효하지 않은 이메일을 가짐

marketplace.author.email이 있지만 정상 이메일 모양(@ 하나, 점 있는 도메인, 공백 없음)과 일치하지 않을 때 이것을 봅니다.

  1. caputchin.json을 여세요.
  2. marketplace.author.email을 찾으세요.
  3. 값을 진짜 이메일 주소로 고치거나(우리는 그것을 공개 실패 알림에만 씁니다) 필드를 통째로 제거하세요.
  4. 커밋, 푸시, 재시도.

공개 실패 알림을 받고 싶지 않으면 전체 marketplace.author 블록을 제거할 수도 있습니다.

당신의 run 산출물이 비결정론적임

우리 적합성 스모크가 당신 게임의 run(seed, trace) 함수를 돌렸는데 적합한 판정을 내지 못할 때 이것을 봅니다.

중요: 이것은 치명적 공개 실패가 아닙니다. 당신의 게임은 여전히 마켓플레이스 둘러보기에 나열되고 임베드될 수 있습니다. 그것은 그저 결정성 문제가 고쳐질 때까지 재생 불가로 보이고 사이트 키를 게이트할 수 없습니다.

흔한 원인:

  • 당신의 시뮬레이션이 Date.now(), performance.now(), Math.random(), 또는 다른 비결정론적 글로벌을 읽습니다.
  • 당신의 시뮬레이션이 우리가 리플레이 시점에 제공하지 않는 외부 상태(DOM, 네트워크, 스토리지)를 읽습니다.
  • 당신의 시뮬레이션이 런타임 사이에 다른 부동소수점 산술에 의존합니다.

시뮬레이션을 시드와 트레이스의 순수 함수가 되도록 고치고, 푸시, 재시도하세요. 결정성 규칙은 리플레이 계약을 보고, 결정론적 시드 가능한 RNG와 시계를 제공하는 선택적 엔진 키트를 고려하세요.

번들 가져오기 실패

entry 및/또는 npm이 고정한 번들 URL을 가져올 수 없거나, 비2xx를 반환하거나, 12MB를 넘을 때 이것을 봅니다.

  • 방금 새 버전을 푸시했다면: CDN이 아직 전파되지 않았을 수 있습니다. 1분 기다리고 재시도하세요.
  • 당신의 번들이 12MB를 넘으면: 자산을 다듬거나, run 선언으로 모듈로 나누거나, 큰 자산을 다른 전달 경로로 옮기세요.
  • 당신의 npm 패키지가 아직 공개되지 않았으면: 먼저 공개하세요; 우리는 공개되지 않은 버전을 가져올 수 없습니다.

공개 요청이 너무 많음

지난 60초 안에 열 개 넘는 요청을 제출했을 때 수동 공개 모달에서 이것을 봅니다.

60초 기다리고 재시도하세요. 제한을 올릴 방법은 없습니다; 그것은 엔드포인트를 남용에서 보호합니다.

알림 이메일 멈추기

공개 실패 이메일 받기를 멈추고 싶으면, 제출 약관 10절을 보세요. 수신자 주소는 매니페스트의 당신 marketplace.author.email입니다; 그것을 제거하거나 바꾸면 이메일이 멈춥니다.

함께 보기

이 페이지에서