> ## 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)를 활성화합니다. 설정은 두 단계로 이루어집니다:

1. **플랫폼 자격 증명 구성** — FCM, APNs, HMS 또는 ADM 자격 증명을 OneSignal에 연결
2. **SDK 통합** — 플랫폼용 OneSignal SDK를 설치하고 앱에서 초기화

웹사이트의 경우 [Web SDK 설정](./web-push-setup)을 참조하세요.

***

## 플랫폼 자격 증명 구성

각 플랫폼에는 고유한 푸시 자격 증명이 필요합니다. SDK를 통합하기 전에 앱이 지원하는 모든 플랫폼의 자격 증명을 구성하세요.

### OneSignal 앱 및 플랫폼 구성

지원하는 플랫폼(Apple (APNs), Google (FCM), Huawei (HMS), Amazon (ADM))으로 OneSignal 앱을 구성하세요.

<Note>
  조직에 이미 OneSignal 계정이 있는 경우 조직에 [초대를 요청](/docs/ko/manage-team-members)하세요. 그렇지 않은 경우 [무료 계정에 가입](https://onesignal.com)하여 시작하세요.
</Note>

<Accordion title="단계별 설정 지침" icon="circle-chevron-down">
  <Steps>
    <Step title="앱 만들기 또는 선택">
      **New App/Website**를 클릭하여 새 앱을 만들거나 **설정 > 푸시 및 인앱**에서 기존 앱에 플랫폼을 추가합니다. 구성하려는 플랫폼을 선택하고 **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/ko/android-firebase-credentials)
      * **iOS**: [p8 토큰(권장)](/docs/ko/ios-p8-token-based-connection-to-apns) 또는 [p12 인증서](/docs/ko/ios-p12-generate-certificates)
      * **Amazon**: [API 키 생성](/docs/ko/generate-an-amazon-api-key)
      * **Huawei**: [OneSignal 권한 부여](/docs/ko/authorize-onesignal-to-send-huawei-push)

      자격 증명을 입력한 후 **Save & Continue**를 클릭합니다.
    </Step>

    <Step title="앱 ID를 저장하고 SDK 설치">
      **앱 ID**가 최종 화면에 표시됩니다. 복사하고 저장하세요 — SDK를 초기화할 때 필요합니다. SDK 플랫폼을 선택한 다음 설정 가이드를 따릅니다.

      <Frame caption="앱 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="설정 후 앱 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 네이티브" icon="android" href="./android-sdk-setup">
    FCM을 사용하여 OneSignal SDK를 네이티브 Android 앱에 통합합니다.
  </Card>

  <Card title="iOS 네이티브" icon="apple" href="./ios-sdk-setup">
    APNs를 사용하여 OneSignal SDK를 네이티브 iOS 앱에 통합합니다.
  </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 네이티브" 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-payload)

<Info>
  [인앱 메시지](./in-app-messages-setup)와 [Live Activities](./live-activities)는 SDK가 필요합니다 — API만으로는 전달할 수 없습니다.
</Info>

### SDK 사용을 권장하는 이유는?

푸시 알림에는 SDK가 처리하는 플랫폼별 요구 사항이 있습니다:

* Android, iOS, Huawei 및 웹에서 푸시 토큰 가져오기
* 구독 상태 및 사용자 옵트인 프롬프트 관리
* 클라이언트에서 푸시 알림 표시 및 처리

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 앱이 필요한가요?

아니요. 단일 OneSignal 앱이 여러 플랫폼 — iOS, Android, Huawei, Amazon 및 웹 — 을 지원합니다. **설정 > 푸시 및 인앱**에서 각 플랫폼의 자격 증명을 구성하면 모두 동일한 앱, 사용자 및 세그먼트를 공유합니다.

### 중국 또는 Huawei 기기가 푸시 알림을 받을 수 있나요?

기기에 Google Play 서비스가 있으면 FCM을 통해 푸시를 받습니다. 앱이 Huawei AppGallery에서 다운로드된 경우(Android를 실행하는 비-HarmonyOS Huawei 기기 포함) HMS를 통해 푸시를 받습니다 — 이를 활성화하려면 [Huawei SDK](./huawei-sdk-setup)를 설정하세요. OneSignal은 HMS와 FCM을 모두 지원하는 기기에는 기본적으로 FCM을 사용합니다. 필요한 경우 [FCM보다 HMS를 선호](./huawei-sdk-setup#prefer-hms-over-fcm-optional)하도록 설정할 수 있습니다.
