### iOS Smoke App Setup Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/f4-hardware-e2e.md Initializes the Notification Service Extension (NSE) for iOS, installs pods, and prepares the Xcode workspace for building and running on a device. Ensure correct signing team is set in Xcode. ```bash npx react-native-notify-kit init-nse --ios-path apps/smoke/ios cd apps/smoke/ios && pod install # Open NotifeeExample.xcworkspace in Xcode # Set signing team for both NotifeeExample and NotifyKitNSE targets # Build and run on device ``` -------------------------------- ### Install and Build Project Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/CONTRIBUTING.md Install project dependencies and build all packages, including native core and TypeScript. ```bash yarn install yarn build:all # Build everything (native core + TypeScript) ``` -------------------------------- ### Install Pods for iOS Project Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/f4-hardware-execution-runbook.md Navigate to the iOS directory of your project and install the necessary CocoaPods dependencies. ```bash cd apps/smoke/ios pod install ``` -------------------------------- ### Start Smoke Test App Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/CONTRIBUTING.md Start the Metro bundler for the smoke test application. ```bash yarn smoke:start # Start Metro bundler ``` -------------------------------- ### Install Dependencies and Build Server SDK Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/f4-hardware-e2e.md Installs project dependencies and rebuilds the server SDK for the `yarn send:test:fcm` command. This is a prerequisite for sending test notifications. ```bash # Install repo dependencies if needed yarn install # Rebuild the server SDK if dist is missing or stale yarn build:rn:server ``` -------------------------------- ### Initialize iOS Notification Service Extension with React Native CLI Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/fcm-mode.mdx For bare React Native projects, use the `npx react-native-notify-kit init-nse` command to set up the Notification Service Extension. Follow this with `cd ios && pod install` to complete the native dependency setup. ```bash npx react-native-notify-kit init-nse cd ios && pod install ``` -------------------------------- ### START_WORKOUT Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/reference/Enumeration.IOSIntentIdentifier.mdx Identifier for starting a workout. ```APIDOC ## START_WORKOUT ### Description Identifier for starting a workout. ### Value `9` ``` -------------------------------- ### Install Dependencies Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/fcm-mode.mdx Install the necessary packages for React Native Notify Kit, Firebase App, and Firebase Messaging. ```bash yarn add react-native-notify-kit @react-native-firebase/app @react-native-firebase/messaging ``` -------------------------------- ### Troubleshoot iOS Pod Install Failures Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/f4-hardware-execution-runbook.md Solutions for common `pod install` failures on iOS, such as 'Unable to find host target' errors related to Podfile structure and dependency conflicts. ```markdown ### iOS — `pod install` fails 1. **"Unable to find host target"**: The CLI's Podfile patching creates a nested target inside the main app target. If the Podfile was manually modified, the nesting may be broken. Check: `cat apps/smoke/ios/Podfile | grep -A3 NotifyKitNSE`. 2. **Dependency conflict**: Run `pod install --repo-update`. ``` -------------------------------- ### iOS Notification Service Extension Setup (Ruby) Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/packages/react-native/README.md Add this to your Podfile for manual setup of the Notification Service Extension in bare React Native projects. ```ruby target 'YourNSETarget' do pod 'RNNotifeeCore', :path => '../node_modules/react-native-notify-kit' end ``` -------------------------------- ### Conventional Commits Examples Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/CONTRIBUTING.md Provides examples of commit messages following the Conventional Commits format for different types and scopes. ```text fix(android): handle null context in NotificationAlarmReceiver feat(ios): add setNotificationConfig opt-out flag docs: update migration guide ``` -------------------------------- ### Run Smoke App Commands Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/apps/smoke/README.md Execute these commands from the repository root to start and manage the smoke application. ```sh yarn smoke:start yarn smoke:android yarn smoke:ios ``` -------------------------------- ### START_PHOTO_PLAYBACK Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/reference/Enumeration.IOSIntentIdentifier.mdx Identifier for starting photo playback. ```APIDOC ## START_PHOTO_PLAYBACK ### Description Identifier for starting photo playback. ### Value `21` ``` -------------------------------- ### Quick Start: Display Local Notification Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/README.md This snippet demonstrates the basic steps to request permissions, create an Android channel, and display a local notification. ```typescript import notifee, { AndroidImportance } from 'react-native-notify-kit'; // 1. Request permission (required on Android 13+ and iOS) await notifee.requestPermission(); // 2. Create a channel (Android only, required for Android 8+) await notifee.createChannel({ id: 'default', name: 'Default Channel', importance: AndroidImportance.HIGH, }); // 3. Display a notification await notifee.displayNotification({ title: 'Hello', body: 'This is a local notification', android: { channelId: 'default' }, }); ``` -------------------------------- ### Install React Native NotifyKit with npm or Yarn Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/installation.mdx Install the package at the root of your React Native project using either npm or Yarn. ```bash # Using npm npm install --save react-native-notify-kit # Using Yarn yarn add react-native-notify-kit ``` -------------------------------- ### Install Expo Build Properties Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/installation.mdx Install the expo-build-properties package to manage Android SDK versions in your Expo project. ```bash npx expo install expo-build-properties ``` -------------------------------- ### Rebuild Project for Autolinking Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/installation.mdx After installation, rebuild your iOS and Android projects to ensure autolinking is applied correctly. For iOS, this includes installing pods. ```bash # For iOS cd ios/ && pod install --repo-update npx react-native run-ios # For Android npx react-native run-android ``` -------------------------------- ### Reinstall Pods for iOS Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/README.md After updating the package and imports, navigate to the `ios` directory and run `pod install` to link the native dependencies. ```bash cd ios && pod install ``` -------------------------------- ### Conventional Commits Type and Scope Examples Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/CLAUDE.md Illustrates the types and optional scopes for commit messages in the Conventional Commits format. ```text (): Types: `fix`, `feat`, `docs`, `style`, `refactor`, `test`, `chore`, `build` Scopes: `android`, `ios`, `expo` (optional) ``` -------------------------------- ### Basic React Native Component Setup Source: https://github.com/marcocrupi/react-native-notify-kit/blob/main/docs/react-native/displaying-a-notification.mdx Sets up a basic React Native view with a button to trigger notification display. Ensure you have the 'react-native-notify-kit' library imported. ```javascript import React from 'react'; import { View, Button } from 'react-native'; import notifee from 'react-native-notify-kit'; function Screen() { return (