JSPM

react-native-dynamic-app-icon

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 3396
  • Score
    100M100P100Q121560F
  • License MIT

Programatically change the app icon with React Native.

Package Exports

  • react-native-dynamic-app-icon

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-dynamic-app-icon) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

React Native Dynamic App Icon

Since iOS 10.3 Apple supports alternate App Icons to be set programatically. This package integrates this functionality as React Native module. Android is not (yet?) supported.

Table of Contents

Install

$ npm install react-native-dynamic-app-icon

Mostly automatic installation

$ react-native link react-native-dynamic-app-icon

Manual installation

  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-dynamic-app-icon and add RNDynamicAppIcon.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNDynamicAppIcon.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project

Add alternate icons

Alternate icons have to be placed directly in your Xcode project rather than inside an asset catalogue. The @2x and @3x naming convention is supported as usual.

Adjust info.plist

Copy the following to your info.plist and adjust it as needed. The omit the file extension (and @2x) part, Xcode will pick them accordingly. You can add more alternate icons by adding more items to the alternate dict.

<key>CFBundleIcons</key>
<dict>
  <key>CFBundleAlternateIcons</key>
  <dict>
    <key>alternate</key>
    <dict>
      <key>CFBundleIconFiles</key>
      <array>
        <string>ALTERNATE_FILENAME</string>
      </array>
      <key>UIPrerenderedIcon</key>
      <false/>
    </dict>
    <key>CFBundlePrimaryIcon</key>
    <dict>
      <key>CFBundleIconFiles</key>
      <array>
        <string>FILENAME</string>
      </array>
    </dict>
  </dict>
</dict>

Usage

import AppIcon from 'react-native-dynamic-app-icon';

AppIcon.setAppIcon('filename');

Api

setAppIcon(filename: string)

To change the app icon call this method with one of the filenames specified in your plist.info. To reset to the default app icon pass null.

supportsDynamicAppIcon()

Returns a promise which resolves to a boolean.

License

MIT © idearockers