{}const=>[]async()letfn</>var
開発モバイル

2026年の初心者向け認証:メール/パスワード、OAuth、OTP、JWTを簡単に🔐

現代のログインの仕組みを分析します。パスワードをハッシュする理由、JWTとリフレッシュトークンの仕組み、Google/Apple経由でログインしたときに何が起こるか、セキュリティホールなしでOTP/TOTPを実装する方法。さらに、初心者がよく犯すミスと面接のチェックリストも紹介します。

К

Kodik

著者

2分で読める

初めてのモバイルアプリを開発しましたか?おめでとうございます!🎉しかし、まだリラックスするには早いです。最も緊張する段階の1つであるモデレーションが待っています。感覚(とチームの実践)によると、約 2 番目 最初の公開は「拒否」または編集リストをキャッチします。最もよく起こる問題と、最初からレビューに合格する方法を見てみましょう。

ロシアの特殊性:知っておくべきこと

技術的な詳細に入る前に、ロシアの開発者にとって現在の「市場の現実」を理解することが重要です。アカウント、支払い、API、収益化に影響を与えます。つまり、モデレーションをスムーズに通過するチャンスです。

デベロッパーアカウントの支払いに関する問題

AppleとGoogleは、ロシアのカードによる支払いをブロックする可能性があります。通常の対処法は次のとおりです。

  • 海外の友人/パートナーのアカウントを使用する

  • 外国の仲介会社を通じて働く

  • 国際的なバーチャルカード(Wiseなど)を使用している

  • Androidの場合、代替案としてRuStore、NashStore、AppGalleryが検討されています

地域制限

一部のサービスとAPIは利用できないか、ニュアンスで動作する場合があります。

  • カード: Google Maps API —制限の可能性があります。代替案: Yandex Maps、OpenStreetMap

  • 支払い: 外国のオプションは限定的に機能する場合があります。収益化モデルを事前に検討してください

  • Push: Firebaseは通常機能しますが、「突然のニュアンス」が可能です—プランBを維持してください

次に、最も重要なことがあります。 却下の理由 アプリケーション。両方のプラットフォームを人間的に、そして例を挙げて分析しましょう。

🔥 10万人以上の学生が参加中

理論を読むのに疲れた?
コーディングの時間だ!

Kodik — 実践でプログラミングを学ぶアプリ。AIメンター、インタラクティブなレッスン、実際のプロジェクト。

🤖 AI 24時間
🎓 修了証
💰 無料
🚀 始める
今日参加

🍎 App Storeで拒否される5つの主な理由

1) メタデータと説明が正しくない

問題点:

  • 説明には、連絡先(メール、電話)またはソーシャルネットワークへのリンクが含まれています

  • スクリーンショットは実際の機能と一致しません

  • 説明には、Android/Google Play/その他のプラットフォームが記載されています

  • キーワードにブランド名/競合他社名が含まれている

正しい方法:

❌ 悪い

Лучшее приложение! Пишите на email@example.com
Доступно также в Google Play!

✅ 良い

Планируйте задачи, управляйте проектами и повышайте продуктивность.
Синхронизация между устройствами, напоминания и удобный интерфейс.

ロシアの開発者にとって重要なこと:ロシアのドメインを持つWebバージョンがある場合は、説明に「自動で」リンクを挿入しないでください。Appleはサイトのコンテンツに異議を唱える可能性があります。

2) 最小限の機能性(MVPが「空っぽ」すぎる)

次の場合は却下されます。

  • これは価値のない、あまりにも単純なウェブラッパーです

  • アプリはiOSの内蔵機能(懐中電灯/電卓)を重複しており、追加の意味はありません

  • アプリはアカウントなしでは動作しませんが、モデレーターにテストログインを提供していません

解決策:

  • データが入力されたデモアカウントを提供する

  • メモに、何をどこをクリックするかを説明してください(はい、これは実際に役立ちます)

  • ユニークな価値を追加する(単なるWebビューではない)

3) 秘密保持とプライバシー

よくある間違い:

  • 同意なしのデータ収集

  • プライバシーポリシーなし

  • 明確な説明のない許可の要求

  • 正しい許可(ATT)なしのトラッキング

例:iOSでは、「必要だからカメラが必要」と書かないでください。具体的かつ簡潔に書いてください。

// Info.plistでカメラをリクエストする場合は、次のことを行う必要があります。
<key>NSCameraUsageDescription</key>
<string>Приложению нужен доступ к камере для
сканирования QR-кодов ваших заказов</string>

// 単に以下のことではありません。
<string>Нужен доступ к камере</string>
  • プライバシーポリシーは、英語(国際的なオーディエンス向け)とロシア語(ロシアのオーディエンス向け)で提供することをお勧めします

  • App Store Connect では、プライバシーポリシーへのリンクが必須です

  • メールアドレスや電話番号を収集する場合は、その理由を直接説明してください

4)テスト中のバグとクラッシュ

モデレーターは実際にアプリをテストします。最初の起動時にアプリがクラッシュしたり、白い画面が表示されたりすると、瞬きするよりも早くレビューから脱落します😅

典型的な問題:

  • 初回起動時のクラッシュ

  • ホワイトスクリーン/フリーズ

  • ボタンが機能しない

  • iPadバージョンの問題(サポートを指定した場合)

自己チェックの方法:

  • 実際のデバイスでテストする(シミュレーターだけではない)

  • 基本的なシナリオを確認します。初回起動、ログイン、主要な画面

  • ベータテストにTestFlightを使用する

5) 購入と収益化

致命的なエラー:

  • IAP(アプリ内課金)を「バイパス」して支払う

  • ウェブサイト上でよりお得な価格を提示する

  • アプリで管理されていないサブスクリプション

厳しい現実:Apple IAPを介して支払いを受け取ることができない場合(たとえば、外国企業がない場合)、無料アプリ、ウェブを介したアクティベーション(価格を言及せず)、または代替ストアでの公開などのモデルを検討してください。

🤖 Google Playで拒否される5つの主な理由

1) ターゲットAPIレベルの不一致

Googleは最新のtargetSdkVersionを必要とします。古いものを使用している場合は、拒否される準備をしてください。

// 2025 年の最小値 (例):
android {
  compileSdk 34
  defaultConfig {
    targetSdk 34  // それ以下はダメです!
    minSdk 24
  }
}

却下の理由: 古いtargetSdk(例:28/30)。 解決策: プロジェクトと依存関係を更新します。

2) コンテンツポリシー違反

よくある問題:

  • アイコン/名前が誤解を招く(有名ブランドと類似している)

  • 18歳以上向けコンテンツ(レーティングなし)

  • スパム機能(同意なしの自動アクション)

  • 免責事項なしの医療/財務アドバイス

ロシア市場の場合:アプリが財務に関連している場合は、これがファイナンシャルアドバイザーではないことを明確に書いてください。仮想通貨のテーマには注意してください。モデレーションは厳しい場合があります。

3) 権限の問題

モデレーターを怒らせるもの: すべてをリクエストし、1つのボタンを使用する場合。

<!-- ❌ Плохо: просите всё подряд -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!-- но реально используете только камеру -->

ルール: 各許可は正当化される必要があります(データ安全性/宣言を含む)。

4)データ収集に関する必須情報はありません(データセーフティ)

Googleでは、データの収集内容、使用方法、第三者への転送の有無、データの削除の可否など、データの安全性に関する情報を入力する必要があります。

ライフハック:何も収集していない場合でも、直接指定してください No data collectedこのステップをスキップすると、しばしば拒否につながります。

5) 破損またはテストアイテム

  • リリースではなくデバッグを実行しました

  • テストボタン/機能を残しました

  • コンソールのログ(console.logLog.d()を削除)

  • AABサイズが大きすぎます

✅ Собрали Release-версию
✅ Включили ProGuard/R8
✅ Удалили console.log / Log.d
✅ Протестировали на разных экранах
✅ Проверили работу на Android 14

⚠️ 両方のプラットフォームの一般的なエラー

アイコンとスクリーンショットのサイズが正しくありません

App Store

  • アイコン1024×1024px(アルファチャンネルなし、丸みなし)

  • iPhoneとiPadのスクリーンショットは別々に

  • さまざまな画面サイズ(6.7インチ、6.5インチ、5.5インチなど)

Google Play

  • アイコン 512×512px

  • Feature Graphic 1024×500px

  • スクリーンショットは最低2枚(最大8枚)

  • JPG/PNG 最大8MB

よくある落とし穴:Google Playに丸みを帯びた「iPhoneスクリーンショット」をアップロードすると、Playが独自の丸みを追加します。ダブルフレームになり、「安っぽい」印象になります。

年齢制限の問題

  • アルコールの言及だけでも評価を上げることができます

  • チャット/フォーラム = より高い評価の可能性

  • 「冗談」であっても恐ろしい/衝撃的なコンテンツ=高い評価

ヒント:過小評価して再提出で拒否されるよりも、正直に過大評価することをお勧めします。

アカウントを削除することはできません

近年の要件:ユーザーがアカウントを作成できる場合、アプリ内で直接アカウントを削除できる必要があります(「サポートに書き込む」ではなく)。

// 最小限のオプション
async function deleteAccount() {
  if (confirm('Are you sure you want to delete the account? Data cannot be recovered.')) {
    await api.deleteUser(userId);
    await logout();
    showMessage('Account deleted');
  }
}

代替サイト(非常に難しい場合)

  • RuStore — オーディエンスの増加、独自のモデレーション

  • NashStore — Androidの代替品

  • AppGallery — Huaweiストア、アジアの大規模オーディエンス

😵 それでも却下された場合の対処法

慌てないでください。拒否されるのは普通のことです。特に最初の投稿では。

  1. 拒否の理由を注意深く読んでください(メール/コンソールに届きます)

  2. 特定の項目を修正してください

  3. 問題解決センター/回答で、具体的に何を修正したかを説明してください

  4. 再提出

理由が不明な場合は、説明を求めてください。通常、モデレーターが回答します。ロシア語圏の開発者の場合:スラングなしで、シンプルな英語で書いてください。

🏁結論:主なルール

  • 黄金のルール1: ガイドラインを読んでください。ほとんどの拒否は、ドキュメントを無視したためです。

  • 黄金のルール2: 実際のデバイスでテストしてください。エミュレーターではすべての問題が表示されるわけではありません。

  • ゴールデンルール3: 正直に。評価、許可、機能は「トリック」なしで。

  • ゴールデンルール4: 急がないでください。1週間の準備で、1ヶ月の再提出を節約できます。

ロシアの開発者の皆様へ:予備のプランを用意してください。制限は突然変更される可能性があります。公開のために人や会社の連絡先を保持し、代替ストアを検討してください。

🎓モバイル開発をより深く理解したいですか?

公開は長い道のりの最後の一歩です。 コディケ アイデアからリリースまでのプロセス全体を分析します。

  • React Native、Flutter、ネイティブテクノロジーでの開発

  • モバイルアプリケーションのアーキテクチャ

  • APIとデータベースの操作

  • 自動公開のためのCI/CDの設定

  • 収益化と分析

  • 実践的な課題とプロジェクト—水なし

サポートが必要ですか?私たちがいます! 🤝

エラーが発生してしまいましたか?モデレーションに通らない?データセーフティやメタデータの正しい設定方法がわかりませんか?

私たちの Telegramコミュニティ: 2000人以上のアクティブな開発者が理解を支援します。

👉コーディックを見つける Telegram アクティブな開発者コミュニティの一員になりましょう!

🎯先延ばしをやめよう

記事は気に入った?
実践の時間だ!

Kodikでは読むだけでなく、すぐにコードを書く。理論 + 実践 = 本当のスキル。

即座に実践
🧠AIがコードを説明
🏆修了証

登録不要 • カード不要