Compare commits

..
Author SHA1 Message Date
semantic-release-bot 1bc203e66e 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))
* **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))
* 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))
* 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))
* 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))
* 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

* 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)
* 1.0.0 ([d656142](https://github.com/expo/config-plugins/commit/d656142bd0148baeac68c2df05979213755355cc)), 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 ([063e812](https://github.com/expo/config-plugins/commit/063e812b0bbd4763d94eb45599f9a92074d31018)), 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 ([4a3de37](https://github.com/expo/config-plugins/commit/4a3de37e9ce68e9b0a8f02fb3ba722f372fbb0fc)), closes [#49](https://github.com/expo/config-plugins/issues/49)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* 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)
* 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))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* 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 22:45:17 +00:00
semantic-release-bot 352e887b21 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))
* **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))
* 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))
* 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))
* 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))
* 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

* 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)
* 1.0.0 ([d656142](https://github.com/expo/config-plugins/commit/d656142bd0148baeac68c2df05979213755355cc)), 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 ([063e812](https://github.com/expo/config-plugins/commit/063e812b0bbd4763d94eb45599f9a92074d31018)), 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 ([4a3de37](https://github.com/expo/config-plugins/commit/4a3de37e9ce68e9b0a8f02fb3ba722f372fbb0fc)), closes [#49](https://github.com/expo/config-plugins/issues/49)
* added start-metro script ([4a7d707](https://github.com/expo/config-plugins/commit/4a7d707b200a3e499d9d71caf49ad4fc1d0a89e0))
* latest cleanup ([ef50c05](https://github.com/expo/config-plugins/commit/ef50c05892b965e2ccd70418da962f2c3d96ab2e))
* rename module ([71e429b](https://github.com/expo/config-plugins/commit/71e429b77fca05953e94636b31e9b1b8da2ddcb6))
* 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)
* 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))
* rename files to avoid possible conflict ([d0b32ce](https://github.com/expo/config-plugins/commit/d0b32ce4a1c28060e61e7109f59be215c5f92f14))
* 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 22:45:12 +00:00
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
113 changed files with 5111 additions and 568 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?
-155
View File
@@ -1,155 +0,0 @@
name: E2E Test
on:
workflow_dispatch: {}
push:
branches: [master]
paths:
- .github/workflows/ios.yml
- apps/app/**
- packages/**
- yarn.lock
pull_request:
paths:
- .github/workflows/ios.yml
- apps/app/**
- packages/**
- yarn.lock
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
cancel-in-progress: true
jobs:
ios:
runs-on: macos-latest
steps:
- name: 👀 Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: 🍺 Install required tools
run: |
brew tap wix/brew
brew install applesimutils
brew install watchman
echo "$(pwd)/bin" >> $GITHUB_PATH
- name: 💎 Setup Ruby and install gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- name: ♻️ Restore workspace node modules
uses: actions/cache@v2
id: node-modules-cache
with:
path: |
# See "workspaces" → "packages" in the root package.json for the source of truth of
# which node_modules are affected by the root yarn.lock
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }}
- name: 🧶 Install node modules in root dir
run: yarn install --frozen-lockfile
- name: ♻️ Restore apps/app/ios/Pods from cache
uses: actions/cache@v2
id: pods-cache
with:
path: "apps/app/ios/Pods"
key: ${{ runner.os }}-app-pods-${{ hashFiles('apps/app/ios/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-app-pods-
- run: yarn global add expo-cli
- name: 🔨 Prebuild
run: expo prebuild -p ios
working-directory: apps/app
- name: 🕵️ Debug CocoaPods lockfiles
run: git diff Podfile.lock Pods/Manifest.lock
working-directory: apps/app/ios
continue-on-error: true
- name: ⚛️ Display React Native config
run: yarn react-native config
working-directory: apps/app
- name: 🌳 Display pod environment
run: pod env
working-directory: apps/app/ios
- name: 🥥 Install pods in apps/app/ios
run: pod install
if: steps.pods-cache.outputs.cache-hit != 'true' || hashFiles('apps/app/ios/Podfile.lock') != hashFiles('apps/app/ios/Pods/Manifest.lock')
working-directory: apps/app/ios
- name: Clean Detox
run: yarn detox:clean
working-directory: apps/app
- name: Build iOS project for Detox
run: yarn build:ios-release
working-directory: apps/app
timeout-minutes: 30
- name: Run tests
run: yarn test:ios-release
working-directory: apps/app
- name: Store images of build failures
if: always()
uses: actions/upload-artifact@v2
with:
name: app-artifacts
path: apps/app/artifacts
android:
runs-on: macos-latest
steps:
- name: 👀 Checkout
uses: actions/checkout@v2
with:
submodules: true
- name: 🍺 Install required tools
run: |
brew install watchman
echo "$(pwd)/bin" >> $GITHUB_PATH
- name: ♻️ Restore workspace node modules
uses: actions/cache@v2
id: node-modules-cache
with:
path: |
# See "workspaces" → "packages" in the root package.json for the source of truth of
# which node_modules are affected by the root yarn.lock
node_modules
apps/*/node_modules
packages/*/node_modules
key: ${{ runner.os }}-modules-${{ hashFiles('yarn.lock') }}
- name: 🧶 Install node modules in root dir
run: yarn install --frozen-lockfile
- uses: actions/cache@v2
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-v20210625-${{ hashFiles('android/*.gradle*') }}
restore-keys: |
${{ runner.os }}-gradle-v20210625
- run: yarn global add expo-cli
- name: 🔨 Prebuild
run: expo prebuild -p android
working-directory: apps/app
- name: ⚛️ Display React Native config
run: yarn react-native config
working-directory: apps/app
- name: Clean Detox
run: yarn detox:clean
working-directory: apps/app
- name: Build Android project for Detox
run: yarn build:android-release
working-directory: apps/app
timeout-minutes: 35
env:
GRADLE_OPTS: "-Dorg.gradle.internal.http.connectionTimeout=180000 -Dorg.gradle.internal.http.socketTimeout=180000 -Dorg.gradle.internal.network.retry.max.attempts=18 -Dorg.gradle.internal.network.retry.initial.backOff=2000"
- name: Run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: 29
avd-name: app
script: yarn test:android-release
working-directory: ./apps/app
- name: Store images of build failures
if: always()
uses: actions/upload-artifact@v2
with:
name: app-artifacts
path: apps/app/artifacts
+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",
],
};
-1
View File
@@ -1 +0,0 @@
2.7.0
+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`.
+3 -2
View File
@@ -1,8 +1,9 @@
// export { default } from './src/react-native-quick-actions/App';
// export { default } from './src/react-native-pdf/App';
// export { default } from './src/react-native-dynamic-app-icon/App';
// export { default } from './src/react-native-google-cast/App';
export { default } from './src/detox/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';
+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
+70 -6
View File
@@ -13,25 +13,89 @@
"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": {
"favicon": "./assets/favicon.png"
},
"plugins": [
"@config-plugins/detox"
[
"@config-plugins/react-native-dynamic-app-icon",
[
"./assets/icons/spring.png",
"./assets/icons/summer.png",
"./assets/icons/autumn.png",
"./assets/icons/fall.png",
"./assets/icons/solstice.png"
]
],
[
"@config-plugins/react-native-quick-actions",
[
{
"title": "Take Photo",
"type": "photo",
"iconType": "UIApplicationShortcutIconTypeCapturePhoto"
}
]
],
[
"@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",
"@config-plugins/react-native-callkeep",
"@config-plugins/react-native-blob-util",
"@config-plugins/react-native-pdf",
"@config-plugins/android-jsc-intl",
[
"@config-plugins/ios-stickers",
{
"name": "Stickers",
"icon": "./assets/imessage-icon.png",
"columns": 4,
"stickers": [
"./assets/stickers/annoyed.png",
"./assets/stickers/cuddle.png",
"./assets/stickers/crazy.png",
"./assets/stickers/cant.png",
"./assets/stickers/donno.png",
"./assets/stickers/cozzy.png",
"./assets/stickers/dork.png",
"./assets/stickers/focus.png",
"./assets/stickers/avocool.png",
"./assets/stickers/coder-girl.png",
"./assets/stickers/teapot.png"
]
}
]
]
}
}
}
+2 -2
View File
@@ -1,6 +1,6 @@
const iosName = "app";
const emulator = process.env.CI ? "app" : "Pixel_3a_API_30";
const simulator = "iPhone 11";
const emulator = "Pixel_3a_API_30";
const simulator = "iPhone 13 Pro";
const derivedDataPath = "ios/build";
const sdk = "iphonesimulator";
+14 -7
View File
@@ -1,4 +1,4 @@
import { device } from "detox";
import { by, device, element, expect } from "detox";
import * as path from "path";
import { createCapture } from "../lib";
@@ -6,10 +6,7 @@ import { createCapture } from "../lib";
const projectRoot = path.resolve(__dirname, "../../");
// https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPInternational/LanguageandLocaleIDs/LanguageandLocaleIDs.html
const languages = [
"en-US",
// "nl-NL", "zh-CN"
];
const languages = ["en-US", "nl-NL", "zh-CN"];
for (const locale of languages) {
const { captureAsync, resetAppAsync } = createCapture({
@@ -24,8 +21,18 @@ for (const locale of languages) {
await device.reloadReactNative();
});
it("should load app", async () => {
// await expect(element(by.id("welcome"))).toBeVisible();
it("should have welcome screen", async () => {
await expect(element(by.id("welcome"))).toBeVisible();
await captureAsync();
});
xit("should show hello screen after tap", async () => {
await element(by.id("hello_button")).tap();
await captureAsync();
});
xit("should show world screen after tap", async () => {
await element(by.id("world_button")).tap();
await captureAsync();
});
});
+6 -16
View File
@@ -4,19 +4,10 @@ import * as path from "path";
import { setStatusBar } from "./setStatusBar";
export function getOutputDir(projectRoot: string, locale: string) {
const store = device.getPlatform() === "ios" ? "apple" : "google";
return path.resolve(projectRoot, `merch/${store}/preview/${locale}/`);
}
function resolveName(str: string) {
if (str && device.getPlatform() === "ios" && typeof str === "string") {
// Convert a name like: `E9EA2214-6B88-4223-9872-8232168088FB {"type":"iPhone 12 Pro Max"}`
// to `iPhone 12 Pro Max`
// Name is important for screenshot sorting
const match = str.match(/"type"\s?:\s?"(.*)"}/i)?.[1];
return match || str;
}
return str;
return path.resolve(
projectRoot,
`meta/screenshots/${device.getPlatform()}/${locale}/`
);
}
export async function takeScreenshotAsync({
@@ -36,9 +27,8 @@ export async function takeScreenshotAsync({
if (index == null) {
index = fs.readdirSync(outputDir).length;
}
const deviceName = resolveName(device.name);
const name = `APP_${deviceName}-${index}`;
const name = `APP_${device.name}_${index}`.toUpperCase();
const imgPath = path.resolve(outputDir, `${name}.png`);
const imagePath = await device.takeScreenshot(name);
await fs.promises.copyFile(imagePath, imgPath);
@@ -68,7 +58,7 @@ export function createCapture({
clearAsync,
async resetAppAsync() {
// Clear old screen shots
// await clearAsync();
await clearAsync();
// configure status bars
setStatusBar();
-1
View File
@@ -1,4 +1,3 @@
import "react-native-gesture-handler";
import { registerRootComponent } from "expo";
import Constants from "expo-constants";
+36 -16
View File
@@ -3,7 +3,6 @@
"main": "./index.js",
"version": "1.0.0",
"scripts": {
"detox:clean": "detox clean-framework-cache && detox build-framework-cache",
"build:ios": "detox build -c ios.sim.debug",
"test:ios": "detox test -c ios.sim.debug",
"e2e:ios": "npm run build:ios && npm run test:ios",
@@ -14,7 +13,7 @@
"test:android": "detox test -c android.emu.debug",
"e2e:android": "npm run build:android && npm run test:android",
"build:android-release": "detox build -c android.emu.release",
"test:android-release": "detox test -c android.emu.release --headless",
"test:android-release": "detox test -c android.emu.release",
"e2e:android-release": "npm run build:android-release && npm run test:android-release",
"clean:android": "pushd android && ./gradlew clean && popd",
"start": "expo start --dev-client",
@@ -22,27 +21,48 @@
"android": "expo run:android"
},
"dependencies": {
"@config-plugins/detox": "^1.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-native": "0.64.3",
"react-native-reanimated": "~2.2.0",
"react-native-safe-area-context": "3.3.2",
"react-native-screens": "~3.8.0",
"react-dom": "17.0.1",
"react-native-gesture-handler": "~1.10.2",
"react-native-web": "0.17.1"
"react-native": "0.64.3",
"react-native-adjust": "^4.29.5",
"react-native-blob-util": "^0.13.17",
"react-native-callkeep": "^4.2.0",
"react-native-branch": "^5.3.0",
"react-native-dynamic-app-icon": "^1.1.0",
"react-native-google-cast": "^4.1.2",
"react-native-pdf": "^6.4.0",
"react-native-quick-actions": "^0.3.13",
"react-native-safe-area-context": "3.3.2",
"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",
@@ -50,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);
+4 -4
View File
@@ -26,10 +26,10 @@ function addDetoxProguardRules(buildGradle) {
return buildGradle;
}
return buildGradle.replace(/proguardFiles getDefaultProguardFile\("proguard-android.txt"\),\s?"proguard-rules.pro"/, `proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
// Detox-specific additions to pro-guard
def detoxProguardRulesPath = new File(["node", "--print", "require.resolve('detox/package.json')"].execute(null, rootDir).text.trim(), "../android/detox/proguard-rules-app.pro")
proguardFile(detoxProguardRulesPath)
`);
// Detox-specific additions to pro-guard
def detoxProguardRulesPath = new File(["node", "--print", "require.resolve('detox/package.json')"].execute(null, rootDir).text.trim(), "../android/detox/proguard-rules-app.pro")
proguardFile(detoxProguardRulesPath)
`);
}
exports.addDetoxProguardRules = addDetoxProguardRules;
exports.default = withProguardGradle;
+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
}
}
}
-1
View File
@@ -95,7 +95,6 @@ const withStickerAssets = (config, { stickers, icon, size }) => {
projectRoot: config.modRequest.projectRoot,
cacheType: "ios-stickers",
}, {
resizeMode: "contain",
src,
});
// let results;
+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
}
}
}
@@ -173,7 +173,6 @@ export const withStickerAssets: ConfigPlugin<{
cacheType: "ios-stickers",
},
{
resizeMode: "contain",
src,
} as any
);
+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');
@@ -0,0 +1,6 @@
## @config-plugins/react-native-adjust 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))
+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__/*"]
}
@@ -0,0 +1,6 @@
## @config-plugins/react-native-ble-plx 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-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).
Loaded 100 of 113 files, more files were not shown because too many files have changed in this diff. Show more