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
- In XCode, in the project navigator, right click
Libraries➜Add Files to [your project's name] - Go to
node_modules➜react-native-dynamic-app-iconand addRNDynamicAppIcon.xcodeproj - In XCode, in the project navigator, select your project. Add
libRNDynamicAppIcon.ato your project'sBuild Phases➜Link Binary With Libraries - 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.