Compare commits

...
Author SHA1 Message Date
semantic-release-bot 96fbab5b2a chore: 1.0.1
### [1.0.1](https://github.com/expo/config-plugins/compare/@config-plugins/[email protected]...@config-plugins/[email protected]) (2022-03-15)

### Bug Fixes

* **ci:** use correct internal versions ([ab8076a](https://github.com/expo/config-plugins/commit/ab8076adf51e9ba0439eba60b153d729a0996b8d))
* **detox:** remove invalid changelog entries ([4affbbb](https://github.com/expo/config-plugins/commit/4affbbb7ccd0d1309e6711a73bd4227011849064))

### Other chores

* 1.0.0 ([831546f](https://github.com/expo/config-plugins/commit/831546f34b8b0122da8ca5ef3515c93fe62ee1d4)), closes [#48](https://github.com/expo/config-plugins/issues/48) [#49](https://github.com/expo/config-plugins/issues/49) [#46](https://github.com/expo/config-plugins/issues/46) [#3](https://github.com/expo/config-plugins/issues/3)
* 1.0.0 ([90b841d](https://github.com/expo/config-plugins/commit/90b841d285a8afc3047e0fdb20fdf31172b1b1f9)), closes [#48](https://github.com/expo/config-plugins/issues/48) [#49](https://github.com/expo/config-plugins/issues/49) [#46](https://github.com/expo/config-plugins/issues/46) [#3](https://github.com/expo/config-plugins/issues/3)
2022-03-15 22:45:08 +00:00
semantic-release-bot 4b7192f364 chore: 1.0.1
### [1.0.1](https://github.com/expo/config-plugins/compare/@config-plugins/[email protected]...@config-plugins/[email protected]) (2022-03-15)

### Bug Fixes

* **ci:** use correct internal versions ([ab8076a](https://github.com/expo/config-plugins/commit/ab8076adf51e9ba0439eba60b153d729a0996b8d))
* **detox:** remove invalid changelog entries ([4affbbb](https://github.com/expo/config-plugins/commit/4affbbb7ccd0d1309e6711a73bd4227011849064))

### Other chores

* 1.0.0 ([831546f](https://github.com/expo/config-plugins/commit/831546f34b8b0122da8ca5ef3515c93fe62ee1d4)), closes [#48](https://github.com/expo/config-plugins/issues/48) [#49](https://github.com/expo/config-plugins/issues/49) [#46](https://github.com/expo/config-plugins/issues/46) [#3](https://github.com/expo/config-plugins/issues/3)
* 1.0.0 ([90b841d](https://github.com/expo/config-plugins/commit/90b841d285a8afc3047e0fdb20fdf31172b1b1f9)), closes [#48](https://github.com/expo/config-plugins/issues/48) [#49](https://github.com/expo/config-plugins/issues/49) [#46](https://github.com/expo/config-plugins/issues/46) [#3](https://github.com/expo/config-plugins/issues/3)
* 1.0.0 ([99acdc7](https://github.com/expo/config-plugins/commit/99acdc71d24771702499d1993bd7683543f9a274)), closes [#48](https://github.com/expo/config-plugins/issues/48) [#49](https://github.com/expo/config-plugins/issues/49) [#46](https://github.com/expo/config-plugins/issues/46) [#3](https://github.com/expo/config-plugins/issues/3)
2022-03-15 22:45:05 +00:00
semantic-release-bot 7896eccf49 chore: 1.0.1
### @expo/app [1.0.1](https://github.com/expo/config-plugins/compare/@expo/[email protected]...@expo/[email protected]) (2022-03-15)

### Bug Fixes

* **ci:** use correct internal versions ([ab8076a](https://github.com/expo/config-plugins/commit/ab8076adf51e9ba0439eba60b153d729a0996b8d))

### Dependencies

* **@config-plugins/android-jsc-intl:** upgraded to 1.0.1
* **@config-plugins/detox:** upgraded to 1.0.1
* **@config-plugins/react-native-adjust:** upgraded to 1.0.0
* **@config-plugins/react-native-ble-plx:** upgraded to 1.0.0
* **@config-plugins/react-native-blob-util:** upgraded to 1.0.1
* **@config-plugins/react-native-branch:** upgraded to 1.0.0
* **@config-plugins/react-native-callkeep:** upgraded to 1.0.0
* **@config-plugins/react-native-dynamic-app-icon:** upgraded to 1.0.0
* **@config-plugins/react-native-google-cast:** upgraded to 1.0.0
* **@config-plugins/react-native-pdf:** upgraded to 1.0.0
* **@config-plugins/react-native-quick-actions:** upgraded to 1.0.0
* **@config-plugins/react-native-webrtc:** upgraded to 1.0.0
2022-03-15 22:45:02 +00:00
evanbacon ab8076adf5 fix(ci): use correct internal versions 2022-03-15 17:41:42 -05:00
evanbacon 4affbbb7cc fix(detox): remove invalid changelog entries 2022-03-15 17:25:38 -05:00
semantic-release-bot 831546f34b chore: 1.0.0
## 1.0.0 (2022-03-15)

### Features

* **ci:** added auto release actions to GitHub Actions ([#48](https://github.com/expo/config-plugins/issues/48)) ([cf5c3fe](https://github.com/expo/config-plugins/commit/cf5c3fe7c4e0433189e912ae9a877ae8a22fcd64))
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
* support for universalLinkDomains ([01ca879](https://github.com/expo/config-plugins/commit/01ca879ca3f6cebac1177d74969337819a5fc72d))

### Bug Fixes

* **ci:** add root package.json name ([0e2ad56](https://github.com/expo/config-plugins/commit/0e2ad56f15f0e0add4cf58d55c88ebac3ea002ac))
* added expo-module.config.json to files ([57d589b](https://github.com/expo/config-plugins/commit/57d589ba8ad60e057b34ad7b2f404f67e85896ab))
* fixed MATCH_INIT for SDKv44 ([904741a](https://github.com/expo/config-plugins/commit/904741a3bdb02f5bb76ebcf44131f1698dad0831))
* fixed missing files when publish ([ebb8666](https://github.com/expo/config-plugins/commit/ebb86666d6e61a70838048839b144c7217886d73))
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
* updates from code-reviews ([597ffc3](https://github.com/expo/config-plugins/commit/597ffc3bd76517ac96c39b77d8b76e6aee2609dd))
* **android:** added `onNewIntent` handler ([31ed997](https://github.com/expo/config-plugins/commit/31ed9978ca6c0a079341b5b4be5479a5e5633f79))
* removed proguard-rules.pro edit step ([e1159b4](https://github.com/expo/config-plugins/commit/e1159b4021ab722cf3998479e6a459374bdb5075))
* rename module ([7f0dd05](https://github.com/expo/config-plugins/commit/7f0dd05fdc15293b84606cb000bcd7321b418de8))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))

### Code Refactoring

* **android:** migrate to new expo modules system ([1ac233e](https://github.com/expo/config-plugins/commit/1ac233eb432eaeeb7ead6723a4a232f86cfc8e50))
* **ios:** migrate to new expo modules system ([a98a6e0](https://github.com/expo/config-plugins/commit/a98a6e022fc06f8b9c996e4e2b4a1d7aac830d8a))
* update plugin to use CodeMod ([ae66cac](https://github.com/expo/config-plugins/commit/ae66cac141847e33add62cc30375620e1a5cc1d0))

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
* **networkConfig:** Fix android crash on empty subdomains config ([#46](https://github.com/expo/config-plugins/issues/46)) ([88e0cd0](https://github.com/expo/config-plugins/commit/88e0cd0ccfdcc337e9c03f318d781aa1097e148b)), closes [#3](https://github.com/expo/config-plugins/issues/3)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* apply suggestions from code review ([0ccc227](https://github.com/expo/config-plugins/commit/0ccc22771d5ecc97da7720c362ecf90a76e5de1c))
* cleanup android gitignore ([c88609a](https://github.com/expo/config-plugins/commit/c88609a8666be1b4137a3694bd844bb6a0f1ec12))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))

### Documentation changes

* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
2022-03-15 21:56:49 +00:00
semantic-release-bot 90b841d285 chore: 1.0.0
## 1.0.0 (2022-03-15)

### Features

* **ci:** added auto release actions to GitHub Actions ([#48](https://github.com/expo/config-plugins/issues/48)) ([cf5c3fe](https://github.com/expo/config-plugins/commit/cf5c3fe7c4e0433189e912ae9a877ae8a22fcd64))
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
* support for universalLinkDomains ([01ca879](https://github.com/expo/config-plugins/commit/01ca879ca3f6cebac1177d74969337819a5fc72d))

### Bug Fixes

* **ci:** add root package.json name ([0e2ad56](https://github.com/expo/config-plugins/commit/0e2ad56f15f0e0add4cf58d55c88ebac3ea002ac))
* added expo-module.config.json to files ([57d589b](https://github.com/expo/config-plugins/commit/57d589ba8ad60e057b34ad7b2f404f67e85896ab))
* fixed MATCH_INIT for SDKv44 ([904741a](https://github.com/expo/config-plugins/commit/904741a3bdb02f5bb76ebcf44131f1698dad0831))
* fixed missing files when publish ([ebb8666](https://github.com/expo/config-plugins/commit/ebb86666d6e61a70838048839b144c7217886d73))
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
* updates from code-reviews ([597ffc3](https://github.com/expo/config-plugins/commit/597ffc3bd76517ac96c39b77d8b76e6aee2609dd))
* **android:** added `onNewIntent` handler ([31ed997](https://github.com/expo/config-plugins/commit/31ed9978ca6c0a079341b5b4be5479a5e5633f79))
* removed proguard-rules.pro edit step ([e1159b4](https://github.com/expo/config-plugins/commit/e1159b4021ab722cf3998479e6a459374bdb5075))
* rename module ([7f0dd05](https://github.com/expo/config-plugins/commit/7f0dd05fdc15293b84606cb000bcd7321b418de8))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))

### Code Refactoring

* **android:** migrate to new expo modules system ([1ac233e](https://github.com/expo/config-plugins/commit/1ac233eb432eaeeb7ead6723a4a232f86cfc8e50))
* **ios:** migrate to new expo modules system ([a98a6e0](https://github.com/expo/config-plugins/commit/a98a6e022fc06f8b9c996e4e2b4a1d7aac830d8a))
* update plugin to use CodeMod ([ae66cac](https://github.com/expo/config-plugins/commit/ae66cac141847e33add62cc30375620e1a5cc1d0))

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
* **networkConfig:** Fix android crash on empty subdomains config ([#46](https://github.com/expo/config-plugins/issues/46)) ([88e0cd0](https://github.com/expo/config-plugins/commit/88e0cd0ccfdcc337e9c03f318d781aa1097e148b)), closes [#3](https://github.com/expo/config-plugins/issues/3)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* apply suggestions from code review ([0ccc227](https://github.com/expo/config-plugins/commit/0ccc22771d5ecc97da7720c362ecf90a76e5de1c))
* cleanup android gitignore ([c88609a](https://github.com/expo/config-plugins/commit/c88609a8666be1b4137a3694bd844bb6a0f1ec12))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))

### Documentation changes

* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
2022-03-15 21:56:44 +00:00
semantic-release-bot 99acdc71d2 chore: 1.0.0
## 1.0.0 (2022-03-15)

### Features

* **ci:** added auto release actions to GitHub Actions ([#48](https://github.com/expo/config-plugins/issues/48)) ([cf5c3fe](https://github.com/expo/config-plugins/commit/cf5c3fe7c4e0433189e912ae9a877ae8a22fcd64))
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
* support for universalLinkDomains ([01ca879](https://github.com/expo/config-plugins/commit/01ca879ca3f6cebac1177d74969337819a5fc72d))

### Bug Fixes

* **ci:** add root package.json name ([0e2ad56](https://github.com/expo/config-plugins/commit/0e2ad56f15f0e0add4cf58d55c88ebac3ea002ac))
* added expo-module.config.json to files ([57d589b](https://github.com/expo/config-plugins/commit/57d589ba8ad60e057b34ad7b2f404f67e85896ab))
* fixed MATCH_INIT for SDKv44 ([904741a](https://github.com/expo/config-plugins/commit/904741a3bdb02f5bb76ebcf44131f1698dad0831))
* fixed missing files when publish ([ebb8666](https://github.com/expo/config-plugins/commit/ebb86666d6e61a70838048839b144c7217886d73))
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
* updates from code-reviews ([597ffc3](https://github.com/expo/config-plugins/commit/597ffc3bd76517ac96c39b77d8b76e6aee2609dd))
* **android:** added `onNewIntent` handler ([31ed997](https://github.com/expo/config-plugins/commit/31ed9978ca6c0a079341b5b4be5479a5e5633f79))
* removed proguard-rules.pro edit step ([e1159b4](https://github.com/expo/config-plugins/commit/e1159b4021ab722cf3998479e6a459374bdb5075))
* rename module ([7f0dd05](https://github.com/expo/config-plugins/commit/7f0dd05fdc15293b84606cb000bcd7321b418de8))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))

### Code Refactoring

* **android:** migrate to new expo modules system ([1ac233e](https://github.com/expo/config-plugins/commit/1ac233eb432eaeeb7ead6723a4a232f86cfc8e50))
* **ios:** migrate to new expo modules system ([a98a6e0](https://github.com/expo/config-plugins/commit/a98a6e022fc06f8b9c996e4e2b4a1d7aac830d8a))
* update plugin to use CodeMod ([ae66cac](https://github.com/expo/config-plugins/commit/ae66cac141847e33add62cc30375620e1a5cc1d0))

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
* **networkConfig:** Fix android crash on empty subdomains config ([#46](https://github.com/expo/config-plugins/issues/46)) ([88e0cd0](https://github.com/expo/config-plugins/commit/88e0cd0ccfdcc337e9c03f318d781aa1097e148b)), closes [#3](https://github.com/expo/config-plugins/issues/3)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* apply suggestions from code review ([0ccc227](https://github.com/expo/config-plugins/commit/0ccc22771d5ecc97da7720c362ecf90a76e5de1c))
* cleanup android gitignore ([c88609a](https://github.com/expo/config-plugins/commit/c88609a8666be1b4137a3694bd844bb6a0f1ec12))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))

### Documentation changes

* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
2022-03-15 21:56:41 +00:00
semantic-release-bot d656142bd0 chore: 1.0.0
## 1.0.0 (2022-03-15)

### Features

* **ci:** added auto release actions to GitHub Actions ([#48](https://github.com/expo/config-plugins/issues/48)) ([cf5c3fe](https://github.com/expo/config-plugins/commit/cf5c3fe7c4e0433189e912ae9a877ae8a22fcd64))
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
* support for universalLinkDomains ([01ca879](https://github.com/expo/config-plugins/commit/01ca879ca3f6cebac1177d74969337819a5fc72d))

### Bug Fixes

* **ci:** add root package.json name ([0e2ad56](https://github.com/expo/config-plugins/commit/0e2ad56f15f0e0add4cf58d55c88ebac3ea002ac))
* added expo-module.config.json to files ([57d589b](https://github.com/expo/config-plugins/commit/57d589ba8ad60e057b34ad7b2f404f67e85896ab))
* fixed MATCH_INIT for SDKv44 ([904741a](https://github.com/expo/config-plugins/commit/904741a3bdb02f5bb76ebcf44131f1698dad0831))
* fixed missing files when publish ([ebb8666](https://github.com/expo/config-plugins/commit/ebb86666d6e61a70838048839b144c7217886d73))
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
* updates from code-reviews ([597ffc3](https://github.com/expo/config-plugins/commit/597ffc3bd76517ac96c39b77d8b76e6aee2609dd))
* **android:** added `onNewIntent` handler ([31ed997](https://github.com/expo/config-plugins/commit/31ed9978ca6c0a079341b5b4be5479a5e5633f79))
* removed proguard-rules.pro edit step ([e1159b4](https://github.com/expo/config-plugins/commit/e1159b4021ab722cf3998479e6a459374bdb5075))
* rename module ([7f0dd05](https://github.com/expo/config-plugins/commit/7f0dd05fdc15293b84606cb000bcd7321b418de8))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))

### Code Refactoring

* **android:** migrate to new expo modules system ([1ac233e](https://github.com/expo/config-plugins/commit/1ac233eb432eaeeb7ead6723a4a232f86cfc8e50))
* **ios:** migrate to new expo modules system ([a98a6e0](https://github.com/expo/config-plugins/commit/a98a6e022fc06f8b9c996e4e2b4a1d7aac830d8a))
* update plugin to use CodeMod ([ae66cac](https://github.com/expo/config-plugins/commit/ae66cac141847e33add62cc30375620e1a5cc1d0))

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
* **networkConfig:** Fix android crash on empty subdomains config ([#46](https://github.com/expo/config-plugins/issues/46)) ([88e0cd0](https://github.com/expo/config-plugins/commit/88e0cd0ccfdcc337e9c03f318d781aa1097e148b)), closes [#3](https://github.com/expo/config-plugins/issues/3)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* apply suggestions from code review ([0ccc227](https://github.com/expo/config-plugins/commit/0ccc22771d5ecc97da7720c362ecf90a76e5de1c))
* cleanup android gitignore ([c88609a](https://github.com/expo/config-plugins/commit/c88609a8666be1b4137a3694bd844bb6a0f1ec12))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))

### Documentation changes

* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
2022-03-15 21:56:37 +00:00
semantic-release-bot 063e812b0b chore: 1.0.0
## 1.0.0 (2022-03-15)

### Features

* **ci:** added auto release actions to GitHub Actions ([#48](https://github.com/expo/config-plugins/issues/48)) ([cf5c3fe](https://github.com/expo/config-plugins/commit/cf5c3fe7c4e0433189e912ae9a877ae8a22fcd64))
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
* support for universalLinkDomains ([01ca879](https://github.com/expo/config-plugins/commit/01ca879ca3f6cebac1177d74969337819a5fc72d))

### Bug Fixes

* **ci:** add root package.json name ([0e2ad56](https://github.com/expo/config-plugins/commit/0e2ad56f15f0e0add4cf58d55c88ebac3ea002ac))
* added expo-module.config.json to files ([57d589b](https://github.com/expo/config-plugins/commit/57d589ba8ad60e057b34ad7b2f404f67e85896ab))
* fixed MATCH_INIT for SDKv44 ([904741a](https://github.com/expo/config-plugins/commit/904741a3bdb02f5bb76ebcf44131f1698dad0831))
* fixed missing files when publish ([ebb8666](https://github.com/expo/config-plugins/commit/ebb86666d6e61a70838048839b144c7217886d73))
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
* updates from code-reviews ([597ffc3](https://github.com/expo/config-plugins/commit/597ffc3bd76517ac96c39b77d8b76e6aee2609dd))
* **android:** added `onNewIntent` handler ([31ed997](https://github.com/expo/config-plugins/commit/31ed9978ca6c0a079341b5b4be5479a5e5633f79))
* removed proguard-rules.pro edit step ([e1159b4](https://github.com/expo/config-plugins/commit/e1159b4021ab722cf3998479e6a459374bdb5075))
* rename module ([7f0dd05](https://github.com/expo/config-plugins/commit/7f0dd05fdc15293b84606cb000bcd7321b418de8))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))

### Code Refactoring

* **android:** migrate to new expo modules system ([1ac233e](https://github.com/expo/config-plugins/commit/1ac233eb432eaeeb7ead6723a4a232f86cfc8e50))
* **ios:** migrate to new expo modules system ([a98a6e0](https://github.com/expo/config-plugins/commit/a98a6e022fc06f8b9c996e4e2b4a1d7aac830d8a))
* update plugin to use CodeMod ([ae66cac](https://github.com/expo/config-plugins/commit/ae66cac141847e33add62cc30375620e1a5cc1d0))

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
* **networkConfig:** Fix android crash on empty subdomains config ([#46](https://github.com/expo/config-plugins/issues/46)) ([88e0cd0](https://github.com/expo/config-plugins/commit/88e0cd0ccfdcc337e9c03f318d781aa1097e148b)), closes [#3](https://github.com/expo/config-plugins/issues/3)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* apply suggestions from code review ([0ccc227](https://github.com/expo/config-plugins/commit/0ccc22771d5ecc97da7720c362ecf90a76e5de1c))
* cleanup android gitignore ([c88609a](https://github.com/expo/config-plugins/commit/c88609a8666be1b4137a3694bd844bb6a0f1ec12))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))

### Documentation changes

* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
2022-03-15 21:56:33 +00:00
semantic-release-bot 4a3de37e9c chore: 1.0.0
## @config-plugins/react-native-blob-util 1.0.0 (2022-03-15)

### Other chores

* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
2022-03-15 21:56:30 +00:00
Evan Bacon 0e2ad56f15 fix(ci): add root package.json name 2022-03-15 16:42:47 -05:00
Evan BaconandGiau. Tran Minh cf5c3fe7c4 feat(ci): added auto release actions to GitHub Actions (#48)
* feat(ci): added auto release actions to GitHub Actions

* Update .github/workflows/release.yml

Co-authored-by: Giau. Tran Minh <[email protected]>

* update branches

* use github.token

* Update .releaserc.js

Co-authored-by: Giau. Tran Minh <[email protected]>
2022-03-15 16:38:04 -05:00
Giau. Tran Minh 119e31edf1 chore: upgrade @expo/config-plugins (#49) 2022-03-15 10:23:37 -05:00
Evan Bacon 379edcd74c Publish @config-plugins/[email protected] (SDK 44) 2022-03-02 21:45:04 -07:00
Gozie Ochu 88e0cd0ccf chore(networkConfig): Fix android crash on empty subdomains config (#46)
## Background
The app crashes when `detox` plugin is configured with an empty subdomain in cases where it's desired to allow all traffic.

## Cause
```
      [
        "@config-plugins/detox",
        {
          "subdomains": []
        }
      ]
```
The configuration above generates an invalid xml resulting in a  `Caused by: [android.security.net](http://android.security.net/).config.XmlConfigSource$ParserException: No domain elements in domain-config at: Binary XML file line #3` as it generates

```
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    
        <domain-config cleartextTrafficPermitted="true">
           
        </domain-config>
        
</network-security-config>
```


## Fix
This PR inserts a `base-config` instead of a `domain-config` when subdomains is "*" to allow all traffic.
```
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
</network-security-config>

```

It also omits making the network security config XML file when subdomains is an empty array.
2022-03-02 20:14:19 -08:00
Evan Bacon ec2bbedf8b Merge pull request #28 from giautm/giautm/branch
feat: create react-native-branch plugin
2022-02-01 10:43:45 -07:00
Giau. Tran MinhandKudo Chien 0ccc22771d chore: apply suggestions from code review
Co-authored-by: Kudo Chien <[email protected]>
2022-01-28 01:42:23 +07:00
Giau. Tran Minh df98474d79 chore: upgrade to latest react-native-branch 2022-01-26 11:11:35 +07:00
Evan Bacon 8694389f12 Merge pull request #42 from expo/@evanbacon/webrtc/fix-dev-builds-against-devices
[webrtc] Fully disable bitcode to support development builds on physical devices
2022-01-24 12:45:13 -07:00
Evan Bacon 8ed4e44aee Fully disable bitcode to support development builds on physical devices 2022-01-24 12:36:49 -07:00
Giau. Tran Minh c88609a866 chore: cleanup android gitignore 2022-01-20 15:46:39 +07:00
Giau. Tran Minh 597ffc3bd7 fix: updates from code-reviews 2022-01-20 15:46:38 +07:00
Giau. Tran Minh d0b32ce4a1 chore: rename files to avoid possible conflict 2022-01-20 15:46:37 +07:00
Giau. Tran Minh 57d589ba8a fix: added expo-module.config.json to files 2022-01-20 15:46:36 +07:00
Giau. Tran Minh ebb86666d6 fix: fixed missing files when publish 2022-01-20 15:46:35 +07:00
Giau. Tran Minh 31ed9978ca fix(android): added onNewIntent handler 2022-01-20 15:46:34 +07:00
Giau. Tran Minh a98a6e022f refactor(ios): migrate to new expo modules system
fix: fixed correct class name

fix: fixed application:continue:restorationHandler
2022-01-20 15:46:34 +07:00
Giau. Tran Minh 1ac233eb43 refactor(android): migrate to new expo modules system 2022-01-20 15:46:33 +07:00
Giau. Tran Minh e1159b4021 fix: removed proguard-rules.pro edit step 2022-01-20 15:46:32 +07:00
Giau. Tran Minh ae66cac141 refactor: update plugin to use CodeMod 2022-01-20 15:46:31 +07:00
Giau. Tran MinhandEvan Bacon 71e429b77f chore: rename module
Co-authored-by: Evan Bacon <[email protected]>
2022-01-20 15:46:30 +07:00
Giau. Tran Minh ef50c05892 chore: latest cleanup 2022-01-20 15:46:29 +07:00
Giau. Tran Minh 904741a3bd fix: fixed MATCH_INIT for SDKv44 2022-01-20 15:46:28 +07:00
Giau. Tran Minh 01ca879ca3 feat: support for universalLinkDomains 2022-01-20 15:46:27 +07:00
Giau. Tran Minh 7f0dd05fdc fix: rename module 2022-01-20 15:46:26 +07:00
Giau. Tran Minh d0e018601c fix: respect old config from expo-branch 2022-01-20 15:46:08 +07:00
Giau. Tran Minh 0b06baa2b4 feat: create react-native-branch plugin 2022-01-20 15:42:35 +07:00
Evan Bacon 1de3e74d19 Merge pull request #41 from expo/@evanbacon/ios-stickers/added-option-validation 2022-01-19 16:38:59 -07:00
Evan Bacon 2dcf5394d8 Update package.json 2022-01-17 14:13:55 -07:00
Evan Bacon 642fc37966 Updated issue templates 2022-01-17 14:08:36 -07:00
Evan Bacon e1176398ec Merge pull request #37 from Kerumen/feat/add-adjust
Add Adjust SDK config plugin
2022-01-17 14:05:26 -07:00
Evan Bacon 136c428d07 [ios-stickers] Added JSON schema validation 2022-01-17 13:58:47 -07:00
Yann Pringault 179ef7824f Add targetAndroid12 option 2022-01-14 17:16:39 +01:00
Evan Bacon dd40467e2b Merge pull request #39 from expo/@evanbacon/add-repo-info
Add repo links
2022-01-13 16:08:20 -07:00
Evan Bacon 90ff4ab4d6 Update bug_report.yml 2022-01-13 16:07:36 -07:00
Evan Bacon 1f851b2931 Update enhancement.yml 2022-01-13 16:06:13 -07:00
Evan Bacon ca5ce46616 Update enhancement.yml 2022-01-13 16:04:48 -07:00
Evan Bacon 7f3e49b873 update language 2022-01-13 16:04:23 -07:00
Evan Bacon 3021b3e5bc Update enhancement.yml 2022-01-13 16:03:32 -07:00
Evan Bacon 1f9becb8e0 Update enhancement.yml 2022-01-13 16:03:05 -07:00
Evan Bacon 1b11be1c6b Update enhancement.yml 2022-01-13 16:01:09 -07:00
Evan Bacon 217e2a6ad6 Updated issues 2022-01-13 15:57:25 -07:00
Evan Bacon e02d8752f5 updated issues 2022-01-13 15:56:45 -07:00
Evan Bacon e2e643655f updated 2022-01-13 15:55:28 -07:00
Evan Bacon c45a2eb620 Added the enhancement issue template 2022-01-13 15:55:00 -07:00
Evan Bacon 60a657c5d0 Update bug_report.yml 2022-01-13 15:39:24 -07:00
Evan Bacon aff6fc544c Updated issue template 2022-01-13 15:38:13 -07:00
Evan Bacon 63621acc3f Merge pull request #40 from expo/@evanbacon/gh-issue-config-script
Created script for generating issue redirects
2022-01-13 15:11:33 -07:00
Evan Bacon e758d8f047 Created script for generating issue redirects 2022-01-13 15:07:31 -07:00
Evan Bacon 996ec84a15 Add repo links 2022-01-13 14:38:00 -07:00
Evan Bacon 8a8528a60d update build files 2022-01-13 14:15:22 -07:00
Evan Bacon 81e959db3e Merge pull request #36 from Kerumen/patch-1
Fix optional status in withXcodeLinkBinaryWithLibraries
2022-01-13 14:13:47 -07:00
Yann Pringault 8f14b3e2a0 Use version in package.json instead of file reference 2022-01-12 20:22:27 +01:00
Yann Pringault c9317db090 Add example in app 2022-01-12 10:15:22 +01:00
Yann PringaultandEvan Bacon 46b7ef9182 Update packages/react-native-adjust/src/withReactNativeAdjust.ts
Co-authored-by: Evan Bacon <[email protected]>
2022-01-12 09:36:18 +01:00
Yann Pringault 199dee9542 Add Adjust SDK config plugin 2022-01-11 14:27:40 +01:00
Yann Pringault c248895ce9 Update withCallkeep.ts 2022-01-04 07:56:16 -08:00
Yann Pringault 7b77b4351d Fix optional status in withXcodeLinkBinaryWithLibraries 2022-01-04 07:51:38 -08:00
Evan Bacon be438e00c1 Update withIosDeploymentTarget.js 2021-12-17 17:19:52 -07:00
Evan Bacon d2f1837284 Merge pull request #32 from expo/@evanbacon/sdk-44
Upgrade to SDK 44
2021-12-17 17:17:50 -07:00
Evan Bacon bb43bbe8b7 Bumped all config plugins to SDK 44 support 2021-12-17 17:10:14 -07:00
Evan Bacon 58b042ab57 Removed extra
- Removed `react-native-gesture-handler`, `react-native-screens`, `react-native-web`, `react-dom`
2021-12-17 16:24:42 -07:00
Evan Bacon 25c2d8da82 Upgrade to SDK 44
- `expo upgrade` works
- `expo run:ios` works
- `expo run:android` works
- Removed `react-native-reanimated` which broke Android monorepos.
2021-12-17 16:20:50 -07:00
Evan Bacon 8526273bfa Update README.md 2021-12-17 09:59:07 -07:00
103 changed files with 4894 additions and 421 deletions

No files matched your search

+81
View File
@@ -0,0 +1,81 @@
name: "\U0001F41B Expo Config Plugin Bug Report"
description: Report a reproducible bug with one of the Expo Config Plugins.
labels: bug
body:
- type: markdown
attributes:
value: >-
Thanks for taking the time to file a bug report! Please fill out this
form as completely as possible.
- type: markdown
attributes:
value: >-
If you leave out sections there is a high likelihood your issue will be
closed. If you have a question, not a bug report, please post it on our
[forums](https://forums.expo.dev/) instead.
- type: textarea
attributes:
label: Summary
description: Describe the issue in 1 or 2 sentences
placeholder: >-
Clearly describe what the expected behavior is vs. what is actually
happening. This should be as short as possible, while still
communicating all the necessary information. If your summary is just 'X
library/method isn't working', then you need to continue debugging
yourself and provide more information.
validations:
required: true
- type: dropdown
attributes:
label: Config Plugin
options:
- '@config-plugins/android-jsc-intl'
- '@config-plugins/detox'
- '@config-plugins/ffmpeg-kit-react-native'
- '@config-plugins/ios-stickers'
- '@config-plugins/react-native-adjust'
- '@config-plugins/react-native-ble-plx'
- '@config-plugins/react-native-blob-util'
- '@config-plugins/react-native-callkeep'
- '@config-plugins/react-native-dynamic-app-icon'
- '@config-plugins/react-native-google-cast'
- '@config-plugins/react-native-pdf'
- '@config-plugins/react-native-quick-actions'
- '@config-plugins/react-native-webrtc'
validations:
required: true
- type: dropdown
attributes:
label: What platform(s) does this occur on?
multiple: true
options:
- Android
- iOS
validations:
required: true
- type: input
attributes:
label: SDK Version
description: What version of the Expo SDK are you using?
- type: textarea
attributes:
label: Reproducible demo
description: >-
This should include as little code as possible, do not simply link your
entire project. If a reproducible demo is not provided, it is very
likely your issue will be closed. Read [here more
guidance](https://stackoverflow.com/help/mcve).
validations:
required: true
- type: markdown
attributes:
value: >-
Please make sure contributors can run your code and follow the steps
your provided in order to reproduce the bug.
- type: markdown
attributes:
value: >-
**Realize that it is up to you to debug your code and be as certain as
possible that the bug is with Expo, not with your own app.** [Here's an
excellent guide to debugging you can
follow](https://gist.github.com/brentvatne/5ac00cba0c70b7a06b89a56787d6bc4a).
+44
View File
@@ -0,0 +1,44 @@
---
blank_issues_enabled: false
contact_links:
- name: "\U0001F914 Question about an Expo Config Plugin"
about: >-
If you have a question about an Expo Config Plugin, please ask it on the
forums, discord, Twitter, or Stack Overflow.
url: 'https://forums.expo.io/'
- about: E2E tests and automation for mobile
name: "\U0001F4E6 detox issues"
url: 'https://github.com/wix/Detox/issues'
- about: FFmpeg Kit for React Native
name: "\U0001F4E6 ffmpeg-kit-react-native issues"
url: 'https://github.com/tanersener/ffmpeg-kit/issues'
- about: Adjust React Native SDK
name: "\U0001F4E6 react-native-adjust issues"
url: 'https://github.com/adjust/react_native_sdk/issues'
- about: React Native Bluetooth Low Energy library
name: "\U0001F4E6 react-native-ble-plx issues"
url: 'https://github.com/Polidea/react-native-ble-plx/issues'
- about: >-
A module provides upload, download, and files access API. Supports file
stream read/write for process large files.
name: "\U0001F4E6 react-native-blob-util issues"
url: 'https://github.com/RonRadtke/react-native-blob-util/issues'
- about: iOS 10 CallKit and Android ConnectionService Framework For React Native
name: "\U0001F4E6 react-native-callkeep issues"
url: 'https://github.com/react-native-webrtc/react-native-callkeep/issues'
- about: Programmatically change the app icon in React Native.
name: "\U0001F4E6 react-native-dynamic-app-icon issues"
url: 'https://github.com/idearockers/react-native-dynamic-app-icon/issues'
- about: React Native wrapper for the Google Cast SDK for iOS and Android
name: "\U0001F4E6 react-native-google-cast issues"
url: >-
https://github.com/react-native-google-cast/react-native-google-cast/issues
- about: 'A react native PDF view component, support ios and android platform'
name: "\U0001F4E6 react-native-pdf issues"
url: 'https://github.com/wonday/react-native-pdf/issues'
- about: A react-native interface for Touch 3D home screen quick actions
name: "\U0001F4E6 react-native-quick-actions issues"
url: 'https://github.com/jordanbyron/react-native-quick-actions/issues'
- about: WebRTC for React Native
name: "\U0001F4E6 react-native-webrtc issues"
url: 'https://github.com/react-native-webrtc/react-native-webrtc/issues'
+22
View File
@@ -0,0 +1,22 @@
name: "⭐️ Config Plugin Request"
description: "Suggest an idea for a new Expo Config Plugin."
labels: enhancement
body:
- type: markdown
attributes:
value: "This repo is used for publishing out-of-tree plugins that should eventually be upstreamed in a particular package. If the plugin is a utility or used to improve some particular workflow i.e. updates version numbers, than it's probably better suited for a personal repo or utility package."
- type: input
attributes:
label: Library
description: What package does this Config Plugin configure.
placeholder: URL to a React Native package.
validations:
required: true
- type: textarea
attributes:
label: Summary
description: Add some info on why this integration is important.
- type: textarea
attributes:
label: Any existing examples?
placeholder: Have you already created a local plugin for the requested library?
+1 -1
View File
@@ -2,7 +2,7 @@ name: Check Markdown links
on:
workflow_dispatch: {}
push:
branches: [master]
branches: [main]
paths:
- .github/workflows/lint-md.yml
- "**.md"
+25
View File
@@ -0,0 +1,25 @@
name: PR Title
on:
pull_request:
branches:
- "*"
types:
- opened
- reopened
- edited
- synchronize
jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: aslafy-z/[email protected]
# continue-on-error: true
id: title-check
with:
success-state: PR title is valid
failure-state: "PR title does not follow the conventional commit spec: https://www.conventionalcommits.org/en/v1.0.0/"
context-name: pr-title
preset: conventional-changelog-angular@latest
env:
GITHUB_TOKEN: ${{ github.token }}
+37
View File
@@ -0,0 +1,37 @@
name: Release
# https://github.com/bent10/monorepo-starter/blob/main/docs/recipes/release-automation.md
on:
push:
branches:
- main
jobs:
release:
name: Releasing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
- uses: actions/cache@v2
with:
path: "**/node_modules"
key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}
- run: yarn install --frozen-lockfile --check-files
- run: yarn lerna run prepare --stream
# If the dry run fails then it will prevent us from automatically breaking the repo.
- name: Semantic release (dry run)
run: npx multi-semantic-release --dry-run
env:
GITHUB_TOKEN: ${{ github.token }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Semantic release
# use `--ignore-packages` to ignore packages on bumping process
# npx multi-semantic-release --ignore-packages=packages/a/**,packages/b/**
run: npx multi-semantic-release
env:
GITHUB_TOKEN: ${{ github.token }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+2 -1
View File
@@ -1,7 +1,7 @@
name: Test Packages
on:
push:
branches: [master]
branches: [main]
pull_request:
types: [opened, synchronize]
@@ -37,6 +37,7 @@ jobs:
# Manually add packages here
detox,
ffmpeg-kit-react-native,
ios-stickers,
react-native-ble-plx,
react-native-blob-util,
react-native-google-cast,
+62
View File
@@ -0,0 +1,62 @@
// From @byCedric https://github.com/expo/expo-github-action/blob/main/.releaserc.js
const rules = [
{ type: "feat", release: "minor", title: "Features" },
{ type: "fix", release: "patch", title: "Bug Fixes" },
{ type: "test", release: "patch", title: "Tests" },
{ type: "ci", release: "patch", title: "Continuous Integration" },
{ type: "refactor", release: "patch", title: "Code Refactoring" },
{ type: "chore", release: "patch", title: "Other chores" },
{ type: "docs", release: "patch", title: "Documentation changes" },
];
// Simple mapping to order the commit groups
const sortMap = Object.fromEntries(
rules.map((rule, index) => [rule.title, index])
);
module.exports = {
branches: ["main"],
tagFormat: "${version}",
repositoryUrl: "https://github.com/expo/config-plugins.git",
plugins: [
[
"@semantic-release/commit-analyzer",
{
preset: "conventionalcommits",
releaseRules: [
{ breaking: true, release: "major" },
{ revert: true, release: "patch" },
].concat(
rules.map(({ type, release, breaking }) => ({
type,
release,
breaking,
}))
),
},
],
[
"@semantic-release/release-notes-generator",
{
preset: "conventionalcommits",
presetConfig: {
types: rules.map(({ type, title }) => ({ type, section: title })),
},
writerOpts: {
commitGroupsSort: (a, z) => sortMap[a.title] - sortMap[z.title],
},
},
],
"@semantic-release/changelog",
[
"@semantic-release/git",
{
message: "chore: ${nextRelease.version}\n\n${nextRelease.notes}",
assets: ["package.json", "CHANGELOG.md", "build/*"],
},
],
"@semantic-release/github",
"@semantic-release/npm",
],
};
+15
View File
@@ -0,0 +1,15 @@
# Contributing to Expo Config Plugins
## Submitting a pull request
To submit a pull request:
1. Fork the [repository](https://github.com/expo/config-plugins) and create a feature branch. (Existing contributors can create feature branches without forking. Prefix the branch name with `@your-github-username/`.)
2. Use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) including in the PR tile.
3. Fill out the entire PR template. Ensure your code is tested locally and has continuous tests in CI.
4. Make sure all tests pass on GitHub Actions.
5. Wait for a review and adjust the code if necessary.
## Publishing a release
All publishing should be handled automatically whenever code is merged to `main`.
+2 -2
View File
@@ -4,6 +4,6 @@
// export { default } from './src/react-native-google-cast/App';
// export { default } from './src/detox/App';
// export { default } from './src/react-native-ble-plx/App';
// export { default } from './src/react-native-webrtc/App';
export { default } from './src/react-native-webrtc/App';
// export { default } from './src/android-jsc-intl/App';
export { default } from './src/ffmpeg-kit-react-native/App';
// export { default } from './src/ffmpeg-kit-react-native/App';
+66
View File
@@ -0,0 +1,66 @@
### @expo/app [1.0.1](https://github.com/expo/config-plugins/compare/@expo/[email protected]...@expo/[email protected]) (2022-03-15)
### Bug Fixes
* **ci:** use correct internal versions ([ab8076a](https://github.com/expo/config-plugins/commit/ab8076adf51e9ba0439eba60b153d729a0996b8d))
### Dependencies
* **@config-plugins/android-jsc-intl:** upgraded to 1.0.1
* **@config-plugins/detox:** upgraded to 1.0.1
* **@config-plugins/react-native-adjust:** upgraded to 1.0.0
* **@config-plugins/react-native-ble-plx:** upgraded to 1.0.0
* **@config-plugins/react-native-blob-util:** upgraded to 1.0.1
* **@config-plugins/react-native-branch:** upgraded to 1.0.0
* **@config-plugins/react-native-callkeep:** upgraded to 1.0.0
* **@config-plugins/react-native-dynamic-app-icon:** upgraded to 1.0.0
* **@config-plugins/react-native-google-cast:** upgraded to 1.0.0
* **@config-plugins/react-native-pdf:** upgraded to 1.0.0
* **@config-plugins/react-native-quick-actions:** upgraded to 1.0.0
* **@config-plugins/react-native-webrtc:** upgraded to 1.0.0
## @expo/app 1.0.0 (2022-03-15)
### Features
* create react-native-branch plugin ([0b06baa](https://github.com/expo/config-plugins/commit/0b06baa2b486c5e02d433a4ac785960934f403b9))
### Bug Fixes
* respect old config from expo-branch ([d0e0186](https://github.com/expo/config-plugins/commit/d0e018601c09c0e92191a4eb2998ab0e6fa1c6ec))
### Other chores
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* update script ([dcf61a9](https://github.com/expo/config-plugins/commit/dcf61a9b9542851095954d84c9054c97c5400dc9))
* upgrade to latest react-native-branch ([df98474](https://github.com/expo/config-plugins/commit/df98474d79ed139b42ddd698d13100160c656c26))
### Documentation changes
* add android-jsc-intl example ([d96c0b2](https://github.com/expo/config-plugins/commit/d96c0b2888da3808d7c4e2dd7993129711ba717d))
### Dependencies
* **@config-plugins/android-jsc-intl:** upgraded to 1.0.0
* **@config-plugins/detox:** upgraded to 1.0.0
* **@config-plugins/ffmpeg-kit-react-native:** upgraded to 1.0.0
* **@config-plugins/ios-stickers:** upgraded to 1.0.0
* **@config-plugins/react-native-adjust:** upgraded to 1.0.0
* **@config-plugins/react-native-ble-plx:** upgraded to 1.0.0
* **@config-plugins/react-native-blob-util:** upgraded to 1.0.0
* **@config-plugins/react-native-branch:** upgraded to 1.0.0
* **@config-plugins/react-native-callkeep:** upgraded to 1.0.0
* **@config-plugins/react-native-dynamic-app-icon:** upgraded to 1.0.0
* **@config-plugins/react-native-google-cast:** upgraded to 1.0.0
* **@config-plugins/react-native-pdf:** upgraded to 1.0.0
* **@config-plugins/react-native-quick-actions:** upgraded to 1.0.0
* **@config-plugins/react-native-webrtc:** upgraded to 1.0.0
+18 -7
View File
@@ -13,18 +13,26 @@
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": [
"**/*"
],
"assetBundlePatterns": ["**/*"],
"ios": {
"supportsTablet": true,
"bundleIdentifier": "com.bacon.app"
"bundleIdentifier": "dev.bacon.app",
"config": {
"branch": {
"apiKey": "key_live_f9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8"
}
}
},
"android": {
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#FFFFFF"
},
"config": {
"branch": {
"apiKey": "key_live_f9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8"
}
},
"package": "com.bacon.app"
},
"web": {
@@ -52,11 +60,14 @@
]
],
[
"@config-plugins/ffmpeg-kit-react-native", {
"package": "min",
"@config-plugins/ffmpeg-kit-react-native",
{
"package": "min"
}
],
"@config-plugins/detox",
"@config-plugins/react-native-adjust",
"@config-plugins/react-native-branch",
"@config-plugins/react-native-google-cast",
"@config-plugins/react-native-ble-plx",
"@config-plugins/react-native-webrtc",
@@ -87,4 +98,4 @@
]
]
}
}
}
-1
View File
@@ -1,4 +1,3 @@
import "react-native-gesture-handler";
import { registerRootComponent } from "expo";
import Constants from "expo-constants";
+25 -24
View File
@@ -21,47 +21,48 @@
"android": "expo run:android"
},
"dependencies": {
"@config-plugins/android-jsc-intl": "^0.0.1",
"@config-plugins/detox": "^1.0.0",
"@config-plugins/ffmpeg-kit-react-native": "^0.0.0",
"@config-plugins/ios-stickers": "^0.0.4",
"@config-plugins/react-native-ble-plx": "^0.0.2",
"@config-plugins/react-native-callkeep": "^0.0.1",
"@config-plugins/react-native-dynamic-app-icon": "^0.0.2",
"@config-plugins/react-native-google-cast": "^0.1.0",
"@config-plugins/react-native-quick-actions": "^0.0.1",
"@config-plugins/react-native-webrtc": "^1.0.1",
"@config-plugins/react-native-pdf": "^0.0.0",
"@config-plugins/react-native-blob-util": "^0.0.0",
"expo": "^43.0.0",
"expo-localization": "~11.0.0",
"expo-splash-screen": "~0.13.5",
"expo-status-bar": "~1.1.0",
"expo-updates": "~0.10.13",
"@config-plugins/android-jsc-intl": "1.0.1",
"@config-plugins/detox": "1.0.1",
"@config-plugins/ffmpeg-kit-react-native": "1.0.0",
"@config-plugins/ios-stickers": "1.0.0",
"@config-plugins/react-native-adjust": "1.0.0",
"@config-plugins/react-native-ble-plx": "1.0.0",
"@config-plugins/react-native-blob-util": "1.0.1",
"@config-plugins/react-native-branch": "1.0.0",
"@config-plugins/react-native-callkeep": "1.0.0",
"@config-plugins/react-native-dynamic-app-icon": "1.0.0",
"@config-plugins/react-native-google-cast": "1.0.0",
"@config-plugins/react-native-pdf": "1.0.0",
"@config-plugins/react-native-quick-actions": "1.0.0",
"@config-plugins/react-native-webrtc": "1.0.0",
"expo": "^44.0.0",
"expo-localization": "~12.0.0",
"expo-splash-screen": "~0.14.0",
"expo-status-bar": "~1.2.0",
"expo-updates": "~0.11.2",
"fbjs": "^0.8.18",
"ffmpeg-kit-react-native": "^4.5.0",
"i18n-js": "^3.8.0",
"luxon": "^1.27.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-native": "0.64.3",
"react-native-pdf": "^6.4.0",
"react-native-adjust": "^4.29.5",
"react-native-blob-util": "^0.13.17",
"fbjs": "^0.8.18",
"react-native-callkeep": "^4.2.0",
"react-native-branch": "^5.3.0",
"react-native-dynamic-app-icon": "^1.1.0",
"react-native-gesture-handler": "~1.10.2",
"react-native-google-cast": "^4.1.2",
"react-native-pdf": "^6.4.0",
"react-native-quick-actions": "^0.3.13",
"react-native-reanimated": "~2.2.0",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "~3.8.0",
"react-native-web": "0.17.1",
"react-native-webrtc": "^1.89.3"
},
"devDependencies": {
"@babel/core": "^7.12.9",
"@babel/plugin-syntax-jsx": "^7.16.0",
"@expo/metro-config": "~0.3.0",
"@expo/metro-config": "~0.3.7",
"@expo/xcpretty": "^4.1.0",
"@types/jest": "^26.0.19",
"@types/luxon": "^1.27.1",
@@ -69,7 +70,7 @@
"@types/react-native": "~0.64.12",
"babel-jest": "~25.2.6",
"detox": "^19.1.0",
"jest": "^26.5.0",
"jest": "^26.6.3",
"jest-circus": "^26.5.2",
"ts-jest": "^26.4.4",
"typescript": "~4.3.5"
+27
View File
@@ -0,0 +1,27 @@
import React from "react";
import { SafeAreaView, Text, StyleSheet } from "react-native";
import { Adjust, AdjustConfig } from "react-native-adjust";
export default function App() {
React.useEffect(() => {
const adjustConfig = new AdjustConfig(
"APP_TOKEN",
AdjustConfig.EnvironmentSandbox
);
Adjust.create(adjustConfig);
}, []);
return (
<SafeAreaView style={styles.container}>
<Text>Adjust SDK</Text>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: "center",
alignItems: "center",
},
});
+18 -1
View File
@@ -1,9 +1,13 @@
{
"name": "@config-plugins/repo",
"version": "1.0.0",
"private": true,
"scripts": {
"postinstall": "expo-yarn-workspaces check-workspace-dependencies",
"gen": "ts-node ./scripts/generate-plugin.ts",
"start": "lerna run build --parallel -- --watch"
"update-issue-template": "ts-node ./scripts/gh-issues-config.ts",
"start": "lerna run build --parallel -- --watch",
"prepare": "lerna run prepare --parallel"
},
"workspaces": [
"apps/*",
@@ -11,8 +15,21 @@
],
"devDependencies": {
"@expo/package-manager": "^0.0.43",
"@semantic-release/changelog": "^6.0.1",
"@semantic-release/commit-analyzer": "^9.0.2",
"@semantic-release/error": "^3.0.0",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@semantic-release/github": "^8.0.2",
"@semantic-release/npm": "^9.0.1",
"@semantic-release/release-notes-generator": "^10.0.3",
"conventional-changelog-conventionalcommits": "^4.6.3",
"multi-semantic-release": "^2.11.1",
"semantic-release": "^19.0.2",
"@types/js-yaml": "^4.0.5",
"@types/prompts": "^2.0.13",
"expo-yarn-workspaces": "^1.5.1",
"js-yaml": "^4.1.0",
"lerna": "3.4.1",
"prettier": "^2.2.1",
"prompts": "^2.4.1",
+29
View File
@@ -0,0 +1,29 @@
### @config-plugins/android-jsc-intl [1.0.1](https://github.com/expo/config-plugins/compare/@config-plugins/[email protected]...@config-plugins/[email protected]) (2022-03-15)
### Bug Fixes
* **ci:** use correct internal versions ([ab8076a](https://github.com/expo/config-plugins/commit/ab8076adf51e9ba0439eba60b153d729a0996b8d))
## @config-plugins/android-jsc-intl 1.0.0 (2022-03-15)
### Features
* Intl support for android via withAndroidJscIntl ([eb6642c](https://github.com/expo/config-plugins/commit/eb6642c0e7b37d6d9baf196ec40cc520f559e665))
### Bug Fixes
* remove createPluginOnce ([68cf1c0](https://github.com/expo/config-plugins/commit/68cf1c07b2c48249cbbd0732668ea95455636a0b))
* run expo prepare ([8d364ed](https://github.com/expo/config-plugins/commit/8d364ed99ea4b0e0e3af73dbcc780819bf55d6c2))
### Other chores
* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
### Documentation changes
* clarify readme ([b524633](https://github.com/expo/config-plugins/commit/b5246338cb37ae41d138bc6253703b0d438fc3e3))
+1 -1
View File
@@ -6,7 +6,7 @@ Adding this plugin lets you use `Intl` in your Android app, without using Hermes
## Expo installation
> Tested against Expo SDK 43
> Tested against Expo SDK 44
This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
+7 -2
View File
@@ -1,10 +1,15 @@
{
"name": "@config-plugins/android-jsc-intl",
"version": "0.0.1",
"version": "1.0.0",
"description": "Config plugin for android-jsc-intl package",
"main": "build/withAndroidJscIntl.js",
"types": "build/withAndroidJscIntl.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/android-jsc-intl"
},
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
@@ -26,7 +31,7 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
+8
View File
@@ -0,0 +1,8 @@
### @config-plugins/detox [1.0.1](https://github.com/expo/config-plugins/compare/@config-plugins/[email protected]...@config-plugins/[email protected]) (2022-03-15)
### Bug Fixes
* **detox:** remove invalid changelog entries ([4affbbb](https://github.com/expo/config-plugins/commit/4affbbb7ccd0d1309e6711a73bd4227011849064))
## @config-plugins/detox 1.2.0
+27 -3
View File
@@ -8,14 +8,15 @@ Ensure you use versions that work together!
| `expo` | `detox` | `@config-plugins/detox` |
| ------ | ------- | ----------------------- |
| 43.0.0 | 19.1.0 | 1.0.0 |
| 40.0.0 | 18.6.2 | 0.0.0 |
| 44.0.0 | 19.1.0 | ^1.1.0 |
| 43.0.0 | 19.1.0 | ~1.0.0 |
| 40.0.0 | 18.6.2 | ~0.0.0 |
Most notably, the minimum required Kotlin version changed from `1.3.50` in SDK 40 to `1.4.21` in SDK 43. Failure to use the correct versioning could result in Android build errors like `Execution failed for task ':react-native-screens:compileDebugKotlin'.` or `Execution failed for task ':expo:compileDebugKotlin'.`.
### Add the package to your npm dependencies
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add detox @config-plugins/detox
@@ -52,6 +53,29 @@ Detox is an end-to-end (e2e) testing library for iOS and Android. You can use it
- Generate the native code `expo prebuild`
- Run `yarn detox init -r jest`
## API
The plugin provides props for extra customization. Every time you change the props or plugins, you'll need to rebuild (and `prebuild`) the native app. If no extra properties are added, defaults will be used.
- `skipProguard` (_boolean_): Disable adding proguard minification to the `app/build.gradle`. Defaults to `false`.
- `subdomains` (_string[] | '\*'_): Hostnames to add to the network security config. Pass `'*'` to allow all domains. Defaults to `['10.0.2.2', 'localhost']`.
`app.config.js`
```ts
export default {
plugins: [
[
"@config-plugins/detox",
{
skipProguard: false,
subdomains: ["10.0.2.2", "localhost"],
},
],
],
};
```
## FAQ
If the following commands fail, you can get better debug info by running a subset command:
+3 -1
View File
@@ -1,4 +1,5 @@
import { ConfigPlugin } from "@expo/config-plugins";
import { SubdomainsType } from "./withNetworkSecurityConfig";
declare const _default: ConfigPlugin<void | {
/**
* Disable adding proguard minification to the `app/build.gradle`.
@@ -9,9 +10,10 @@ declare const _default: ConfigPlugin<void | {
/**
* Subdomains to add to the network security config.
* Pass `['10.0.3.2', 'localhost']` to use Genymotion emulators instead of Google emulators.
* Pass `*` to allow all domains.
*
* @default ['10.0.2.2', 'localhost'] // (Google emulators)
*/
subdomains?: string[] | undefined;
subdomains?: SubdomainsType | undefined;
}>;
export default _default;
+3 -2
View File
@@ -1,8 +1,9 @@
import { ConfigPlugin } from "@expo/config-plugins";
export declare function getTemplateFile(subdomains: string[]): string;
export declare type SubdomainsType = string[] | "*";
export declare function getTemplateFile(subdomains: SubdomainsType): string;
/**
* [Step 6](https://github.com/wix/Detox/blob/master/docs/Introduction.Android.md#6-enable-clear-text-unencrypted-traffic-for-detox). Link the `network_security_config.xml` file to the `AndroidManifest.xml`.
*/
export declare const withNetworkSecurityConfigManifest: ConfigPlugin<{
subdomains: string[];
subdomains: SubdomainsType;
} | void>;
+21 -6
View File
@@ -27,16 +27,27 @@ const config_plugins_1 = require("@expo/config-plugins");
const path = __importStar(require("path"));
const fs = __importStar(require("fs"));
const assert_1 = __importDefault(require("assert"));
function getTemplateFile(subdomains) {
return `<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
function getTemplateConfigContent(subdomains) {
if (subdomains === "*") {
// allow all domains
return '<base-config cleartextTrafficPermitted="true" />';
}
return `
<domain-config cleartextTrafficPermitted="true">
${subdomains
${subdomains
.map((subdomain) => `<domain includeSubdomains="true">${subdomain}</domain>`)
.join("")}
</domain-config>
</network-security-config>
`;
`;
}
function getTemplateFile(subdomains) {
const content = getTemplateConfigContent(subdomains);
return `
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
${content}
</network-security-config>
`;
}
exports.getTemplateFile = getTemplateFile;
/**
@@ -65,6 +76,10 @@ const withNetworkSecurityConfigManifest = (config, props) => {
// https://developer.android.com/training/articles/security-config
props = { subdomains: ["10.0.2.2", "localhost"] };
}
if (typeof props.subdomains === "object" && !props.subdomains.length) {
// if subdomains is an empty array, skip network config mod
return config;
}
config = withNetworkSecurityConfigFile(config, props);
return config_plugins_1.withAndroidManifest(config, (config) => {
const application = config_plugins_1.AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
+9 -3
View File
@@ -1,10 +1,15 @@
{
"name": "@config-plugins/detox",
"version": "1.1.0",
"version": "1.2.0",
"description": "Config plugin to auto configure detox on prebuild",
"main": "build/withDetox.js",
"types": "build/withDetox.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/detox"
},
"files": [
"build",
"app.plugin.js"
@@ -25,9 +30,10 @@
"e2e"
],
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "detox"
}
@@ -0,0 +1,43 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP
exports[`getTemplateFile returns domain-config when subdomains is an array 1`] = `
"
<?xml version=\\"1.0\\" encoding=\\"utf-8\\"?>
<network-security-config>
<domain-config cleartextTrafficPermitted=\\"true\\">
<domain includeSubdomains=\\"true\\">localhost</domain>
</domain-config>
</network-security-config>
"
`;
exports[`getTemplateFile returns only base-config when subdomains is '*' 1`] = `
"
<?xml version=\\"1.0\\" encoding=\\"utf-8\\"?>
<network-security-config>
<base-config cleartextTrafficPermitted=\\"true\\" />
</network-security-config>
"
`;
exports[`withNetworkSecurityConfigManifest doesn't modify config if subdomains is an empty array 1`] = `
Object {
"name": "foo",
"slug": "bar",
}
`;
exports[`withNetworkSecurityConfigManifest modifies config if subdomains is not empty 1`] = `
Object {
"mods": Object {
"android": Object {
"dangerous": [Function],
"manifest": [Function],
},
},
"name": "foo",
"slug": "bar",
}
`;
@@ -0,0 +1,38 @@
import {
getTemplateFile,
withNetworkSecurityConfigManifest,
} from "../withNetworkSecurityConfig";
describe(getTemplateFile, () => {
it(`returns only base-config when subdomains is '*'`, () => {
const content = getTemplateFile("*");
expect(content).toMatchSnapshot();
expect(content).toMatch(/base\-config/);
expect(content).not.toMatch(/domain\-config/);
});
it(`returns domain-config when subdomains is an array`, () => {
const content = getTemplateFile(["localhost"]);
expect(content).toMatchSnapshot();
expect(content).toMatch(/domain\-config/);
expect(content).toMatch(/localhost/);
});
});
const exp = { name: "foo", slug: "bar" };
describe(withNetworkSecurityConfigManifest, () => {
it(`doesn't modify config if subdomains is an empty array`, () => {
const applied = withNetworkSecurityConfigManifest(exp, {
subdomains: [],
});
expect(applied).toMatchSnapshot();
expect(applied).toStrictEqual(exp);
});
it(`modifies config if subdomains is not empty`, () => {
const applied = withNetworkSecurityConfigManifest(exp, {
subdomains: ["10.0.2.2"],
});
expect(applied).toMatchSnapshot();
expect(applied).toHaveProperty("mods.android");
});
});
+3 -2
View File
@@ -8,7 +8,7 @@ import withDetoxProjectGradle from "./withDetoxProjectGradle";
import withDetoxTestAppGradle from "./withDetoxTestAppGradle";
import { withDetoxTestClass } from "./withDetoxTestClass";
import withKotlinGradle from "./withKotlinGradle";
import { withNetworkSecurityConfigManifest } from "./withNetworkSecurityConfig";
import { withNetworkSecurityConfigManifest, SubdomainsType } from "./withNetworkSecurityConfig";
import withProguardGradle from "./withProguardGradle";
const withDetox: ConfigPlugin<{
@@ -21,10 +21,11 @@ const withDetox: ConfigPlugin<{
/**
* Subdomains to add to the network security config.
* Pass `['10.0.3.2', 'localhost']` to use Genymotion emulators instead of Google emulators.
* Pass `*` to allow all domains.
*
* @default ['10.0.2.2', 'localhost'] // (Google emulators)
*/
subdomains?: string[];
subdomains?: SubdomainsType;
} | void> = (config, { skipProguard, subdomains } = {}) => {
return withPlugins(
config,
+39 -18
View File
@@ -8,28 +8,41 @@ import * as path from "path";
import * as fs from "fs";
import assert from "assert";
export function getTemplateFile(subdomains: string[]): string {
return `<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
export type SubdomainsType = string[] | "*";
function getTemplateConfigContent(subdomains: SubdomainsType) {
if (subdomains === "*") {
// allow all domains
return '<base-config cleartextTrafficPermitted="true" />';
}
return `
<domain-config cleartextTrafficPermitted="true">
${subdomains
.map(
(subdomain) =>
`<domain includeSubdomains="true">${subdomain}</domain>`
)
.join("")}
${subdomains
.map(
(subdomain) =>
`<domain includeSubdomains="true">${subdomain}</domain>`
)
.join("")}
</domain-config>
</network-security-config>
`;
`;
}
export function getTemplateFile(subdomains: SubdomainsType): string {
const content = getTemplateConfigContent(subdomains);
return `
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
${content}
</network-security-config>
`;
}
/**
* Create `network_security_config.xml` resource file.
*/
const withNetworkSecurityConfigFile: ConfigPlugin<{ subdomains: string[] }> = (
config,
{ subdomains }
) => {
const withNetworkSecurityConfigFile: ConfigPlugin<{
subdomains: SubdomainsType;
}> = (config, { subdomains }) => {
return withDangerousMod(config, [
"android",
async (config) => {
@@ -53,14 +66,22 @@ const withNetworkSecurityConfigFile: ConfigPlugin<{ subdomains: string[] }> = (
/**
* [Step 6](https://github.com/wix/Detox/blob/master/docs/Introduction.Android.md#6-enable-clear-text-unencrypted-traffic-for-detox). Link the `network_security_config.xml` file to the `AndroidManifest.xml`.
*/
export const withNetworkSecurityConfigManifest: ConfigPlugin<{
subdomains: string[];
} | void> = (config, props) => {
export const withNetworkSecurityConfigManifest: ConfigPlugin<
{
subdomains: SubdomainsType;
} | void
> = (config, props) => {
if (!props || !props.subdomains) {
// (*) 10.0.2.2 for Google emulators, 10.0.3.2 for Genymotion emulators.
// https://developer.android.com/training/articles/security-config
props = { subdomains: ["10.0.2.2", "localhost"] };
}
if (typeof props.subdomains === "object" && !props.subdomains.length) {
// if subdomains is an empty array, skip network config mod
return config;
}
config = withNetworkSecurityConfigFile(config, props);
return withAndroidManifest(config, (config) => {
const application = AndroidConfig.Manifest.getMainApplicationOrThrow(
@@ -0,0 +1,6 @@
## @config-plugins/ffmpeg-kit-react-native 1.0.0 (2022-03-15)
### Other chores
* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure ffmpeg-kit-react-native when the native code is
## Expo installation
> Tested against Expo SDK 43. Only the `min` package appeared to work on Android. Most packages worked on iOS.
> Tested against Expo SDK 44. Most packages worked on iOS. Not all packages have been tested on Android.
> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateDeploymentTargetXcodeProject = exports.updateDeploymentTargetPodfile = exports.withIosDeploymentTarget = void 0;
// Copied from https://github.com/expo/expo-cli/blob/main/packages/install-expo-modules/src/plugins/ios/withIosDeploymentTarget.ts
const config_plugins_1 = require("@expo/config-plugins");
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
@@ -1,10 +1,15 @@
{
"name": "@config-plugins/ffmpeg-kit-react-native",
"version": "0.0.0",
"version": "0.0.1",
"description": "Config plugin to auto configure FFMPEG on prebuild",
"main": "build/withFFMPEG.js",
"types": "build/withFFMPEG.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/ffmpeg-kit-react-native"
},
"files": [
"build",
"app.plugin.js"
@@ -27,11 +32,12 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7",
"@expo/config-plugins": "^4.1.0",
"semver": "^7.3.5"
},
"devDependencies": {
"@types/semver": "^7.3.9",
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "ffmpeg-kit-react-native"
}
+6
View File
@@ -0,0 +1,6 @@
## @config-plugins/ios-stickers 1.0.0 (2022-03-15)
### Other chores
* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure iOS iMessage stickers
## Install
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add @config-plugins/ios-stickers
+58
View File
@@ -0,0 +1,58 @@
{
"title": "@config-plugins/ios-stickers options",
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/Props",
"definitions": {
"Props": {
"type": "object",
"properties": {
"stickers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/Sticker"
}
]
}
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"columns": {
"type": "number",
"enum": [
2,
3,
4
]
}
},
"additionalProperties": false
},
"Sticker": {
"type": "object",
"properties": {
"image": {
"type": "string"
},
"name": {
"type": "string"
},
"accessibilityLabel": {
"type": "string"
}
},
"required": [
"image"
],
"additionalProperties": false
}
}
}
+6 -1
View File
@@ -4,6 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalizeStickersProps = void 0;
const schema_utils_1 = require("schema-utils");
const options_json_1 = __importDefault(require("./options.json"));
const withStickerAssets_1 = require("./withStickerAssets");
const withStickerInfoPlist_1 = require("./withStickerInfoPlist");
const withStickerXcodeTarget_1 = require("./withStickerXcodeTarget");
@@ -29,7 +31,10 @@ function normalizeStickersProps(props = []) {
});
}
exports.normalizeStickersProps = normalizeStickersProps;
const withStickerPack = (config, { stickers, icon, name, columns = 3 } = {}) => {
const withStickerPack = (config, options = {}) => {
// Perform option validation.
schema_utils_1.validate(options_json_1.default, options);
const { stickers, icon, name, columns = 3 } = options;
const size = sizeColumnMap[columns] || "regular";
if (!size) {
throw new Error(`Column size "${columns}" is invalid. Expected one of: ${Object.keys(sizeColumnMap).join(", ")}`);
+1
View File
@@ -0,0 +1 @@
module.exports = require('expo-module-scripts/jest-preset-plugin');
+7 -4
View File
@@ -5,6 +5,11 @@
"main": "build/withStickerPack.js",
"types": "build/withStickerPack.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/ios-stickers"
},
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
@@ -18,12 +23,10 @@
"react",
"expo"
],
"jest": {
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7",
"@expo/config-plugins": "^4.1.0",
"@expo/image-utils": "^0.3.17",
"schema-utils": "^4.0.0",
"xcode": "^3.0.1"
},
"devDependencies": {
@@ -0,0 +1,32 @@
import withStickerPack from "../withStickerPack";
const exp = { name: "foo", slug: "bar" };
describe(withStickerPack, () => {
it("should not throw when options are valid", () => {
expect(() =>
withStickerPack(exp, {
name: "test",
stickers: [{ image: "test.png" }],
columns: 2,
icon: "test.png",
})
).not.toThrow();
});
it("should not throw when no options are provided", () => {
expect(() => withStickerPack(exp, {})).not.toThrow();
});
it("should throw if columns is not a number", () => {
expect(() => {
withStickerPack(exp, {
stickers: [],
icon: "",
name: "",
columns: "3",
} as any);
}).toThrowErrorMatchingInlineSnapshot(`
"Invalid options object. @config-plugins/ios-stickers has been initialized using an options object that does not match the API schema.
- options.columns should be one of these:
2 | 3 | 4"
`);
});
});
+58
View File
@@ -0,0 +1,58 @@
{
"title": "@config-plugins/ios-stickers options",
"$schema": "http://json-schema.org/draft-07/schema#",
"$ref": "#/definitions/Props",
"definitions": {
"Props": {
"type": "object",
"properties": {
"stickers": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"$ref": "#/definitions/Sticker"
}
]
}
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"columns": {
"type": "number",
"enum": [
2,
3,
4
]
}
},
"additionalProperties": false
},
"Sticker": {
"type": "object",
"properties": {
"image": {
"type": "string"
},
"name": {
"type": "string"
},
"accessibilityLabel": {
"type": "string"
}
},
"required": [
"image"
],
"additionalProperties": false
}
}
}
+8 -5
View File
@@ -1,5 +1,6 @@
import { ConfigPlugin } from "@expo/config-plugins";
import { validate } from "schema-utils";
import schema from "./options.json";
import { Props, Sticker, withStickerAssets } from "./withStickerAssets";
import { withStickersPlist } from "./withStickerInfoPlist";
import { withStickerXcodeTarget } from "./withStickerXcodeTarget";
@@ -30,10 +31,12 @@ export function normalizeStickersProps(
});
}
const withStickerPack: ConfigPlugin<Props> = (
config,
{ stickers, icon, name, columns = 3 } = {}
) => {
const withStickerPack: ConfigPlugin<Props> = (config, options = {}) => {
// Perform option validation.
validate(schema as any, options);
const { stickers, icon, name, columns = 3 } = options;
const size = sizeColumnMap[columns] || "regular";
if (!size) {
throw new Error(
+2 -1
View File
@@ -1,7 +1,8 @@
{
"extends": "expo-module-scripts/tsconfig.plugin",
"compilerOptions": {
"outDir": "./build"
"outDir": "./build",
"resolveJsonModule": true
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
@@ -0,0 +1,2 @@
// @generated by expo-module-scripts
module.exports = require('expo-module-scripts/eslintrc.base.js');
+42
View File
@@ -0,0 +1,42 @@
# @config-plugins/react-native-adjust
Expo Config Plugin to auto configure [`react-native-adjust`](https://www.npmjs.com/package/react-native-adjust) when the native code is generated (`expo prebuild`).
## Expo installation
> Tested against Expo SDK 44
This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
- First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
```sh
expo install react-native-adjust @config-plugins/react-native-adjust
```
After installing this npm package, add the [config plugin](https://docs.expo.io/guides/config-plugins/) to the [`plugins`](https://docs.expo.io/versions/latest/config/app/#plugins) array of your `app.json` or `app.config.js`:
```json
{
"expo": {
"plugins": ["@config-plugins/react-native-adjust"]
}
}
```
If you are targeting Android 12 and above (API level 31), you need to add it in the options of the plugin:
```json
{
"expo": {
"plugins": [
"@config-plugins/react-native-adjust",
{ "targetAndroid12": true }
]
}
}
```
This will add the [appropriate permission](https://github.com/adjust/react_native_sdk#add-permission-to-gather-google-advertising-id) for you.
Next, rebuild your app as described in the ["Adding custom native code"](https://docs.expo.io/workflow/customizing/) guide.
@@ -0,0 +1 @@
module.exports = require("./build/withReactNativeAdjust");
+5
View File
@@ -0,0 +1,5 @@
import { ConfigPlugin } from "@expo/config-plugins";
declare const _default: ConfigPlugin<void | {
targetAndroid12?: boolean | undefined;
}>;
export default _default;
+92
View File
@@ -0,0 +1,92 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("@expo/config-plugins");
const generateCode_1 = require("@expo/config-plugins/build/utils/generateCode");
const withXcodeLinkBinaryWithLibraries = (config, { library, status }) => {
return config_plugins_1.withXcodeProject(config, (config) => {
const options = status === "optional" ? { weak: true } : {};
const target = config_plugins_1.IOSConfig.XcodeUtils.getApplicationNativeTarget({
project: config.modResults,
projectName: config.modRequest.projectName,
});
config.modResults.addFramework(library, {
target: target.uuid,
...options,
});
return config;
});
};
const addAndroidPackagingOptions = (src) => {
return generateCode_1.mergeContents({
tag: "react-native-play-services-analytics",
src,
newSrc: `
implementation 'com.google.android.gms:play-services-analytics:18.0.0'
implementation 'com.android.installreferrer:installreferrer:2.2'
`,
anchor: /dependencies(?:\s+)?\{/,
// Inside the dependencies block.
offset: 1,
comment: "//",
});
};
const withGradle = (config) => {
return config_plugins_1.withAppBuildGradle(config, (config) => {
if (config.modResults.language === "groovy") {
config.modResults.contents = addAndroidPackagingOptions(config.modResults.contents).contents;
}
else {
throw new Error("Cannot add Play Services maven gradle because the project build.gradle is not groovy");
}
return config;
});
};
/**
* Apply react-native-adjust configuration for Expo SDK +44 projects.
*/
const withAdjustPlugin = (config, _props) => {
const props = _props || {};
config = withXcodeLinkBinaryWithLibraries(config, {
library: "iAd.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AdServices.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AdSupport.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "StoreKit.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AppTrackingTransparency.framework",
status: "optional",
});
if (props.targetAndroid12) {
config = config_plugins_1.AndroidConfig.Version.withBuildScriptExtMinimumVersion(config, {
name: "compileSdkVersion",
minVersion: 31,
});
config = config_plugins_1.AndroidConfig.Permissions.withPermissions(config, [
"com.google.android.gms.permission.AD_ID",
]);
}
config = withGradle(config);
// Return the modified config.
return config;
};
const pkg = {
// Prevent this plugin from being run more than once.
// This pattern enables users to safely migrate off of this
// out-of-tree `@config-plugins/react-native-adjust` to a future
// upstream plugin in `react-native-adjust`
name: "react-native-adjust",
// Indicates that this plugin is dangerously linked to a module,
// and might not work with the latest version of that module.
version: "UNVERSIONED",
};
exports.default = config_plugins_1.createRunOncePlugin(withAdjustPlugin, pkg.name, pkg.version);
+40
View File
@@ -0,0 +1,40 @@
{
"name": "@config-plugins/react-native-adjust",
"version": "0.0.1",
"description": "Config plugin to auto configure Adjust SDK on prebuild",
"main": "build/withReactNativeAdjust.js",
"types": "build/withReactNativeAdjust.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-adjust"
},
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
"lint": "expo-module lint",
"test": "expo-module test",
"prepare": "expo-module prepare",
"prepublishOnly": "expo-module prepublishOnly",
"expo-module": "expo-module"
},
"keywords": [
"react",
"expo",
"config-plugins",
"prebuild",
"react-native-adjust",
"expo-44"
],
"jest": {
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
},
"upstreamPackage": "react-native-adjust"
}
@@ -0,0 +1,124 @@
import {
AndroidConfig,
createRunOncePlugin,
IOSConfig,
withXcodeProject,
withAppBuildGradle,
ConfigPlugin,
} from "@expo/config-plugins";
import { mergeContents } from "@expo/config-plugins/build/utils/generateCode";
const withXcodeLinkBinaryWithLibraries: ConfigPlugin<{
library: string;
status?: string;
}> = (config, { library, status }) => {
return withXcodeProject(config, (config) => {
const options = status === "optional" ? { weak: true } : {};
const target = IOSConfig.XcodeUtils.getApplicationNativeTarget({
project: config.modResults,
projectName: config.modRequest.projectName!,
});
config.modResults.addFramework(library, {
target: target.uuid,
...options,
});
return config;
});
};
const addAndroidPackagingOptions = (src: string) => {
return mergeContents({
tag: "react-native-play-services-analytics",
src,
newSrc: `
implementation 'com.google.android.gms:play-services-analytics:18.0.0'
implementation 'com.android.installreferrer:installreferrer:2.2'
`,
anchor: /dependencies(?:\s+)?\{/,
// Inside the dependencies block.
offset: 1,
comment: "//",
});
};
const withGradle: ConfigPlugin = (config) => {
return withAppBuildGradle(config, (config) => {
if (config.modResults.language === "groovy") {
config.modResults.contents = addAndroidPackagingOptions(
config.modResults.contents
).contents;
} else {
throw new Error(
"Cannot add Play Services maven gradle because the project build.gradle is not groovy"
);
}
return config;
});
};
/**
* Apply react-native-adjust configuration for Expo SDK +44 projects.
*/
const withAdjustPlugin: ConfigPlugin<void | { targetAndroid12?: boolean }> = (
config,
_props
) => {
const props = _props || {};
config = withXcodeLinkBinaryWithLibraries(config, {
library: "iAd.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AdServices.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AdSupport.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "StoreKit.framework",
status: "optional",
});
config = withXcodeLinkBinaryWithLibraries(config, {
library: "AppTrackingTransparency.framework",
status: "optional",
});
if (props.targetAndroid12) {
config = AndroidConfig.Version.withBuildScriptExtMinimumVersion(config, {
name: "compileSdkVersion",
minVersion: 31,
});
config = AndroidConfig.Permissions.withPermissions(config, [
"com.google.android.gms.permission.AD_ID",
]);
}
config = withGradle(config);
// Return the modified config.
return config;
};
const pkg = {
// Prevent this plugin from being run more than once.
// This pattern enables users to safely migrate off of this
// out-of-tree `@config-plugins/react-native-adjust` to a future
// upstream plugin in `react-native-adjust`
name: "react-native-adjust",
// Indicates that this plugin is dangerously linked to a module,
// and might not work with the latest version of that module.
version: "UNVERSIONED",
};
export default createRunOncePlugin(withAdjustPlugin, pkg.name, pkg.version);
@@ -0,0 +1,8 @@
{
"extends": "expo-module-scripts/tsconfig.plugin",
"compilerOptions": {
"outDir": "./build"
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
}
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure `react-native-ble-plx` when the native code is g
## Expo installation
> Tested against Expo SDK 43
> Tested against Expo SDK 44
> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
+8 -2
View File
@@ -5,6 +5,11 @@
"main": "build/withBLE.js",
"types": "build/withBLE.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-ble-plx"
},
"files": [
"build",
"app.plugin.js"
@@ -26,9 +31,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-ble-plx"
}
@@ -0,0 +1,6 @@
## @config-plugins/react-native-blob-util 1.0.0 (2022-03-15)
### Other chores
* upgrade @expo/config-plugins ([#49](https://github.com/expo/config-plugins/issues/49)) ([119e31e](https://github.com/expo/config-plugins/commit/119e31edf110409272ace750f02d651124e1a22d))
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure [`react-native-blob-util`][lib] when the native
### Add the package to your npm dependencies
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add react-native-blob-util @config-plugins/react-native-blob-util
+9 -3
View File
@@ -1,10 +1,15 @@
{
"name": "@config-plugins/react-native-blob-util",
"version": "0.0.0",
"version": "1.0.0",
"description": "Config plugin to auto configure react-native-blob-util on prebuild",
"main": "build/withReactNativeBlobUtil.js",
"types": "build/withReactNativeBlobUtil.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-blob-util"
},
"files": [
"build",
"app.plugin.js"
@@ -27,9 +32,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-blob-util"
}
@@ -0,0 +1,2 @@
// @generated by expo-module-scripts
module.exports = require('expo-module-scripts/eslintrc.base.js');
+51
View File
@@ -0,0 +1,51 @@
# config-plugins/react-native-branch
Config plugin to auto configure `react-native-branch` when the native code is generated (`expo prebuild`).
## Expo installation
> Tested against Expo SDK 44
> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
```sh
expo install react-native-branch @config-plugins/react-native-branch
```
After installing this npm package, add the [config plugin](https://docs.expo.io/guides/config-plugins/) to the [`plugins`](https://docs.expo.io/versions/latest/config/app/#plugins) array of your `app.json` or `app.config.js`:
```json
{
"expo": {
"plugins": ["@config-plugins/react-native-branch"]
}
}
```
Next, rebuild your app as described in the ["Adding custom native code"](https://docs.expo.io/workflow/customizing/) guide.
## API
The plugin provides props for extra customization. Every time you change the props or plugins, you'll need to rebuild (and `prebuild`) the native app. If no extra properties are added, defaults will be used.
- `apiKey` (_string_): Branch API key. Optional.
- `iosAppDomain` (_string_): App Domain for iOS. Optional.
#### Example
```json
{
"expo": {
"plugins": [
[
"@config-plugins/react-native-branch",
{
"apiKey": "key_live_f9f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8",
"iosAppDomain": "awesome-alternate.app.link",
}
]
]
}
}
```
@@ -0,0 +1,3 @@
# Gradle files
.gradle/
build/
@@ -0,0 +1,52 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
group = 'host.exp.exponent'
version = '0.0.1'
buildscript {
// Simple helper that allows the root project to override versions declared by this library.
ext.safeExtGet = { prop, fallback ->
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${safeExtGet('kotlinVersion', '1.4.21')}")
}
}
android {
compileSdkVersion safeExtGet("compileSdkVersion", 30)
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion safeExtGet("minSdkVersion", 21)
targetSdkVersion safeExtGet("targetSdkVersion", 30)
versionCode 1
versionName '1.1.0'
}
lintOptions {
abortOnError false
}
}
dependencies {
implementation project(':expo-modules-core')
implementation project(':react-native-branch')
//noinspection GradleDynamicVersion
implementation 'com.facebook.react:react-native:+'
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${safeExtGet('kotlinVersion', '1.4.21')}"
}
@@ -0,0 +1,2 @@
<manifest package="expo.modules.adapters.branch">
</manifest>
@@ -0,0 +1,15 @@
package expo.modules.adapters.branch
import android.app.Application
import android.content.Context
import expo.modules.core.interfaces.ApplicationLifecycleListener
import io.branch.rnbranch.RNBranchModule
class BranchApplicationLifecycleListener(context: Context?) : ApplicationLifecycleListener {
var context = context
override fun onCreate(application: Application) {
super.onCreate(application)
RNBranchModule.getAutoInstance(this.context)
}
}
@@ -0,0 +1,15 @@
package expo.modules.adapters.branch
import android.content.Context
import expo.modules.core.interfaces.ApplicationLifecycleListener
import expo.modules.core.interfaces.Package
import expo.modules.core.interfaces.ReactActivityLifecycleListener
class BranchPackage : Package {
override fun createApplicationLifecycleListeners(context: Context?): List<ApplicationLifecycleListener> {
return listOf(BranchApplicationLifecycleListener(context))
}
override fun createReactActivityLifecycleListeners(activityContext: Context): List<ReactActivityLifecycleListener> {
return listOf(BranchReactActivityLifecycleListener(activityContext))
}
}
@@ -0,0 +1,22 @@
package expo.modules.adapters.branch
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.os.Bundle
import expo.modules.core.interfaces.ReactActivityLifecycleListener
import io.branch.rnbranch.RNBranchModule
class BranchReactActivityLifecycleListener(activityContext: Context) : ReactActivityLifecycleListener {
override fun onCreate(activity: Activity, savedInstanceState: Bundle?) {
RNBranchModule.initSession(activity.getIntent().getData(), activity);
}
override fun onNewIntent(intent: Intent?): Boolean {
if (intent != null) {
RNBranchModule.onNewIntent(intent);
}
return super.onNewIntent(intent)
}
}
@@ -0,0 +1 @@
module.exports = require("./build/withBranch");
+5
View File
@@ -0,0 +1,5 @@
export declare type ConfigData = {
apiKey?: string;
iosAppDomain?: string;
iosUniversalLinkDomains?: string[];
};
+2
View File
@@ -0,0 +1,2 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
+4
View File
@@ -0,0 +1,4 @@
import type { ConfigPlugin } from "@expo/config-plugins";
import type { ConfigData } from "./types";
declare const _default: ConfigPlugin<ConfigData>;
export default _default;
+23
View File
@@ -0,0 +1,23 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const config_plugins_1 = require("@expo/config-plugins");
const withBranchAndroid_1 = require("./withBranchAndroid");
const withBranchIOS_1 = require("./withBranchIOS");
const withBranch = (config, { apiKey, iosAppDomain, iosUniversalLinkDomains } = {}) => {
config = withBranchAndroid_1.withBranchAndroid(config, { apiKey });
config = withBranchIOS_1.withBranchIOS(config, {
apiKey,
iosAppDomain,
iosUniversalLinkDomains,
});
return config;
};
let pkg = {
name: "react-native-branch",
};
try {
const branchPkg = require("react-native-branch/package.json");
pkg = branchPkg;
}
catch (_a) { }
exports.default = config_plugins_1.createRunOncePlugin(withBranch, pkg.name, pkg.version);
+8
View File
@@ -0,0 +1,8 @@
import { AndroidConfig } from "@expo/config-plugins";
import type { ConfigPlugin } from "@expo/config-plugins";
import type { ExpoConfig } from "@expo/config-types";
export declare function getBranchApiKey(config: ExpoConfig): string | null;
export declare function setBranchApiKey(apiKey: string, androidManifest: AndroidConfig.Manifest.AndroidManifest): AndroidConfig.Manifest.AndroidManifest;
export declare const withBranchAndroid: ConfigPlugin<{
apiKey?: string;
}>;
+37
View File
@@ -0,0 +1,37 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.withBranchAndroid = exports.setBranchApiKey = exports.getBranchApiKey = void 0;
const config_plugins_1 = require("@expo/config-plugins");
const { addMetaDataItemToMainApplication, getMainApplicationOrThrow, removeMetaDataItemFromMainApplication, } = config_plugins_1.AndroidConfig.Manifest;
const META_BRANCH_KEY = "io.branch.sdk.BranchKey";
function getBranchApiKey(config) {
var _a, _b, _c, _d;
return (_d = (_c = (_b = (_a = config.android) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.branch) === null || _c === void 0 ? void 0 : _c.apiKey) !== null && _d !== void 0 ? _d : null;
}
exports.getBranchApiKey = getBranchApiKey;
function setBranchApiKey(apiKey, androidManifest) {
const mainApplication = getMainApplicationOrThrow(androidManifest);
if (apiKey) {
// If the item exists, add it back
addMetaDataItemToMainApplication(mainApplication, META_BRANCH_KEY, apiKey);
}
else {
// Remove any existing item
removeMetaDataItemFromMainApplication(mainApplication, META_BRANCH_KEY);
}
return androidManifest;
}
exports.setBranchApiKey = setBranchApiKey;
const withBranchAndroid = (config, data) => {
var _a;
const apiKey = (_a = data.apiKey) !== null && _a !== void 0 ? _a : getBranchApiKey(config);
if (!apiKey) {
throw new Error("Branch API key is required");
}
config = config_plugins_1.withAndroidManifest(config, (config) => {
config.modResults = setBranchApiKey(apiKey, config.modResults);
return config;
});
return config;
};
exports.withBranchAndroid = withBranchAndroid;
+6
View File
@@ -0,0 +1,6 @@
import type { ConfigPlugin, InfoPlist } from "@expo/config-plugins";
import type { ExpoConfig } from "@expo/config-types";
import type { ConfigData } from "./types";
export declare function getBranchApiKey(config: Pick<ExpoConfig, "ios">): string | null;
export declare function setBranchApiKey(apiKey: string, infoPlist: InfoPlist): InfoPlist;
export declare const withBranchIOS: ConfigPlugin<ConfigData>;
+52
View File
@@ -0,0 +1,52 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.withBranchIOS = exports.setBranchApiKey = exports.getBranchApiKey = void 0;
const config_plugins_1 = require("@expo/config-plugins");
function getBranchApiKey(config) {
var _a, _b, _c, _d;
return (_d = (_c = (_b = (_a = config.ios) === null || _a === void 0 ? void 0 : _a.config) === null || _b === void 0 ? void 0 : _b.branch) === null || _c === void 0 ? void 0 : _c.apiKey) !== null && _d !== void 0 ? _d : null;
}
exports.getBranchApiKey = getBranchApiKey;
function setBranchApiKey(apiKey, infoPlist) {
if (apiKey === null) {
return infoPlist;
}
return {
...infoPlist,
branch_key: {
live: apiKey,
},
};
}
exports.setBranchApiKey = setBranchApiKey;
const withBranchIOS = (config, data) => {
var _a;
// Ensure object exist
if (!config.ios) {
config.ios = {};
}
const apiKey = (_a = data.apiKey) !== null && _a !== void 0 ? _a : getBranchApiKey(config);
if (!apiKey) {
throw new Error("Branch API key is required");
}
// Update the infoPlist with the branch key and branch domain
config = config_plugins_1.withInfoPlist(config, (config) => {
config.modResults = setBranchApiKey(apiKey, config.modResults);
if (data.iosAppDomain) {
config.modResults.branch_app_domain = data.iosAppDomain;
}
else {
delete config.modResults.branch_app_domain;
}
if (data.iosUniversalLinkDomains) {
config.modResults.branch_universal_link_domains =
data.iosUniversalLinkDomains;
}
else {
delete config.modResults.branch_universal_link_domains;
}
return config;
});
return config;
};
exports.withBranchIOS = withBranchIOS;
@@ -0,0 +1,9 @@
{
"platforms": [
"android",
"ios"
],
"ios": {
"appDelegateSubscribers": ["BranchAppDelegate"]
}
}
@@ -0,0 +1,35 @@
require 'json'
package = JSON.parse(File.read(File.join(__dir__, '..', 'package.json')))
Pod::Spec.new do |s|
s.name = 'ExpoAdapterBranch'
s.version = package['version']
s.summary = package['description']
s.description = package['description']
s.license = package['license']
s.author = package['author']
s.homepage = package['homepage']
s.platform = :ios, '12.0'
s.swift_version = '5.4'
s.source = { git: 'https://github.com/expo/config-plugins.git' }
s.static_framework = true
s.compiler_flags = %[-DRNBRANCH_VERSION=@\\"#{package["dependencies"]["react-native-branch"]}\\"]
s.dependency 'ExpoModulesCore'
s.dependency 'React-Core'
s.dependency 'react-native-branch'
# Swift/Objective-C compatibility
s.pod_target_xcconfig = {
'DEFINES_MODULE' => 'YES'
}
if !$ExpoUseSources&.include?(package['name']) && ENV['EXPO_USE_SOURCE'].to_i == 0 && File.exist?("#{s.name}.xcframework") && Gem::Version.new(Pod::VERSION) >= Gem::Version.new('1.10.0')
s.source_files = "#{s.name}/**/*.h"
s.vendored_frameworks = "#{s.name}.xcframework"
else
s.source_files = "#{s.name}/**/*.{h,m,swift}"
end
end
@@ -0,0 +1,17 @@
import ExpoModulesCore
import RNBranch
public class BranchAppDelegate: ExpoAppDelegateSubscriber {
public func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
RNBranch.initSession(launchOptions: launchOptions, isReferrable: true)
return true
}
public func application(_ application: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return RNBranch.application(application, open:url, options:options)
}
public func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
return RNBranch.continue(userActivity)
}
}
@@ -0,0 +1 @@
module.exports = require('expo-module-scripts/jest-preset-plugin');
+42
View File
@@ -0,0 +1,42 @@
{
"name": "@config-plugins/react-native-branch",
"version": "0.0.1",
"description": "Config plugin to auto configure react-native-branch on prebuild",
"author": "650 Industries, Inc.",
"license": "MIT",
"homepage": "https://docs.expo.dev/versions/latest/sdk/branch/",
"main": "build/withBranch.js",
"types": "build/withBranch.d.ts",
"sideEffects": false,
"files": [
"android",
"app.plugin.js",
"build",
"expo-module.config.json",
"ios"
],
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
"lint": "expo-module lint",
"test": "expo-module test",
"prepare": "expo-module prepare",
"prepublishOnly": "expo-module prepublishOnly",
"expo-module": "expo-module"
},
"keywords": [
"expo",
"react-native",
"react-native-branch"
],
"jest": {
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.1.0",
"@expo/config-types": "^43.0.1"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
}
@@ -0,0 +1,5 @@
export type ConfigData = {
apiKey?: string;
iosAppDomain?: string;
iosUniversalLinkDomains?: string[];
};
@@ -0,0 +1,29 @@
import { createRunOncePlugin } from "@expo/config-plugins";
import type { ConfigPlugin } from "@expo/config-plugins";
import { withBranchAndroid } from "./withBranchAndroid";
import { withBranchIOS } from "./withBranchIOS";
import type { ConfigData } from "./types";
const withBranch: ConfigPlugin<ConfigData> = (
config,
{ apiKey, iosAppDomain, iosUniversalLinkDomains } = {}
) => {
config = withBranchAndroid(config, { apiKey });
config = withBranchIOS(config, {
apiKey,
iosAppDomain,
iosUniversalLinkDomains,
});
return config;
};
let pkg: { name: string; version?: string } = {
name: "react-native-branch",
};
try {
const branchPkg = require("react-native-branch/package.json");
pkg = branchPkg;
} catch {}
export default createRunOncePlugin(withBranch, pkg.name, pkg.version);
@@ -0,0 +1,49 @@
import { AndroidConfig, withAndroidManifest } from "@expo/config-plugins";
import type { ConfigPlugin } from "@expo/config-plugins";
import type { ExpoConfig } from "@expo/config-types";
const {
addMetaDataItemToMainApplication,
getMainApplicationOrThrow,
removeMetaDataItemFromMainApplication,
} = AndroidConfig.Manifest;
const META_BRANCH_KEY = "io.branch.sdk.BranchKey";
export function getBranchApiKey(config: ExpoConfig) {
return config.android?.config?.branch?.apiKey ?? null;
}
export function setBranchApiKey(
apiKey: string,
androidManifest: AndroidConfig.Manifest.AndroidManifest
) {
const mainApplication = getMainApplicationOrThrow(androidManifest);
if (apiKey) {
// If the item exists, add it back
addMetaDataItemToMainApplication(mainApplication, META_BRANCH_KEY, apiKey);
} else {
// Remove any existing item
removeMetaDataItemFromMainApplication(mainApplication, META_BRANCH_KEY);
}
return androidManifest;
}
export const withBranchAndroid: ConfigPlugin<{ apiKey?: string }> = (
config,
data
) => {
const apiKey = data.apiKey ?? getBranchApiKey(config);
if (!apiKey) {
throw new Error("Branch API key is required");
}
config = withAndroidManifest(config, (config) => {
config.modResults = setBranchApiKey(apiKey, config.modResults);
return config;
});
return config;
};
@@ -0,0 +1,55 @@
import { withInfoPlist } from "@expo/config-plugins";
import type { ConfigPlugin, InfoPlist } from "@expo/config-plugins";
import type { ExpoConfig } from "@expo/config-types";
import type { ConfigData } from "./types";
export function getBranchApiKey(config: Pick<ExpoConfig, "ios">) {
return config.ios?.config?.branch?.apiKey ?? null;
}
export function setBranchApiKey(
apiKey: string,
infoPlist: InfoPlist
): InfoPlist {
if (apiKey === null) {
return infoPlist;
}
return {
...infoPlist,
branch_key: {
live: apiKey,
},
};
}
export const withBranchIOS: ConfigPlugin<ConfigData> = (config, data) => {
// Ensure object exist
if (!config.ios) {
config.ios = {};
}
const apiKey = data.apiKey ?? getBranchApiKey(config);
if (!apiKey) {
throw new Error("Branch API key is required");
}
// Update the infoPlist with the branch key and branch domain
config = withInfoPlist(config, (config) => {
config.modResults = setBranchApiKey(apiKey, config.modResults);
if (data.iosAppDomain) {
config.modResults.branch_app_domain = data.iosAppDomain;
} else {
delete config.modResults.branch_app_domain;
}
if (data.iosUniversalLinkDomains) {
config.modResults.branch_universal_link_domains =
data.iosUniversalLinkDomains;
} else {
delete config.modResults.branch_universal_link_domains;
}
return config;
});
return config;
};
@@ -0,0 +1,9 @@
{
"extends": "expo-module-scripts/tsconfig.plugin",
"compilerOptions": {
"outDir": "build",
"rootDir": "src"
},
"include": ["./src"],
"exclude": ["**/__mocks__/*", "**/__tests__/*"]
}
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure react-native-callkeep when the native code is ge
### Add the package to your npm dependencies
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add react-native-callkeep @config-plugins/react-native-callkeep
+1 -1
View File
@@ -94,7 +94,7 @@ const withCallkeep = (config) => {
};
const withXcodeLinkBinaryWithLibraries = (config, { library, status }) => {
return config_plugins_1.withXcodeProject(config, (config) => {
const options = status === "optional" ? { settings: { ATTRIBUTES: ["Weak"] } } : {};
const options = status === "optional" ? { weak: true } : {};
const target = config_plugins_1.IOSConfig.XcodeUtils.getApplicationNativeTarget({
project: config.modResults,
projectName: config.modRequest.projectName,
+8 -2
View File
@@ -5,6 +5,11 @@
"main": "build/withCallkeep.js",
"types": "build/withCallkeep.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-callkeep"
},
"files": [
"build",
"app.plugin.js"
@@ -26,9 +31,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-callkeep"
}
@@ -130,7 +130,7 @@ export const withXcodeLinkBinaryWithLibraries: ConfigPlugin<{
}> = (config, { library, status }) => {
return withXcodeProject(config, (config) => {
const options =
status === "optional" ? { settings: { ATTRIBUTES: ["Weak"] } } : {};
status === "optional" ? { weak: true } : {};
const target = IOSConfig.XcodeUtils.getApplicationNativeTarget({
project: config.modResults,
@@ -4,7 +4,7 @@ Config plugin to auto configure `react-native-dynamic-app-icon`
## Install
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add react-native-dynamic-app-icon @config-plugins/react-native-dynamic-app-icon
@@ -5,6 +5,11 @@
"main": "build/index.js",
"types": "build/index.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-dynamic-app-icon"
},
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
@@ -22,11 +27,12 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7",
"@expo/config-plugins": "^4.1.0",
"@expo/image-utils": "^0.3.17",
"xcode": "^3.0.1"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-dynamic-app-icon"
}
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure react-native-google-cast when the native code is
## Expo installation
> Tested against Expo SDK 43
> Tested against Expo SDK 44
> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
@@ -5,6 +5,11 @@
"main": "build/withGoogleCast.js",
"types": "build/withGoogleCast.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-google-cast"
},
"files": [
"build",
"app.plugin.js"
@@ -26,9 +31,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-google-cast"
}
+1 -1
View File
@@ -4,7 +4,7 @@ Config plugin to auto configure [`react-native-pdf`][lib] when the native code i
### Add the package to your npm dependencies
> Tested against Expo SDK 43
> Tested against Expo SDK 44
```
yarn add react-native-pdf react-native-blob-util fbjs @config-plugins/react-native-pdf @config-plugins/react-native-blob-util
+8 -2
View File
@@ -5,6 +5,11 @@
"main": "build/withPdf.js",
"types": "build/withPdf.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-pdf"
},
"files": [
"build",
"app.plugin.js"
@@ -27,9 +32,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-pdf"
}
@@ -6,7 +6,7 @@ Expo Config Plugin to auto configure [`react-native-quick-actions`](https://www.
## Expo installation
> Tested against Expo SDK 43
> Tested against Expo SDK 44
This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
@@ -5,6 +5,11 @@
"main": "build/withReactNativeQuickActions.js",
"types": "build/withReactNativeQuickActions.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-quick-actions"
},
"scripts": {
"build": "expo-module build",
"clean": "expo-module clean",
@@ -26,9 +31,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-quick-actions"
}
+2 -1
View File
@@ -8,13 +8,14 @@ Ensure you use versions that work together!
| `expo` | `react-native-webrtc` | `@config-plugins/react-native-webrtc` |
| ------ | --------------------- | ------------------------------------- |
| 44.0.0 | 1.92.2 | 2.0.0 |
| 43.0.0 | 1.92.2 | 1.0.0 |
> Expo SDK 42 uses `[email protected]` which doesn't work with `react-native-webrtc`, specifically iOS production builds fail. Meaning this package is only supported for Expo SDK +43.
## Expo installation
> Tested against Expo SDK 43
> Tested against Expo SDK 44
> This package cannot be used in the "Expo Go" app because [it requires custom native code](https://docs.expo.io/workflow/customizing/).
> First install the package with yarn, npm, or [`expo install`](https://docs.expo.io/workflow/expo-cli/#expo-install).
+12 -10
View File
@@ -3,15 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
exports.withBitcodeDisabled = void 0;
const config_plugins_1 = require("@expo/config-plugins");
const withBitcodeDisabled = (config) => {
return config_plugins_1.withXcodeProject(config, (config) => {
// @ts-ignore
if (config.ios.bitcode === true || config.ios.bitcode === "Debug") {
config_plugins_1.WarningAggregator.addWarningIOS("ios.bitcode", 'react-native-webrtc plugin is overwriting project bitcode settings. WebRTC requires bitcode to be disabled for "Release" builds, targeting physical iOS devices.');
}
// WebRTC requires Bitcode be disabled for
// production iOS builds that target devices, e.g. not simulators.
config.modResults.addBuildProperty("ENABLE_BITCODE", "NO", "Release");
return config;
});
var _a, _b;
if (!config.ios) {
config.ios = {};
}
if (((_a = config.ios) === null || _a === void 0 ? void 0 : _a.bitcode) != null && ((_b = config.ios) === null || _b === void 0 ? void 0 : _b.bitcode) !== false) {
config_plugins_1.WarningAggregator.addWarningIOS("ios.bitcode", "react-native-webrtc plugin is overwriting project bitcode settings. WebRTC requires bitcode to be disabled for builds, targeting physical iOS devices.");
}
// WebRTC requires Bitcode be disabled for
// production AND development iOS builds that target devices, e.g. not simulators.
// SDK +44 property
config.ios.bitcode = false;
return config;
};
exports.withBitcodeDisabled = withBitcodeDisabled;
+9 -3
View File
@@ -1,10 +1,15 @@
{
"name": "@config-plugins/react-native-webrtc",
"version": "1.0.1",
"version": "2.0.1",
"description": "Config plugin to setup react-native-webrtc on prebuild",
"main": "build/withWebRTC.js",
"types": "build/withWebRTC.d.ts",
"sideEffects": false,
"repository": {
"type": "git",
"url": "https://github.com/expo/config-plugins.git",
"directory": "packages/react-native-webrtc"
},
"files": [
"build",
"app.plugin.js"
@@ -26,9 +31,10 @@
"preset": "expo-module-scripts"
},
"dependencies": {
"@expo/config-plugins": "^4.0.7"
"@expo/config-plugins": "^4.1.0"
},
"devDependencies": {
"expo-module-scripts": "^2.0.0"
}
},
"upstreamPackage": "react-native-webrtc"
}
@@ -1,22 +1,19 @@
import {
ConfigPlugin,
WarningAggregator,
withXcodeProject,
} from "@expo/config-plugins";
import { ConfigPlugin, WarningAggregator } from "@expo/config-plugins";
export const withBitcodeDisabled: ConfigPlugin = (config) => {
return withXcodeProject(config, (config) => {
// @ts-ignore
if (config.ios.bitcode === true || config.ios.bitcode === "Debug") {
WarningAggregator.addWarningIOS(
"ios.bitcode",
'react-native-webrtc plugin is overwriting project bitcode settings. WebRTC requires bitcode to be disabled for "Release" builds, targeting physical iOS devices.'
);
}
// WebRTC requires Bitcode be disabled for
// production iOS builds that target devices, e.g. not simulators.
config.modResults.addBuildProperty("ENABLE_BITCODE", "NO", "Release");
if (!config.ios) {
config.ios = {};
}
return config;
});
if (config.ios?.bitcode != null && config.ios?.bitcode !== false) {
WarningAggregator.addWarningIOS(
"ios.bitcode",
"react-native-webrtc plugin is overwriting project bitcode settings. WebRTC requires bitcode to be disabled for builds, targeting physical iOS devices."
);
}
// WebRTC requires Bitcode be disabled for
// production AND development iOS builds that target devices, e.g. not simulators.
// SDK +44 property
config.ios.bitcode = false;
return config;
};
+1
View File
@@ -164,6 +164,7 @@ function getPackageJson({
);
templatePackageJson.name = `@config-plugins/${CONFIG_PLUGIN}`;
templatePackageJson.repository.directory = `packages/${CONFIG_PLUGIN}`;
templatePackageJson.description = `Config plugin for ${NPM_MODULE} package`;
templatePackageJson.main = `build/${MODULE_NAME}.js`;
templatePackageJson.types = `build/${MODULE_NAME}.d.ts`;
Loaded 100 of 103 files, more files were not shown because too many files have changed in this diff. Show more