🤳

[Dapp開発]AppleのApp-Reviewを乗り切ってみる

2023/02/02に公開

Dapps を作って配布するために、AppleのApp-reviewを受けたときに引っ掛かった箇所を残しておきます。

其の壱 Apple「アプリへのサインインの仕方が分からない!」

とご指摘を頂きました。

私のアプリは ECDSA 秘密鍵による署名によってサインインする方式を取っていたので、
ログイン方式が特殊でした。
また、ユーザが持つ秘密鍵をサーバで管理しているわけもなく、秘密鍵のインポート機能もセキュリティ上の理由で あえてつけていませんでした。
なので、一般的なIDとパスワード認証のように、デモアカウントを作成しておくことが難しかったので困りました。

最終的に、特定のジェスチャーをすると遷移する開発者用ページを用意し、そこから
デモアカウントにサインインしてもらうことにしました。
デモアカウント以外は開発者用ページからサインインできないので、セキュリティホールにもなりえないように工夫しました。

が、後日、私以外がこの開発者用ページからサインインしていないことに気づきました...泣

其の弐 Apple「お宅、アプリ外でトランザクション出してるように見えるが?!」

とご指摘いただきました。
要は、アプリ外からトランザクションを送ることで課金要素をwebページで実装し、Appleの
手数料を回避していないか、ということですね。分かります。

ガイドライン的には以下に抵触したとのこと。

Guideline 4.7. HTML5 games distributed in apps may not provide access to real money gaming, lotteries, or charitable donations, and may not support digital commerce. This functionality is only appropriate for code that’s embedded in the binary and can be reviewed by Apple. This guideline is now enforced for new apps. Existing apps must follow this guideline by September 3, 2019.

実際はアプリで開いたwebview からトランザクションを送信する機能は無く、
直接アプリからトランザクションを送信していました。
なので、レビューアが指摘している箇所をヒアリングで聞き出すところから始めました。
結果、指摘されていたのが「Polygon scanをwebview で開いている機能」でした。
polygon scan は単に送信したトランザクションを確認するためのユーティリティとしてリンクを用意しているにすぎなかったため、「ここからトランザクションを送信していない」と弁明しました。
しかし、弁明は伝わらず、1週間ほど埒が明かなかったので[1]、polygon scan を開く機能を削除して対応しました。

これで思いが伝わったのか、承認いただき、無事 External Test できる状態になりましたとさ🎉

脚注
  1. Appleのレビューアからの回答は、こちらがどんなに早く返信したとしても基本的に1日毎しか得られないため辛みあります。。。 ↩︎

Discussion