# iPhoneでSMSのワンタイムコードをCI・QAに渡す方法

> チーム用iPhoneのSMSのワンタイムコードをWebhookへ送り、CIやQAのサインインを自動化します。選択肢、設定、制約を説明します。

最終更新日: 2026-10-23
正規のHTMLページ: https://www.fwrdsms.com/ja/blog/sms-otp-codes-ci-automation-iphone
Published: 2026-10-17

SMSのワンタイムコードをCIやQAの自動化に取り込むには、コードを受け取るSIMをチーム用のiPhoneに入れ、ショートカットの「メッセージ」のオートメーションで、コードのSMSを1通ずつFwrdに渡します。Fwrdは、それをご自分のHTTPS WebhookへJSONで投稿します。あとはCIのジョブが、そのエンドポイントから最新のコードを読み取り、サインイン画面に入力します。

**必要なもの:** コードを受け取る番号のSIMを入れた、iOS 26以降のiPhone。ショートカットアプリ（最初から入っています）。[Fwrd](https://apps.apple.com/app/apple-store/id6759069713?pt=128544281&ct=ja-blog-otp-qa&mt=8)。そして、CIから読み取れる公開のHTTPSアドレスです。ステージング用のルートや、n8nのワークフローなどが使えます。FwrdはIPアドレスと、.localや.internalの名前を受け付けず、ログイン用のヘッダも送らないので、アドレスに長い秘密の文字列を含めてください。

## SMSのコードは、なぜ自動化しにくいのですか？

SMSのコードは、実行環境ではなく電話に届くため、パイプラインから読める場所へ誰かが運ぶまで、CIが止まってしまうからです。

多くのチームでは、こうしたチェックを書く人が、コードを受け取る自分の電話しか持っていません。Fwrdを入れたチーム用のiPhoneなら、その電話が、パイプラインから読めるものになります。

## チーム用のiPhoneが向くのは、どんなときですか？

向いているのは、コードが特定のキャリアの番号に届く必要がある場合です。サインインするサードパーティのサービス、すでに会社の電話に紐づいたステージングのアカウント、番号の種類によって処理が変わる流れなどです。Twilioの[Lookupのドキュメント](https://www.twilio.com/docs/lookup/v2-api/line-type-intelligence)（2026年10月17日に確認）によると、アプリは携帯電話の番号と、固定されないVoIP番号を見分けられます。後者は、オンラインで取得する仮想番号と説明されています。チーム用のiPhoneのSIMはキャリアの本物の番号なので、お客様の場合と同じようにコードが届きます。

トレードオフは、電話1台は番号1つで、電源とオンラインの状態を保つ必要があることです。以降のセクションで、どちらも説明します。

## iPhoneのSMSのコードをCIに送る手順

Fwrdに、コードだけを残すWebhookの送り先を追加し、続けて、コードのSMSをFwrdに渡す「メッセージ」のオートメーションを作ります。エンドポイント側の詳細は、[Webhookのガイド](https://www.fwrdsms.com/ja/guides/webhook)で説明しています。

1. **FwrdにWebhookを追加します。** Fwrdを開き、「+」をタップして「Webhook」を選びます。「設定」欄に、エンドポイントのHTTPSアドレス全体を貼り付け、「テストメッセージを送信」をタップしてエンドポイントにフィールドを見せたら、チェックマークで保存します。

2. **コードだけを残します。** 同じ送り先で、「転送するSMS」の「一部のSMSのみ」を選び、「コードらしいもの」をオンにします。4〜8桁のコードを含むSMSが残ります。条件は1つなので、無料プランでも使えます。

3. **「メッセージ」のオートメーションを作成します。** iOS 27では、ショートカットを開き、「ライブラリ」＞「オートメーション」の順にタップして、「+」をタップします。「ショートカットを説明」が表示されたら「編集」をタップします。「オートメーション」＞「メッセージ」の順にタップし、「差出人」を「メッセージ」に変更して、code（またはサービスのSMSに含まれる単語）を入力します。iOS 26では、「オートメーション」タブを開き、「+」をタップして「メッセージ」を選び、「メッセージが次を含む」にその単語を入力します。

4. **確認なしで実行されるようにします。** iOS 27では、トリガーの横の矢印をタップし、「実行前に確認」がオフになっていることを確認します。ⓘ＞「プライバシー」で、「ロック中に実行を許可」がオンになっていることを確認します。iOS 26では「すぐに実行」を選び、「次へ」＞「新規ショートカットを作成」の順にタップします。

5. **Fwrdのアクションを追加します。** 「転送」で検索し、「メッセージをすべての送り先に転送」を追加します。「メッセージ」を「ショートカットの入力」に設定します（iOS 26では「ショートカットの入力」＞「メッセージ」）。戻るをタップして保存します（iOS 26では「完了」）。

6. **CIでコードを読み取ります。** エンドポイントで、受け取った本文を、届いた時刻とともに保存します。実行がコードを要求した後は、それ以降に受け取った最新のSMSを定期的に取得し、正規表現で数字を取り出します。

7. **これで完了です。** コードのSMSが、iPhoneのロック中でもロック解除中でも、自動的にエンドポイントへ届きます。

### エンドポイントは何を受け取りますか？

届いたままのSMSの本文を、`content`と`text`の両方に入れたJSONを、POSTで受け取ります。タイムスタンプは含まれないため、時刻はご自分の側で記録してください。

```json
{
  "content": "Your verification code is 482913",
  "text": "Your verification code is 482913"
}
```

同じSMSに対する送信は、すべて同じ`Idempotency-Key`ヘッダを持つため、重複は取り除けます。送信がタイムアウトしたり、429や5xxのエラーになったり、接続が切れたりすると、Fwrdは最大2回まで再送します。15秒以内に2xxの応答があれば配信済みとして扱い、リダイレクトは拒否されます。Fwrdの「設定」で「差出人を含める」をオンにし、Fwrdのアクションで「差出人」を選ぶと、本文に`sender`フィールドも加わります。同じ番号に複数のサービスからSMSが届く場合に便利です。

## この方法でできないこと

- **1つの番号で、同時に扱えるのは1回の実行だけです。** 同じ番号でコードを要求する並列のジョブは、互いのコードを読んでしまうことがあります。サインインの手順を順番待ちにするか、コードを要求した実行に対応付けてください。
- **無料プランは、毎月15件までです。** それを超えると翌月までコードが届かなくなり、忙しいパイプラインではすぐ上限に達します。Fwrd Proなら上限がなくなります。料金は、米国で月額$4.99、または年額$29.99です。
- **受信専用です。** FwrdはiPhoneからSMSを送れないため、CIのためにSMSを送ることはできません。
- **電話の電源とオンラインの状態が必要です。** 再起動後は、誰かが一度ロックを解除するまで転送が待機します。また、3日間ロックを解除しないiPhoneは自動的に再起動します。充電しておき、誰かが手に取れる場所に置いてください。
- **Fwrdのアクションは、有効なすべての送り先に届きます。** 同じ電話が別の送り先にも転送している場合は、代わりに「メッセージを送り先に転送」を使い、Webhookを選んでください。
- **新着のSMSだけです。** オートメーションを作る前に届いたコードは送られません。

パイプラインではなく人がコードを必要とする場合は、[チームの2FA共有：SMSコードをSlackやTeamsへ](https://www.fwrdsms.com/ja/blog/share-2fa-codes-with-team-slack)で、その設定を紹介しています。

## 自動化でのSMSのコードについてのよくある質問

### SeleniumやPlaywrightは、SMSのコードを直接読めますか？

いいえ。ブラウザの自動化では、電話のメッセージは見えません。まず、何かがSMSを電話の外へ運ぶ必要があります。たとえば、ショートカットのオートメーションとFwrdで、スクリプトが取得するWebhookへ投稿する方法です。

### コードはFwrdのサーバーを通りますか？

いいえ。Fwrdにはアカウントも、自前のサーバーもありません。SMSはiPhoneからご自分のHTTPSエンドポイントへ直接送られ、アドレスはiPhoneのキーチェーンに保存されます。

### ショートコードの送信元でも動きますか？

はい。オートメーションは送信元ではなくSMSの内容で一致を判断するので、連絡先にない短い番号からのコードも、codeのような単語で一致します。

### n8nのワークフローをエンドポイントにできますか？

はい。POSTに設定したWebhookノードを追加して、その本番用のURLを使い、ワークフローを公開してください。公開しないと応答しません。手順は、[iPhoneのSMSをZapier、Make、n8nに送る方法](https://www.fwrdsms.com/ja/iphone-sms-to-zapier-make-n8n)で紹介しています。

## あわせて読みたい

- [iPhoneのSMSをWebhookに転送する](https://www.fwrdsms.com/ja/iphone-sms-to-webhook)
- [iPhoneにSMSのAPIはある？iOSでSMSを取り出す方法](https://www.fwrdsms.com/ja/blog/iphone-sms-api)
