> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.onesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# モバイルSDKセットアップ

> Android、iOS、Huawei、React Native、Flutter、Unityなどのクロスプラットフォームフレームワーク向けにOneSignal SDKをセットアップする。

export const SdkReleasesIframe = ({sdkFilter = undefined, viewMode = undefined, height, ...frameProps}) => {
  const baseUrl = 'https://onesignal.github.io/sdk-releases';
  const buildUrl = (theme, sdkFilter, viewMode) => {
    const url = new URL(baseUrl);
    const params = new URLSearchParams();
    if (theme) {
      params.set('theme', theme);
    }
    if (sdkFilter) {
      params.set('sdk', sdkFilter);
    }
    if (viewMode) {
      params.set('viewMode', viewMode);
    }
    if (params.toString()) {
      url.search = params.toString();
    }
    return url.toString();
  };
  const detectTheme = () => {
    if (document.documentElement.classList.contains('dark')) {
      return 'dark';
    }
    return 'light';
  };
  const [theme, setTheme] = useState('light');
  const [iframeSrc, setIframeSrc] = useState(() => {
    const initialTheme = detectTheme();
    return buildUrl(initialTheme, sdkFilter, viewMode);
  });
  useEffect(() => {
    const currentTheme = detectTheme();
    setTheme(currentTheme);
    setIframeSrc(buildUrl(currentTheme, sdkFilter, viewMode));
    const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
    const handleThemeChange = () => {
      const newTheme = detectTheme();
      setTheme(newTheme);
      setIframeSrc(buildUrl(newTheme, sdkFilter, viewMode));
    };
    if (mediaQuery.addEventListener) {
      mediaQuery.addEventListener('change', handleThemeChange);
    } else {
      mediaQuery.addListener(handleThemeChange);
    }
    window.addEventListener('storage', handleThemeChange);
    const observer = new MutationObserver(handleThemeChange);
    observer.observe(document.documentElement, {
      attributes: true,
      attributeFilter: ['class', 'data-theme']
    });
    return () => {
      if (mediaQuery.removeEventListener) {
        mediaQuery.removeEventListener('change', handleThemeChange);
      } else {
        mediaQuery.removeListener(handleThemeChange);
      }
      window.removeEventListener('storage', handleThemeChange);
      observer.disconnect();
    };
  }, [sdkFilter, viewMode]);
  const getIframeHeight = () => {
    if (viewMode === 'table') {
      return '450';
    }
    if (viewMode === 'mini') {
      return '170';
    }
    return '800';
  };
  const iframeHeight = height || getIframeHeight();
  return <Frame {...frameProps}>
      <iframe src={iframeSrc} width="100%" height={iframeHeight} frameBorder="0" style={{
    border: "none"
  }} title="SDK Releases" key={iframeSrc} />
    </Frame>;
};

OneSignalモバイルSDKは、iOS、Android、HuaweiおよびAmazonアプリで[プッシュ通知](./push)、[アプリ内メッセージ](./in-app-messages-setup)、[Live Activities](./live-activities)を有効にします。セットアップは2つのステップで行います：

1. **プラットフォーム認証情報の設定** — FCM、APNs、HMSまたはADMの認証情報をOneSignalに接続する
2. **SDKの統合** — お使いのプラットフォーム向けにOneSignal SDKをインストールし、アプリで初期化する

Webサイトについては、[Web SDKセットアップ](./web-push-setup)をご覧ください。

***

## プラットフォーム認証情報の設定

各プラットフォームには独自のプッシュ認証情報が必要です。SDKを統合する前に、アプリがサポートするすべてのプラットフォームの認証情報を設定してください。

### OneSignalアプリとプラットフォームを設定

サポートするプラットフォーム（Apple（APNs）、Google（FCM）、Huawei（HMS）、Amazon（ADM））でOneSignalアプリを設定します。

<Note>
  組織がすでにOneSignalアカウントを持っている場合は、組織への[招待をリクエスト](/docs/ja/manage-team-members)してください。それ以外の場合は、[無料アカウントにサインアップ](https://onesignal.com)して開始してください。
</Note>

<Accordion title="セットアップのステップバイステップ手順" icon="circle-chevron-down">
  <Steps>
    <Step title="アプリを作成または選択">
      **New App/Website** をクリックして新しいアプリを作成するか、**Settings > Push & In-App** で既存のアプリにプラットフォームを追加します。設定するプラットフォームを選択し、**Next: Configure Your Platform** をクリックします。

      <Frame caption="最初のOneSignalアプリ、組織、チャネルのセットアップ。">
        <img src="https://mintcdn.com/onesignal/BK2J-grzBpDdh8NC/images/dashboard/new-app-org-channel.png?fit=max&auto=format&n=BK2J-grzBpDdh8NC&q=85&s=ee0045484152ed15095f619344aa0564" alt="組織名、アプリ名、チャネル選択を含む新しいアプリセットアップフローを表示するOneSignalダッシュボード" width="2592" height="1904" data-path="images/dashboard/new-app-org-channel.png" />
      </Frame>
    </Step>

    <Step title="プラットフォーム認証情報を設定">
      プラットフォームの認証情報を入力します：

      * **Android**：[Firebase認証情報をセットアップ](/docs/ja/android-firebase-credentials)
      * **iOS**：[p8トークン（推奨）](/docs/ja/ios-p8-token-based-connection-to-apns)または[p12証明書](/docs/ja/ios-p12-generate-certificates)
      * **Amazon**：[APIキーを生成](/docs/ja/generate-an-amazon-api-key)
      * **Huawei**：[OneSignalを承認](/docs/ja/authorize-onesignal-to-send-huawei-push)

      認証情報を入力した後、**Save & Continue** をクリックします。
    </Step>

    <Step title="App IDを保存してSDKをインストール">
      **App ID** は最終画面に表示されます。コピーして保存してください — SDKを初期化するときに必要です。SDKプラットフォームを選択し、セットアップガイドに従います。

      <Frame caption="App IDを保存して追加のチームメンバーを招待します。">
        <img src="https://mintcdn.com/onesignal/VypVshrFHTBZfEma/images/dashboard/app-id-and-team-invite.png?fit=max&auto=format&n=VypVshrFHTBZfEma&q=85&s=e1e2aab6cca7c4aa6b9a76eff362d5af" alt="セットアップ後のApp IDとチーム招待オプションを表示するOneSignalダッシュボード" width="2592" height="1904" data-path="images/dashboard/app-id-and-team-invite.png" />
      </Frame>
    </Step>
  </Steps>
</Accordion>

***

## SDKの統合

<Columns cols={2}>
  <Card title="Android Native" icon="android" href="./android-sdk-setup">
    FCMを使用してネイティブAndroidアプリにOneSignal SDKを統合します。
  </Card>

  <Card title="iOS Native" icon="apple" href="./ios-sdk-setup">
    APNsを使用してネイティブiOSアプリにOneSignal SDKを統合します。
  </Card>

  <Card title="React NativeとExpo" icon="react" href="./react-native-sdk-setup">
    React NativeおよびExpo環境のセットアップ。
  </Card>

  <Card title="Flutter" icon="mobile" href="./flutter-sdk-setup">
    Dartを使用するFlutterアプリのSDKセットアップ。
  </Card>

  <Card title="Unity" icon="unity" href="./unity-sdk-setup">
    Unityベースのモバイルアプリ向けクロスプラットフォームSDKセットアップ。
  </Card>

  <Card title=".NET MAUI" icon="microsoft" href="./net-sdk-setup">
    OneSignal SDKを.NET MAUIアプリと統合します。
  </Card>

  <Card title="Huawei Android Native" icon="mobile-screen" href="./huawei-sdk-setup">
    HMSプッシュサービスを使用するHuaweiデバイス向けSDKセットアップ。
  </Card>

  <Card title="Cordova、IonicおよびCapacitor" icon="code" href="./cordova-sdk-setup">
    Cordova、IonicおよびCapacitorハイブリッドモバイルアプリのセットアップ。
  </Card>
</Columns>

### その他の統合

<Columns cols={2}>
  <Card title="FlutterFlow" icon="wand-magic-sparkles" href="./flutterflow-sdk-setup">
    FlutterFlowアプリ向けのローコードSDKセットアップ。
  </Card>

  <Card title="Median.co" icon="globe" href="./median-integration">
    Median.co（旧GoNative.io）アプリの統合ガイド。
  </Card>
</Columns>

***

## SDKバージョン

<SdkReleasesIframe sdkFilter="android,ios,unity,flutter,xamarin,cordova,reactnative,dotnet" viewMode="table" height="500" />

***

## FAQ

### SDKは必須ですか？

いいえ、ただし強く推奨されています。また、[GitHub](https://github.com/OneSignal/sdks)でオープンソースです。[REST API](/reference/rest-api-overview)のみを使用してOneSignalを統合できますが、SDKを使用すると、特にプラットフォーム間でプッシュ通知を処理するプロセスが大幅に簡素化されます。

### SDKなしでできることは？

次のAPIを直接使用できます：

* [ユーザーを作成](/reference/create-user)
* [サブスクリプションを作成](/reference/create-subscription)
* [ユーザーを更新](/reference/update-user)
* [サブスクリプションを更新](/reference/update-subscription)
* [メッセージを作成](/reference/create-message)
* [OSNotificationペイロード](./osnotification-payload)

<Info>
  [アプリ内メッセージ](./in-app-messages-setup)と[Live Activities](./live-activities)はSDKが必要です。APIのみでは配信できません。
</Info>

### SDKの使用を推奨する理由は？

プッシュ通知には、SDKが処理するプラットフォーム固有の要件があります：

* Android、iOS、HuaweiおよびWebにわたってプッシュトークンを取得
* サブスクリプションステータスとオプトインのユーザープロンプトを管理
* クライアントでプッシュ通知を表示および処理

AppleのAPNsとGoogleのFCMは異なるペイロード形式を使用します。OneSignal SDKはカスタムペイロードを解析してメッセージを正確に表示および追跡します。これを手動で維持すると複雑さが増します。詳細：[Build vs. Buy: What Goes Into Building a Push Notification Platform](https://onesignal.com/blog/build-vs-buy-what-goes-into-building-a-push-notification-platform/)

### iOSとAndroidに別々のOneSignalアプリが必要ですか？

いいえ。1つのOneSignalアプリが複数のプラットフォーム — iOS、Android、Huawei、AmazonおよびWeb — をサポートします。**設定 > プッシュ＆アプリ内**で各プラットフォームの認証情報を設定すると、すべてが同じアプリ、ユーザー、セグメントを共有します。

### 中国のデバイスまたはHuaweiデバイスはプッシュ通知を受信できますか？

デバイスにGoogle PlayサービスがあればFCMを通じてプッシュを受信します。アプリがHuawei AppGalleryからダウンロードされた場合（HarmonyOSでないAndroidを実行するHuaweiデバイスを含む）、HMSを通じてプッシュを受信します。これを有効にするには[Huawei SDK](./huawei-sdk-setup)をセットアップしてください。OneSignalはHMSとFCMの両方をサポートするデバイスにはデフォルトでFCMを使用します。必要に応じて[FCMよりもHMSを優先](./huawei-sdk-setup#prefer-hms-over-fcm-optional)することができます。
