Slide 1

Slide 1 text

MVNOの申込から eSIM開通までを iOSアプリで つなぐ- 本人確認・ MNP・通信事業者基盤をまた ぐ実装 iOSDC 2026 9月12日 佐藤たけし 1

Slide 2

Slide 2 text

自己紹介 ● ● ● ● 名前:佐藤たけし 会社:株式会社メルカリ 所属:メルカリモバイルチーム 役割:iOS、Android、Webエンジニア 2

Slide 3

Slide 3 text

2025年3月メルカリが MVNO事業に参入 ● ● 特徴 ○ ギガの売買ができる モバイル通信としての機能も充実 ○ プラン:4GB/10GB/20GB/40GB ○ SIMタイプ:eSIM/物理SIM ○ かけ放題プラン:5分/10分/無制限 ○ 回線タイプ:docomo/au ○ サービス ■ 音声・データ ■ データ通信専用 3

Slide 4

Slide 4 text

電話や通信回線はどうやったら 使えるようになる? 4

Slide 5

Slide 5 text

MVNO事業とは MNO通信網をMVNE経由で仕入れ、自社の独自プランで回線提供する事業 MNO 移動体通信事業者 MVNE MVNO 仮想移動体サービス提供者 仮想移動体通信事業者 お客さま NTTドコモ KDDI ソフトバンク 楽天モバイル 5

Slide 6

Slide 6 text

メルカリモバイルの申し込みフロー 6

Slide 7

Slide 7 text

メルカリモバイルの申し込みフロー ● プランを選ぶ ● 本人確認する ● 電話番号の乗り換え ● 確認 ● 完了 7

Slide 8

Slide 8 text

申し込み体験の裏側で起きていること ① 法令 — 本人確認 ② 業界仕様 — 電話番号の乗り換え (MNP) ③ iOS・通信基盤 — eSIM / APN 8

Slide 9

Slide 9 text

本人確認 第一の関門 9

Slide 10

Slide 10 text

第一の関門:本人確認 ● ● ● ● 要件:申し込み時に本人確認を行う 通信事業サービスの提供には本人確認が必要 携帯電話不正利用防止法 という法律に定められている 特殊詐欺などの犯罪を防ぐため、携帯電話やSIMカードの契約 時に氏名・住所・生年月日の本人確認が義務づけられている 10

Slide 11

Slide 11 text

メルカリアプリの本人確認事情 ① 金融サービスメルペイで本人確認実施 ② アプリで機能モジュールが用意されている ③ スムーズな申し込みフローを実現可能 11

Slide 12

Slide 12 text

サービスによる準拠すべき本人確認の法令 メルペイ メルカリモバイル 犯収法 携帯電話 不正利用防止法 12

Slide 13

Slide 13 text

具体的な対応 メルペイで本人確認完了 ● 以前に本人確認しててもも う一度本人確認させる ● 犯収法として本人確認が終 わっても携帯電話不正利用 防止法として再度本人確認 が必要のため メルカリモバイルとして 本人確認必要 13

Slide 14

Slide 14 text

具体的な対応 ● どの法令に基づいているか の説明を追加 14

Slide 15

Slide 15 text

具体的な対応 ● 呼び出し側で準拠する法令 のtypeを指定 15

Slide 16

Slide 16 text

ミニマムリリースと手法の追加、廃止 初期リリース 「本人確認書類方式」追加 「本人確認書類方式」終了 リリースを優先。マイナンバー カードの読み取り限定 Feature Flagをオン アプリ導線を有効化 法令の廃止期限の前に Feature Flagをオフ アプリから導線を非表示 Backendリジェクト開始 法令として廃止 通信事業で「本人確認書類方 式」が正式に認められなくなる 16

Slide 17

Slide 17 text

本人確認からの学び ● 同じ“本人確認”でも、どの法令に基づく本人確認なのかを正しく 扱う必要があった ● 異なる法令による本人確認であることをお客さまにわかりやすく 伝える必要があった ● また、法令を守りながら申し込みしやすい体験を作るため、手法 の追加・削除に追従できる設計が必要があった 17

Slide 18

Slide 18 text

携帯電話番号の引き継ぎ (MNP) 第二の関門 18

Slide 19

Slide 19 text

携帯電話番号の引き継ぎ (MNP) 携帯電話の契約では電話番号を他社キャリアに移動するとき に引き継げるサービスがあります。 それがMNP(Mobile Number Portability) 19

Slide 20

Slide 20 text

携帯電話番号の引き継ぎ (2種類のMNP方式) ワンストップ方式 ツーストップ方式 転入元サイト 転入先サイト 転入先サイト 予約番号発行 123456789 転入先サイト 123456789 予約番号入力 転入元サイト 20

Slide 21

Slide 21 text

MNPワンストップのフロー図 転 入 先 サ イ ト 転 入 元 サ イ ト MNP受付 マイページURL マイページ 申し込み フロー 申し込み 完了 callback URLリダイレクト MNP手続 き 21

Slide 22

Slide 22 text

MNPワンストップのフロー図 転 入 先 サ イ ト 転 入 元 サ イ ト MNP受付 マイページURL マイページ 申し込み フロー 申し込み 完了 callback URLリダイレクト MNP手続 き 22

Slide 23

Slide 23 text

MNPワンストップのフロー図 転 入 先 サ イ ト 転 入 元 サ イ ト MNP受付 マイページURL マイページ 申し込み フロー 申し込み 完了 callback URLリダイレクト MNP手続 き 23

Slide 24

Slide 24 text

MNPワンストップのフロー図 転 入 先 サ イ ト 転 入 元 サ イ ト MNP受付 マイページURL マイページ 申し込み フロー 申し込み 完了 callback URLリダイレクト MNP手続 き 24

Slide 25

Slide 25 text

携帯電話番号の引き継ぎの課題 フローが Web前提 どうやってアプリとして成立 させるか? 25

Slide 26

Slide 26 text

携帯電話番号の引き継ぎの課題 1. アプリの申し込みフローにどう着地させるか a. ワンストップ方式がWeb前提 b. でもアプリで申し込みフローを実装したい c. Callback URLをUniversal linkにしてもリダイレクトではア プリは起動しない 2. 入力データの引き継ぎ a. 他社サイト が含まれる中でどうするか? 26

Slide 27

Slide 27 text

アプリの申し込みフローにどう着地させるか 解決方法 着地用Webページを作成 27

Slide 28

Slide 28 text

着地用Webページを作成 ● 転出サイトからのリダイレクトで着地用のWebページを作成 ● WebページからUniversal Linkでアプリの申し込みフローを起 動させる 28

Slide 29

Slide 29 text

着地用Webページを作成 転 入 先 サ イ ト 転 入 元 サ イ ト アプリ WEB アプリ アプリ MNP受付 MNP着地 申し込み 確認 申し込み 完了 マイページURL callback URL WEB WEB マイページ MNP手続 き 29

Slide 30

Slide 30 text

実際のキャプチャ WEB WEB Callback アプリ Universal Link 30

Slide 31

Slide 31 text

入力データの引き継ぎ 解決方法 ローカルに入力情報を保存する 31

Slide 32

Slide 32 text

ローカルに保存する 通常: ● ● メルカリアプリでは、サーバーのデータを正として画面を作る アプリ側に入力途中のデータを長く保存しない 今回: ● ● ● MNPで外部Webへ出る時点では、まだサーバーに入力情報がない 入力状態はKeychainに端末保存 古い入力状態が残らないよう、完了・エラー・やり直し時に削除 32

Slide 33

Slide 33 text

QA中に出てきた Universal Linkにまつわる バグ 33

Slide 34

Slide 34 text

Universal Linkの罠 他社サイト 自社サイト アプリ 34

Slide 35

Slide 35 text

Universal Linkの罠 他社サイト ドメインA アプリ ドメインA 35

Slide 36

Slide 36 text

ドメインを分けた ドメインA ドメインB 36

Slide 37

Slide 37 text

MNPワンストップからの学び 状態をどう持つか ● ● ● フローに他社Webを含むため情報をそのまま渡せない サーバー側にも入力情報はまだ持っていない そのため、端末に入力状態を保存し、戻ってきたときはアプリ側の状態を正とし て復元した アプリへどう戻すか ● ● 着地用Webページを作成してアプリフローに戻す ドメインを分けてアプリを確実に起動するようにした 37

Slide 38

Slide 38 text

これで申し込みが完了です eSIMのインストールをしましょう 38

Slide 39

Slide 39 text

iOS・通信基盤 — eSIM / APN 39

Slide 40

Slide 40 text

eSIMインストール https://esimsetup.apple.com/esim_qrcode_provisioning ?carddata=LPA:1$rsp.example.com$DUMMY-1A2B3C-4D5E6F AppleのeSIMインストールUniversal Link ● ● ● iOS 17.4以降では、AppleのeSIM Universal LinkでeSIM追加画面へ誘導 できる アプリ内WebViewではなく、外部リンクとして開く必要がある 設定アプリが立ち上がりeSIMのインストールが行われます 40

Slide 41

Slide 41 text

直接設定アプリの eSIMアクティベート画面へ飛ぶ 41

Slide 42

Slide 42 text

APNプロファイルのインストール ● モバイルデータ通信をするときに、「事業 者」「接続先」「つなぐ設定」を端末に教える 設定 ● MNOは自動で設定されるが、MVNOは必 要 ● iOSではこの設定を手入力させる代わり に、.mobileconfig のような 構成プロ ファイル として配布し、お客さまにインス トールしてもらう必要がある 42

Slide 43

Slide 43 text

ようやく通信や電話がつながるようになる 43

Slide 44

Slide 44 text

まとめ MVNO申込は、アプリの中だけでは完結しない。 ● 本人確認 ○ ● MNP ○ ● 法令に準拠した本人確認フローを組み込む 他社Webをまたぐ申込状態と復帰導線を設計する eSIM / APN ○ OSや通信基盤に委ねる処理を、アプリから案内する 44

Slide 45

Slide 45 text

まとめ アプリ単体では制御できない制約を理解し、 要件を整理し、 お客さまにとって一つの申込体験 になるようにフローへ落とし込む。 普段使っているモバイル回線の裏側で、 こうした仕組みが動いていることを知ってもらえたらうれしいです。 45

Slide 46

Slide 46 text

iOSエンジニア積極募集中! iOS (Mobile Enablement) Mercari 46