Caputchin
マーケットプレイスゲーム開発

マーケットプレイスの公開失敗を直す

公開または更新のモーダルがエラーを返すとき、または公開失敗について私たちからメールを受けたとき、下であなたのエラーコードを見つけ、修正に従ってください。修正をリポジトリにプッシュしたら、公開または更新をもう一度クリックして即座に再チェックするか、次の日次のインデクサーの実行を待ってください。

ここに挙がるすべての失敗は、あなたがリポジトリで直せるものです。あなたのエラーがここにないなら、より珍しいコードについて 完全な公開エラーリファレンス を確認してください。

terms_accepted が設定されていない

caputchin.json がトップレベルに "terms_accepted": true を持たないとき、これが見えます。

  1. リポジトリの caputchin.json を開きます。
  2. マーケットプレイス投稿規約 を読みます。
  3. マニフェストのトップレベルに "terms_accepted": true を追加します。
  4. コミットしてプッシュします。
  5. 公開または更新をもう一度クリックするか、次の日次のインデックスの実行を待ちます。

値はリテラルの JSON のブール値 true でなければなりません。文字列("true")、数値(1)、またはフィールドの省略は、すべて非承認として数えられます。

ライセンスが承認された一覧にない

license が欠けている、不正、または私たちの 承認された一覧 の外の識別子を名指すとき、これが見えます。

  1. あなたのコードとバンドルされたアセットを本当にカバーする SPDX 識別子を、承認された一覧から選びます。
  2. caputchin.json を開き、トップレベルに license フィールドを設定します。たとえば "license": "MIT"
  3. コードがデュアルライセンスなら、SPDX の OR 式を使います(例 "MIT OR Apache-2.0")。少なくとも 1 つの枝が承認された一覧になければなりません。
  4. コードが MIT だが Creative Commons のアセットをバンドルするなら、AND を使います(例 "MIT AND CC-BY-4.0")。すべての枝が承認された一覧になければなりません。
  5. コミット、プッシュ、再試行。

あなたのプロジェクトが、私たちの承認された一覧にないライセンス(最もよくあるのは GPL ファミリー、AGPL、LGPL)に依存するなら、唯一の修正は、影響を受けるコンポーネントの再ライセンスか除去です。私たちは作者ごとの例外を付与できません。

あなたのリポジトリを見つけられませんでした

私たちのマニフェストの取得が 404 を返すとき、これが見えます。

よくある原因と修正:

  • あなたのリポジトリが非公開。公開にするか、インデックスに現れるのをやめるよう caputchin-game トピックを取り除きます。
  • あなたのリポジトリに caputchin-game の GitHub トピックがない。リポジトリページの About セクションでそれを追加します。
  • あなたのリポジトリのルートに caputchin.json がない(または、コレクションの子のゲームには、リーフディレクトリに caputchin.json がない)。
  • あなたが入力したリポジトリの URL が間違っている。owner/name か完全な https://github.com/owner/name URL を使います。

caputchin.json をリポジトリにプッシュし、それから再試行してください。

マニフェストの構造が不正

詳細が entrynpmgamesmarketplace.supportrun.modules[0].name のようなフィールド名で始まる manifest-error が見えます。

詳細は、どのフィールドが間違っているかを正確に教えます:

  • 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 pathentry と同じ衛生のルールを、任意の分割 run のエントリーに適用したもの。
  • run.modules[i].name:モジュール名は [a-zA-Z0-9_-]+\.(wasm|js)$ に一致しなければならず、entry.jsartifact.js ではいられません。

名指されたフィールドをルールに従って編集し、コミット、プッシュ、再試行してください。

marketplace.author に無効なメールがある

marketplace.author.email が存在するが、通常のメールの形(1 つの @、ドット付きのドメイン、空白なし)に一致しないとき、これが見えます。

  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 秒に 10 を超えるリクエストを送信したとき、手動公開のモーダルでこれが見えます。

60 秒待って再試行してください。制限を上げる方法はありません。それはエンドポイントを濫用から守ります。

通知メールを止める

公開失敗のメールを受け取るのを止めたいなら、投稿規約のセクション 10 を参照してください。受信者のアドレスは、マニフェストのあなたの marketplace.author.email です。それを取り除くか変えるとメールが止まります。

あわせて読む

このページの内容