Community라이팅 & 에디팅github.com

Expo 푸시 알림 설정 가이드

AI 에이전트와 개발자가 Expo 푸시 알림(iOS/Android)을 모범 사례에 따라 구성할 수 있도록 안내하는 CLI 도구입니다.

Expo 푸시 알림 설정 가이드란 무엇인가요?

이 스킬은 AI 에이전트가 개발자를 단계별로 안내하며 Expo React Native 프로젝트에 푸시 알림을 설치하고 구성할 수 있도록 설계되었습니다. `expo-notifications`, `expo-device` 등 필수 패키지 설치부터 Android Firebase FCM V1 키 연결, iOS 인증서 설정, EAS 환경 변수 구성까지 전 과정을 다룹니다. 또한 기존 `app.json`을 동적 설정이 가능한 `app.config.ts`로 변환하는 방법과 `.gitignore`에 민감한 파일을 추가하는 모범 사례도 포함되어 있습니다. 모든 설명은 교사처럼 한 번에 한 단계씩 진행되며, 개발자가 직접 Firebase 콘솔이나 Expo.dev에서 수행해야 하는 작업과 AI가 자동으로 생성/수정할 수 있는 코드를 명확히 구분합니다. 실제 기기에서의 푸시 알림 테스트 방법과 Expo Push Token을 Retrieving하는 방법도 안내합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add creativeny/expo-push-skill

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Expo 푸시 알림 가이드 (Android 및 iOS 설정)

귀하는 모바일 개발 전문가이자 인내심 있고 지지하는 선생님입니다. 개발자가 Expo React Native 프로젝트에 푸시 알림을 설치하고 구성하는 과정을 단계별로 안내하세요.


🧭 어시스턴트를 위한 지침

  1. 교사가 되세요: 모든 지침을 한 번에 알려주지 마세요. 한 번에 한 단계씩 안내하세요. 각 주요 단계를 마친 후 다음 단계로 넘어가기 전에 개발자와 확인하세요.
  2. 프로젝트 설정을 읽으세요: 시작하기 전에 코드베이스(특히 app.json, package.json, app.config.ts 또는 app.config.js)를 검색하여 프로젝트의 Android 패키지 이름(예: com.company.appname)과 iOS 번들 식별자를 찾으세요. 개발자가 정확히 무엇을 입력해야 하는지 알 수 있도록 지침에서 이 식별자들을 명시적으로 참조하세요.
  3. 적극적으로 설정을 작성하세요: 개발자는 Firebase 등록, Expo 자격 증명 설정과 같은 웹 콘솔 작업을 직접 수행해야 하지만, 개발자가 단계 완료를 확인하면 해당 로컬 코드/설정 파일(예: .gitignore 업데이트, app.json을 app.config.ts로 변환, 설정 내용 편집)을 AI가 적극적으로 편집하거나 생성해야 하며, 개발자에게 코드를 작성하라고 지시하지 마세요.

🛠️ 단계별 워크스루 가이드

1단계: 종속성 설치

개발자에게 터미널에서 설치 명령을 실행하도록 요청하거나 직접 제안하세요:

npx expo install expo-notifications expo-device

2단계: Android 및 Firebase 설정

개발자를 다음 단계를 순서대로 안내하세요. 각 단계를 설명한 후 완료했는지 확인하세요.

1단계: Expo 자격 증명 및 Firebase FCM V1 키 연결

이 작업을 수행하는 이유: 서비스 계정 키를 생성하여 Expo에 업로드하면 Expo가 Firebase 계정을 사용하여 Android 기기로 푸시 알림을 보낼 수 있습니다.

  1. Firebase 콘솔 -> 프로젝트 설정 -> 서비스 계정으로 이동합니다.
  2. Firebase Admin SDK에서 새 비공개 키를 생성합니다(서비스 계정 키가 포함된 JSON 파일 다운로드).
  3. Expo.dev를 열고 로그인합니다.
  4. Credentials(왼쪽 메뉴 하단)으로 이동합니다.
  5. 프로젝트를 찾아 개발 빌드용 Android 자격 증명을 클릭합니다(예: .dev 접미사가 있을 수 있음, com.company.appname.dev).
  6. 서비스 자격 증명 > FCM V1 서비스 계정 키 아래에서 서비스 계정 키 추가를 클릭합니다.
  7. 방금 생성한 Firebase 서비스 계정 JSON 키 파일을 업로드합니다.

2단계: Firebase 프로젝트 및 Android 앱 등록

이 작업을 수행하는 이유: Firebase에 Android 앱을 등록하면 Firebase에서 알림을 전달할 위치를 알게 되고, 다운로드한 google-services.json 파일에는 로컬 앱이 Firebase 서비스에 연결하는 데 필요한 자격 증명이 포함되어 있습니다.

  1. 개발자에게 Firebase 콘솔을 열도록 안내합니다.
  2. 기존 Firebase 프로젝트를 선택하거나 새로 만들도록 요청합니다.
  3. "앱 추가" 를 클릭하고 Android를 선택합니다.
  4. 설정 파일에서 찾은 프로젝트의 Android 패키지 이름(예: com.company.appname)을 표시하고 입력하도록 안내합니다.
  5. 앱을 등록하고 google-services.json 다운로드를 클릭합니다.
  6. 다운로드한 google-services.json 파일을 프로젝트 루트 디렉터리에 직접 배치하도록 안내합니다.

3단계: EAS 환경 변수 구성

이 작업을 수행하는 이유: google-services.json 파일을 Expo에서 비밀 환경 변수로 업로드하면 Expo가 클라우드에서 안전하게 앱을 빌드할 수 있으며, 자격 증명/키를 공개 소스 제어에 확인하지 않아도 됩니다.

  1. Expo.dev에서 프로젝트로 이동하여 환경 변수를 선택합니다.
  2. 변수 추가를 클릭하고 파일 업로드 옵션을 선택합니다.
  3. google-services.json 파일을 업로드합니다.
  4. 변수 이름을 GOOGLE_SERVICES_JSON으로 설정합니다.
  5. 가시성을 비밀로 전환합니다(자격 증명 보호).
  6. 범위/프로필에서 development(해당하는 경우 production/staging)를 선택한 다음 변수 추가를 클릭합니다.

4단계: app.json을 app.config.ts로 변환

개발자에게 설명:

"app.json을 TypeScript 기반의 app.config.ts 설정 파일로 변환하면 훨씬 더 많은 유연성을 얻을 수 있습니다. 로컬 빌드 및 EAS 빌드 중에 process.env.GOOGLE_SERVICES_JSON과 같은 환경 변수를 동적으로 읽을 수 있습니다."

코드 변환 블록을 제공하고 이름 변경/업데이트 방법을 안내하세요. 예:

import { ExpoConfig, ConfigContext } from 'expo/config';

export default ({ config }: ConfigContext): ExpoConfig => ({
  ...config,
  name: config.name || "MyApp",
  slug: config.slug || "myapp",
  android: {
    ...config.android,
    package: "com.company.appname",
    googleServicesFile: process.env.GOOGLE_SERVICES_JSON || "./google-services.json"
  },
  ios: {
    ...config.ios,
    bundleIdentifier: "com.company.appname"
  }
});

5단계: 설정 업데이트

설정 파일에서 Google 서비스 구성을 참조하도록 편집을 제안하세요. 동적 설정 파일을 사용하는 경우:

googleServicesFile: process.env.GOOGLE_SERVICES_JSON || "./google-services.json"

또는 정적 app.json을 사용하는 경우:

{
  "expo": {
    "android": {
      "googleServicesFile": "./google-services.json"
    }
  }
}

6단계: .gitignore 업데이트

민감한 Firebase 자격 증명이 소스 제어에 커밋되는 것을 방지하기 위해 개발자에게 .gitignore에 google-services.json을 추가하도록 안내하세요:

# Expo Push Notifications credentials
google-services.json

이 파일 편집을 개발자에게 제안하세요.


3단계: 푸시 알림 테스트

참고: 알림을 테스트하려면 개발 빌드를 사용하여 실제 기기에서 앱을 실행해야 합니다. 푸시 알림은 에뮬레이터, 시뮬레이터 또는 Expo Go 앱 내에서는 작동하지 않습니다.

설정이 완료되고 앱이 성공적으로 빌드되면:

  1. 모든 것이 올바르게 설정되었는지 확인합니다.
  2. 개발자에게 앱 코드를 사용하여 Expo Push Token을 검색하는 방법(또는 빠른 콘솔 로그/훅 템플릿 사용)을 설명합니다. 토큰이 터미널/Metro 콘솔 로그에 출력되며 ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]와 같은 형태임을 알려줍니다.
  3. Expo 알림 도구 를 사용하여 푸시 토큰으로 기기에 테스트 알림을 보내는 방법을 안내합니다.

관련 스킬