Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c15065eb9 | ||
|
|
d299fbb361 | ||
|
|
3765a79aac | ||
|
|
765211130a | ||
|
|
a7cc2b2fed | ||
|
|
5d9597dbd6 | ||
|
|
2b36569912 | ||
|
|
e83c44c05e | ||
|
|
1fe140bae4 | ||
|
|
4a27ef455a | ||
|
|
9d8dccc6fc | ||
|
|
bced4c7b0d | ||
|
|
af26cb0d15 | ||
|
|
300770f462 | ||
|
|
6d6770068f | ||
|
|
c8547c07ba | ||
|
|
f7a291fc55 | ||
|
|
fc33478f00 | ||
|
|
a48bb42c19 | ||
|
|
c6292b104a | ||
|
|
3ea7b43e64 | ||
|
|
d971f378d7 | ||
|
|
a2fdafe0d9 | ||
|
|
17c928a7c6 | ||
|
|
93b0fda31b | ||
|
|
27cdb03c04 | ||
|
|
c1150cb723 | ||
|
|
639473d539 | ||
|
|
6a850e7902 | ||
|
|
1de01f582c | ||
|
|
69c2af5b87 | ||
|
|
bd1ffe70c5 | ||
|
|
45c6742c6b | ||
|
|
9412250df6 | ||
|
|
bd70addec7 | ||
|
|
5deff9c0a0 | ||
|
|
566f54e785 | ||
|
|
59f94769fa | ||
|
|
c30e5baa66 | ||
|
|
480485b5aa | ||
|
|
700dbf00dd | ||
|
|
3091b2236b | ||
|
|
ff43a0ea09 | ||
|
|
00197c766b | ||
|
|
5ec55510bc | ||
|
|
31975371cf | ||
|
|
0a1d687d61 | ||
|
|
2387fa9bd7 | ||
|
|
91b88cd443 | ||
|
|
a1f6fbc2ec | ||
|
|
fed9abc5b8 | ||
|
|
b368b0bfcb | ||
|
|
2fa8c2b809 | ||
|
|
be399fdb3b | ||
|
|
2927e09799 | ||
|
|
ec4f114b82 | ||
|
|
9a524549b7 | ||
|
|
4a3899c098 | ||
|
|
4eb10b7794 | ||
|
|
bc6856f7d3 | ||
|
|
fa4397d502 | ||
|
|
ace454934c | ||
|
|
581ce227c6 | ||
|
|
a619addd70 | ||
|
|
87797617d7 | ||
|
|
7fb7fb0acf | ||
|
|
90dfa7aa55 | ||
|
|
20e7914cad | ||
|
|
a8393fcfe8 | ||
|
|
c2cfc1e287 | ||
|
|
e650417b40 | ||
|
|
2e57a4fee8 | ||
|
|
93491ad59d | ||
|
|
b90eed0c0c | ||
|
|
1ccbdb4855 | ||
|
|
b20ef67eda | ||
|
|
9e43cce27f | ||
|
|
3740876bc7 | ||
|
|
55e55e598f | ||
|
|
f42cee7428 | ||
|
|
59b1997c34 | ||
|
|
bfb8838d5d | ||
|
|
006142cd7a | ||
|
|
79d464943b | ||
|
|
6f034e11f1 | ||
|
|
9b15ea96f6 | ||
|
|
d7626845d9 | ||
|
|
bf2154da14 | ||
|
|
0f41412dba | ||
|
|
841803b2d4 | ||
|
|
a6d6b1dff8 | ||
|
|
fee9e88c13 | ||
|
|
0cff8edfcd | ||
|
|
b4fe28fa00 | ||
|
|
72da275f24 | ||
|
|
b86291107e | ||
|
|
bce28777d1 | ||
|
|
bf0d5383ab | ||
|
|
4997e975ac | ||
|
|
ed020d236b | ||
|
|
92cae40eab | ||
|
|
f76b3eb281 | ||
|
|
0ec44e86e4 | ||
|
|
6d990ea663 | ||
|
|
9d96dfbd68 | ||
|
|
dca3987857 | ||
|
|
fc16d69ba6 | ||
|
|
bf11a17a81 | ||
|
|
b3c6210ffc | ||
|
|
d3df63fbb2 | ||
|
|
057c6bd978 | ||
|
|
3fbc237fd6 | ||
|
|
6603ab3215 | ||
|
|
9f49f02401 | ||
|
|
14dc560092 | ||
|
|
2dcaff6772 | ||
|
|
68190997b6 | ||
|
|
74f55fc342 | ||
|
|
e32378e8ed | ||
|
|
764a04710b | ||
|
|
837602af36 | ||
|
|
af22acc509 | ||
|
|
994fadc8dd | ||
|
|
987b109e46 | ||
|
|
226b2a6412 | ||
|
|
d1a2929130 | ||
|
|
a04de8a0e0 | ||
|
|
20a4ecf8a8 | ||
|
|
9e8a90d523 | ||
|
|
9c79b293d8 | ||
|
|
77eb67c5b6 | ||
|
|
190c489b76 | ||
|
|
6c898afd0e | ||
|
|
b55b04d5fd | ||
|
|
0c7b413a76 | ||
|
|
731c5b07b4 | ||
|
|
96c72dda46 | ||
|
|
29ee948c98 | ||
|
|
2fc8f5a3bc | ||
|
|
7a570fb05a | ||
|
|
aed09045d6 | ||
|
|
ad810c8b11 | ||
|
|
e445cb4bc8 | ||
|
|
9b22a71343 | ||
|
|
e49a241243 | ||
|
|
2e06dcae54 | ||
|
|
a24ea1df58 | ||
|
|
50646306c5 | ||
|
|
6fbb2192ad | ||
|
|
7c3cda4f79 | ||
|
|
a78e569f54 | ||
|
|
3fee1c0e6e | ||
|
|
31aee40ee3 | ||
|
|
21c49280d4 | ||
|
|
ce1a818564 | ||
|
|
241d378a54 | ||
|
|
d1bf616248 | ||
|
|
a99c60efd5 | ||
|
|
331ecb163f | ||
|
|
1003ddb2ec | ||
|
|
5ca4e44a49 | ||
|
|
4103b4eb7d | ||
|
|
f8023bf04c | ||
|
|
1b3e87f930 | ||
|
|
5e3ed6d5e4 | ||
|
|
f46f340623 | ||
|
|
99f18da4ed | ||
|
|
999cc00275 | ||
|
|
363d36b0bb | ||
|
|
37d11f1867 | ||
|
|
7ecaaf5bd9 | ||
|
|
9ff7299176 | ||
|
|
f1bd9a7e27 | ||
|
|
83b52a3b61 | ||
|
|
16dfad4dc8 | ||
|
|
0f6493e28d | ||
|
|
0d55f9c8c9 | ||
|
|
fa85f7cf36 | ||
|
|
28997c1062 | ||
|
|
d6050beb2a | ||
|
|
5f4e90059e | ||
|
|
c3a375b292 | ||
|
|
1648e8598b | ||
|
|
e2d2b27494 | ||
|
|
ff8b167764 | ||
|
|
eee366bebc | ||
|
|
72fa3e14ef | ||
|
|
6324eb041b | ||
|
|
480ec19161 | ||
|
|
39a9e63fe9 | ||
|
|
7ffc38a808 | ||
|
|
97dcf1aca6 | ||
|
|
4dcc613a70 | ||
|
|
b07ab9e848 | ||
|
|
7411365343 | ||
|
|
e6e8745f05 | ||
|
|
e9f737cfeb | ||
|
|
b0cfebadb4 | ||
|
|
eb957dec79 | ||
|
|
eb4927760b | ||
|
|
3719d67596 | ||
|
|
df9ac710d5 | ||
|
|
73109da98d | ||
|
|
c904bc6a5f | ||
|
|
1374ab2bf4 | ||
|
|
429dcdc1d0 | ||
|
|
5de4ae3e61 | ||
|
|
537afa4c7d | ||
|
|
ada8b99f32 | ||
|
|
546da1c354 | ||
|
|
71c0aa1387 | ||
|
|
8414fda99b | ||
|
|
95c1f0fcd0 | ||
|
|
718c3f9347 | ||
|
|
2591fe2de7 | ||
|
|
39a88c3703 | ||
|
|
1bc203e66e | ||
|
|
352e887b21 | ||
|
|
96fbab5b2a | ||
|
|
4b7192f364 | ||
|
|
7896eccf49 | ||
|
|
ab8076adf5 | ||
|
|
4affbbb7cc | ||
|
|
831546f34b | ||
|
|
90b841d285 | ||
|
|
99acdc71d2 | ||
|
|
d656142bd0 | ||
|
|
063e812b0b | ||
|
|
4a3de37e9c | ||
|
|
0e2ad56f15 | ||
|
|
cf5c3fe7c4 | ||
|
|
119e31edf1 | ||
|
|
379edcd74c | ||
|
|
88e0cd0ccf | ||
|
|
ec2bbedf8b | ||
|
|
0ccc22771d | ||
|
|
df98474d79 | ||
|
|
8694389f12 | ||
|
|
8ed4e44aee | ||
|
|
c88609a866 | ||
|
|
597ffc3bd7 | ||
|
|
d0b32ce4a1 | ||
|
|
57d589ba8a | ||
|
|
ebb86666d6 | ||
|
|
31ed9978ca | ||
|
|
a98a6e022f | ||
|
|
1ac233eb43 | ||
|
|
e1159b4021 | ||
|
|
ae66cac141 | ||
|
|
71e429b77f | ||
|
|
ef50c05892 | ||
|
|
904741a3bd | ||
|
|
01ca879ca3 | ||
|
|
7f0dd05fdc | ||
|
|
d0e018601c | ||
|
|
0b06baa2b4 | ||
|
|
1de3e74d19 | ||
|
|
2dcf5394d8 | ||
|
|
642fc37966 | ||
|
|
e1176398ec | ||
|
|
136c428d07 | ||
|
|
179ef7824f | ||
|
|
dd40467e2b | ||
|
|
90ff4ab4d6 | ||
|
|
1f851b2931 | ||
|
|
ca5ce46616 | ||
|
|
7f3e49b873 | ||
|
|
3021b3e5bc | ||
|
|
1f9becb8e0 | ||
|
|
1b11be1c6b | ||
|
|
217e2a6ad6 | ||
|
|
e02d8752f5 | ||
|
|
e2e643655f | ||
|
|
c45a2eb620 | ||
|
|
60a657c5d0 | ||
|
|
aff6fc544c | ||
|
|
63621acc3f | ||
|
|
e758d8f047 | ||
|
|
996ec84a15 | ||
|
|
8a8528a60d | ||
|
|
81e959db3e | ||
|
|
8f14b3e2a0 | ||
|
|
c9317db090 | ||
|
|
46b7ef9182 | ||
|
|
199dee9542 | ||
|
|
c248895ce9 | ||
|
|
7b77b4351d | ||
|
|
be438e00c1 | ||
|
|
d2f1837284 | ||
|
|
bb43bbe8b7 | ||
|
|
58b042ab57 | ||
|
|
25c2d8da82 | ||
|
|
8526273bfa | ||
|
|
7a7b88b735 | ||
|
|
954cc4c189 | ||
|
|
dcf61a9b95 | ||
|
|
4a7d707b20 | ||
|
|
eedb489416 | ||
|
|
3091016389 | ||
|
|
4f9e566e4b | ||
|
|
027a1fdb1e | ||
|
|
ca6b70dc7a | ||
|
|
b96cb784b9 | ||
|
|
d44a0513a3 | ||
|
|
f396c0eca2 | ||
|
|
b72c445561 | ||
|
|
b6d7a269c3 | ||
|
|
b1c48798a2 | ||
|
|
c0caaa117e | ||
|
|
24b6abbf63 | ||
|
|
b46f25e204 | ||
|
|
7d5e4a3083 | ||
|
|
581dd45715 | ||
|
|
a7e4206ffa | ||
|
|
cd9a188413 | ||
|
|
4c1607a2cf | ||
|
|
3a7a22be0e | ||
|
|
978448646d | ||
|
|
3703b47b53 | ||
|
|
e370254d10 | ||
|
|
5caee7a24c | ||
|
|
3ac42ac2fa | ||
|
|
529410be0f | ||
|
|
04ef242347 | ||
|
|
fe00996dbd | ||
|
|
ba84473db8 | ||
|
|
359cbb455d | ||
|
|
909db3c158 | ||
|
|
0aaf6d07d6 | ||
|
|
81857f8938 | ||
|
|
dc86073608 | ||
|
|
8dd7006769 | ||
|
|
f62f4f59ba | ||
|
|
63257cfa20 | ||
|
|
b6b9ce09c1 | ||
|
|
4c3cd1413b | ||
|
|
5833dd9ea3 | ||
|
|
49448a8974 | ||
|
|
780c27319d | ||
|
|
e3acf06968 | ||
|
|
7cce4a464e | ||
|
|
d214964657 | ||
|
|
3cd73f32a2 | ||
|
|
f96f9bdc73 | ||
|
|
f0d957456e | ||
|
|
c2a78787e8 | ||
|
|
bd5710b412 | ||
|
|
f15f5fc7ed | ||
|
|
2546094be7 | ||
|
|
38458d2c9f | ||
|
|
619b2fb02c | ||
|
|
086d83e7d8 | ||
|
|
55890b2800 | ||
|
|
c4f2a9f251 | ||
|
|
5f55d19fef | ||
|
|
8d364ed99e | ||
|
|
b5246338cb | ||
|
|
68cf1c07b2 | ||
|
|
d96c0b2888 | ||
|
|
eb6642c0e7 | ||
|
|
98f8cbf78b | ||
|
|
39fddf135f | ||
|
|
b16ae58fd0 | ||
|
|
46f05c1b63 | ||
|
|
147daea209 | ||
|
|
6360360d94 | ||
|
|
4bf0d2b079 | ||
|
|
217e5d4be3 | ||
|
|
c1305a6acb | ||
|
|
ad82f2b8c8 |
No files matched your search
@@ -0,0 +1,3 @@
|
||||
packages/*/build/** -diff linguist-generated
|
||||
packages/*/plugin/build/** -diff linguist-generated
|
||||
packages/@*/*/build/** -diff linguist-generated
|
||||
@@ -0,0 +1 @@
|
||||
/* @EvanBacon
|
||||
@@ -0,0 +1,78 @@
|
||||
name: 🐛 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/apple-settings'
|
||||
- '@config-plugins/ios-stickers'
|
||||
- '@config-plugins/react-native-adjust'
|
||||
- '@config-plugins/react-native-blob-util'
|
||||
- '@config-plugins/react-native-branch'
|
||||
- '@config-plugins/react-native-callkeep'
|
||||
- '@config-plugins/react-native-dynamic-app-icon'
|
||||
- '@config-plugins/react-native-pdf'
|
||||
- '@config-plugins/react-native-siri-shortcut'
|
||||
- '@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).
|
||||
@@ -0,0 +1,35 @@
|
||||
---
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 🤔 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: Adjust React Native SDK
|
||||
name: 📦 react-native-adjust issues
|
||||
url: https://github.com/adjust/react_native_sdk/issues
|
||||
- about: >-
|
||||
A module provides upload, download, and files access API. Supports file
|
||||
stream read/write for process large files.
|
||||
name: 📦 react-native-blob-util issues
|
||||
url: https://github.com/RonRadtke/react-native-blob-util/issues
|
||||
- about: Branch Metrics React Native SDK
|
||||
name: 📦 react-native-branch issues
|
||||
url: >-
|
||||
https://github.com/BranchMetrics/react-native-branch-deep-linking-attribution/issues
|
||||
- about: iOS 10 CallKit and Android ConnectionService Framework For React Native
|
||||
name: 📦 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: 📦 react-native-dynamic-app-icon issues
|
||||
url: https://github.com/idearockers/react-native-dynamic-app-icon/issues
|
||||
- about: A react native PDF view component, support ios and android platform
|
||||
name: 📦 react-native-pdf issues
|
||||
url: https://github.com/wonday/react-native-pdf/issues
|
||||
- about: A React Native library that enables you to use iOS 12+ Siri Shortcuts.
|
||||
name: 📦 react-native-siri-shortcut issues
|
||||
url: https://github.com/Gustash/react-native-siri-shortcut/issues
|
||||
- about: WebRTC for React Native
|
||||
name: 📦 react-native-webrtc issues
|
||||
url: https://github.com/react-native-webrtc/react-native-webrtc/issues
|
||||
@@ -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?
|
||||
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
🚨 We use semantic release (a bot publishes everything automatically)
|
||||
🚨 so please use conventional commit style for the PR title:
|
||||
🚨 https://www.conventionalcommits.org/en/v1.0.0/
|
||||
🚨 Example: feat(ios-stickers): add new step
|
||||
-->
|
||||
|
||||
# Why
|
||||
|
||||
<!--
|
||||
Please describe the motivation for this PR, and link to relevant GitHub issues, forums posts, or feature requests.
|
||||
-->
|
||||
|
||||
# How
|
||||
|
||||
<!--
|
||||
How did you build this feature or fix this bug and why?
|
||||
-->
|
||||
|
||||
# Test Plan
|
||||
|
||||
<!--
|
||||
Please describe how you tested this change and how a reviewer could reproduce your test, especially if this PR does not include automated tests! If possible, please also provide terminal output and/or screenshots demonstrating your test/reproduction.
|
||||
-->
|
||||
@@ -0,0 +1,38 @@
|
||||
name: Check Markdown links
|
||||
on:
|
||||
workflow_dispatch: {}
|
||||
push:
|
||||
branches: [main]
|
||||
paths:
|
||||
- .github/workflows/lint-md.yml
|
||||
- '**.md'
|
||||
pull_request:
|
||||
paths:
|
||||
- .github/workflows/lint-md.yml
|
||||
- '**.md'
|
||||
|
||||
jobs:
|
||||
lint-md:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 👀 Checkout
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: 🔨 Install pnpm
|
||||
uses: pnpm/setup@703c52620218391530e48b9e8870d5c0082e1b9b # v2.1.0
|
||||
with:
|
||||
install: false
|
||||
|
||||
- name: 🔨 Setup Node
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
|
||||
- name: Install packages
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Check Markdown links
|
||||
run: pnpm exec remark --use validate-links . .github
|
||||
@@ -0,0 +1,48 @@
|
||||
name: Test Packages
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request: {}
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node: ['22', '24']
|
||||
name: Build and test on Node ${{ matrix.node }}
|
||||
steps:
|
||||
- name: 👀 Checkout
|
||||
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: 🔨 Install pnpm
|
||||
uses: pnpm/setup@703c52620218391530e48b9e8870d5c0082e1b9b # v2.1.0
|
||||
with:
|
||||
install: false
|
||||
|
||||
- name: 🔨 Setup Node
|
||||
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
||||
with:
|
||||
node-version: ${{ matrix.node }}
|
||||
cache: pnpm
|
||||
|
||||
- name: Install packages
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- name: Build all packages
|
||||
run: pnpm --filter './packages/*' run build
|
||||
|
||||
- name: Lint all packages
|
||||
run: pnpm --filter './packages/*' run lint --deny-warnings
|
||||
|
||||
- name: Check formatting
|
||||
run: pnpm format --check
|
||||
|
||||
- name: Test all packages
|
||||
run: pnpm --filter './packages/*' run test --passWithNoTests
|
||||
env:
|
||||
CI: true
|
||||
EXPO_DEBUG: true
|
||||
@@ -9,7 +9,7 @@ web-build
|
||||
# Node
|
||||
node_modules
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
pnpm-debug.log
|
||||
|
||||
# Ruby
|
||||
.direnv
|
||||
@@ -48,7 +48,22 @@ xcuserdata
|
||||
.project
|
||||
.settings
|
||||
|
||||
# WebStorm
|
||||
.idea
|
||||
|
||||
# VSCode
|
||||
.history/
|
||||
|
||||
# packages/*/build/
|
||||
# Ignore build folders
|
||||
|
||||
packages/*/build/**
|
||||
packages/*/plugin/build/**
|
||||
packages/@*/*/build/**
|
||||
|
||||
|
||||
# App native folders
|
||||
|
||||
apps/*/ios/*
|
||||
apps/*/android/*
|
||||
apps/*/web-build/*
|
||||
apps/*/dist/*
|
||||
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"$schema": "./node_modules/oxfmt/configuration_schema.json",
|
||||
"printWidth": 100,
|
||||
"tabWidth": 2,
|
||||
"singleQuote": true,
|
||||
"bracketSameLine": true,
|
||||
"trailingComma": "es5",
|
||||
"ignorePatterns": [
|
||||
"**/node_modules/**",
|
||||
"**/build/**",
|
||||
"**/dist/**",
|
||||
"**/__generated__/**",
|
||||
"**/fixtures/**",
|
||||
"**/.expo/**",
|
||||
"**/assets/**",
|
||||
"**/android/**",
|
||||
"**/ios/**",
|
||||
"**/expo-env.d.ts",
|
||||
"packages/apple-settings/src/schema/SettingsPlist.ts"
|
||||
],
|
||||
"sortImports": {
|
||||
"groups": [
|
||||
["builtin", "external"],
|
||||
["internal", "subpath"],
|
||||
["parent", "sibling", "index"],
|
||||
"unknown"
|
||||
],
|
||||
"ignoreCase": false
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,107 @@
|
||||
# CLAUDE.md
|
||||
|
||||
## Project Overview
|
||||
|
||||
Monorepo of community-maintained Expo config plugins for React Native libraries. Plugins auto-configure native Android/iOS projects during `npx expo prebuild`.
|
||||
|
||||
- **Namespace**: `@config-plugins/*`
|
||||
- **Package manager**: pnpm 12 with workspaces (version pinned in `devEngines.packageManager` in the root `package.json`)
|
||||
- **Publishing**: `pnpm publish` (independent versioning)
|
||||
|
||||
## Common Commands
|
||||
|
||||
```bash
|
||||
# Install dependencies
|
||||
pnpm install
|
||||
|
||||
# Build all packages
|
||||
pnpm prepare
|
||||
|
||||
# Watch build all packages
|
||||
pnpm start
|
||||
|
||||
# Generate a new plugin
|
||||
pnpm gen
|
||||
|
||||
# Run tests for a specific package
|
||||
cd packages/<name> && pnpm test
|
||||
|
||||
# Lint a specific package
|
||||
cd packages/<name> && pnpm lint --deny-warnings
|
||||
|
||||
# Format the whole repo (add --check to only verify)
|
||||
pnpm format
|
||||
|
||||
# Build a specific package
|
||||
cd packages/<name> && pnpm build
|
||||
|
||||
# Clean a specific package
|
||||
cd packages/<name> && pnpm clean
|
||||
|
||||
# Rebuild an example app to test config plugins
|
||||
cd apps/<name> && pnpm expo prebuild --clean
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
- `packages/` — Config plugin packages (each has `src/`, `__tests__/`)
|
||||
- `apps/` — Example apps for testing plugins
|
||||
- `fixtures/` — Shared test fixtures (native config files: AppDelegate, build.gradle, Podfile, etc.)
|
||||
- `scripts/` — Repo tooling (plugin generator, dependabot config, issue templates)
|
||||
|
||||
## Conventions
|
||||
|
||||
- Use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) (e.g., `feat(react-native-foo): add bar`)
|
||||
- Branch naming: `@your-github-username/type/description`
|
||||
- Each package runs `tsc`, `jest` and `oxlint` directly. Shared config lives at the root: `tsconfig.base.json`, `jest.config.base.js`, `oxlint.config.mjs`. Formatting is `oxfmt` with `.oxfmtrc.json`
|
||||
- TypeScript source in `src/`, compiled output in `build/`
|
||||
- Shared dependency versions are defined in the `catalog:` block in `pnpm-workspace.yaml` and referenced with `catalog:` in each package's `package.json`
|
||||
- Peer dependency on `expo@^56`
|
||||
- Tests use Jest with `memfs` for virtual filesystem testing
|
||||
|
||||
## Upgrading Plugins for a New Expo SDK Version
|
||||
|
||||
When a new Expo SDK is released (e.g., SDK 54 → SDK 55), every package and example app must be updated. Use conventional commits scoped to the package name (e.g., `chore(react-native-foo): bump to expo@^55`).
|
||||
|
||||
### Catalog updates (`pnpm-workspace.yaml`)
|
||||
|
||||
Update the `catalog:` block with the new SDK versions for shared dependencies:
|
||||
|
||||
1. **`expo`** — Update to `^<NEW_SDK>` (used as `peerDependencies` in all packages).
|
||||
2. **`@expo/config-plugins`** — Update to `^<NEW_SDK>`.
|
||||
3. Review other catalog entries (`@expo/image-utils`, `@expo/plist`, etc.) and bump if needed.
|
||||
|
||||
### Per-package updates (`packages/<name>/`)
|
||||
|
||||
For each package:
|
||||
|
||||
1. **`README.md`** — Add a new row to the version compatibility table with the new SDK version, the latest compatible upstream package version, and the next config plugin major version.
|
||||
2. **Build & test** — Run `pnpm build` and `pnpm test` (if tests exist) to verify nothing broke.
|
||||
|
||||
### Example app updates (`apps/<name>/`)
|
||||
|
||||
For each example app:
|
||||
|
||||
1. **`package.json`** — Update `expo` to the new SDK version (e.g., `~54` → `~55`).
|
||||
2. Run `npx expo install --fix` to align all other dependencies (`react`, `react-native`, `expo-splash-screen`, etc.) to compatible versions.
|
||||
3. Remove any stale vendored templates or files (e.g., old `expo-template-bare-minimum-*.tgz`).
|
||||
|
||||
### Monorepo root updates
|
||||
|
||||
1. **`scripts/generate-plugin.ts`** — Update `SDK_VERSION` to the new SDK number.
|
||||
|
||||
### Final steps
|
||||
|
||||
1. Run `pnpm install` from the root to regenerate `pnpm-lock.yaml`.
|
||||
2. Run `pnpm prepare` to verify all packages build.
|
||||
3. Run tests for packages that have them.
|
||||
4. Update `CLAUDE.md` if any conventions changed (e.g., the peer dependency version listed under Conventions).
|
||||
|
||||
## After Adding/Removing Packages
|
||||
|
||||
Run these from the root:
|
||||
|
||||
```bash
|
||||
pnpm update-dependabot-config
|
||||
pnpm update-issue-template
|
||||
```
|
||||
@@ -0,0 +1,40 @@
|
||||
# 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. Run `pnpm install` in the root directory to generate the build files.
|
||||
3. Use [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) including in the PR title.
|
||||
4. Fill out the entire PR template. Ensure your code is tested locally and has continuous tests in CI.
|
||||
5. Make sure all tests pass on GitHub Actions.
|
||||
6. Wait for a review and adjust the code if necessary.
|
||||
|
||||
## Creating a plugin
|
||||
|
||||
- Plugins can be generated by running `pnpm gen`.
|
||||
- Add plugins to the example in [`apps/app`](/apps/app/package.json) to test them.
|
||||
- The example app should always stay in a state of regeneration.
|
||||
|
||||
Be sure to run the following scripts in the **root directory** to update automation tools:
|
||||
|
||||
- Update dependabot: `pnpm update-dependabot-config`
|
||||
- Update the issue template: `pnpm update-issue-template`
|
||||
|
||||
## Upgrading plugins for a new Expo version
|
||||
|
||||
- Update the `catalog:` block in `pnpm-workspace.yaml` with the new SDK versions for `expo`, `@expo/config-plugins`, and any other shared dependencies
|
||||
- Ensure every project under `apps/` is updated to latest version of Expo
|
||||
- Update each library’s `README.md`
|
||||
- Ensuring the latest version of Expo is listed
|
||||
- Ensure the upstream package version is correct
|
||||
- Use the next version for the matching config plugin
|
||||
- Update `SDK_VERSION` in [`scripts/generate-plugin.ts`](https://github.com/expo/config-plugins/blob/566f54e785147d88cb4c98490c3e536ee7ef3001/scripts/generate-plugin.ts#L67)
|
||||
|
||||
## Publishing a release
|
||||
|
||||
Packages are published manually using the scripts in the root `package.json`:
|
||||
|
||||
1. `pnpm bump`: Increments the major version of all packages.
|
||||
2. `pnpm release`: Publishes all packages to npm.
|
||||
@@ -1,3 +1,17 @@
|
||||
# Custom Expo Config Plugins
|
||||
# Expo Config Plugins
|
||||
|
||||
A collection of custom WIP config plugins for Expo dev clients. Use at your own discretion.
|
||||
This repository is a collection of assorted [Expo config plugins](https://docs.expo.dev/guides/config-plugins/) for configuring the `npx expo prebuild` command. It is meant to be a temporary home for packages that don't have a built-in Config Plugin.
|
||||
|
||||
- **We prefer packages to ship their own Expo config plugin**. This helps ensure that plugin and package versions are always aligned, and that new features are made available in both the package and plugin simultaneously. If packages haven't adopted config plugins yet, the community can add a package here as a temporary home.
|
||||
|
||||
- **All packages here are community maintained.** They are not maintained by Expo. Feel free to improve docs, packages, tests, etc.
|
||||
|
||||
- **We maintain a one-to-one mapping between native packages and `@config-plugins/*`**. This means there should be no general utility packages here — those are better suited for a different repository or npm namespace.
|
||||
|
||||
## Looking for other config plugins?
|
||||
|
||||
Many React Native libraries ship their own built-in config plugins. You can find them on the [React Native Directory](https://reactnative.directory/).
|
||||
|
||||
## Contributing!
|
||||
|
||||
See the [contributing guide](/CONTRIBUTING.md).
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"12bb71342c6255bbf50437ec8f4441c083f47cdb74bd89160c15e4f43e52a1cb": true,
|
||||
"40b842e832070c58deac6aa9e08fa459302ee3f9da492c7e77d93d2fbf4a56fd": true
|
||||
}
|
||||
@@ -1,75 +1,2 @@
|
||||
node_modules/**/*
|
||||
.expo/*
|
||||
npm-debug.*
|
||||
*.jks
|
||||
*.p8
|
||||
*.p12
|
||||
*.key
|
||||
*.mobileprovision
|
||||
*.orig.*
|
||||
web-build/
|
||||
|
||||
# macOS
|
||||
.DS_Store
|
||||
|
||||
# @generated expo-cli sync-2138f1e3e130677ea10ea873f6d498e3890e677b
|
||||
# The following patterns were generated by expo-cli
|
||||
|
||||
# OSX
|
||||
#
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
#
|
||||
build/
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
*.mode1v3
|
||||
!default.mode1v3
|
||||
*.mode2v3
|
||||
!default.mode2v3
|
||||
*.perspectivev3
|
||||
!default.perspectivev3
|
||||
xcuserdata
|
||||
*.xccheckout
|
||||
*.moved-aside
|
||||
DerivedData
|
||||
*.hmap
|
||||
*.ipa
|
||||
*.xcuserstate
|
||||
project.xcworkspace
|
||||
|
||||
# Android/IntelliJ
|
||||
#
|
||||
build/
|
||||
.idea
|
||||
.gradle
|
||||
local.properties
|
||||
*.iml
|
||||
*.hprof
|
||||
|
||||
# node.js
|
||||
#
|
||||
node_modules/
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
|
||||
# BUCK
|
||||
buck-out/
|
||||
\.buckd/
|
||||
*.keystore
|
||||
!debug.keystore
|
||||
|
||||
# Bundle artifacts
|
||||
*.jsbundle
|
||||
|
||||
# CocoaPods
|
||||
/ios/Pods/
|
||||
|
||||
# Expo
|
||||
.expo/
|
||||
web-build/
|
||||
|
||||
# @end expo-cli
|
||||
|
||||
/scripts/start.command
|
||||
/artifacts
|
||||
@@ -1,5 +1 @@
|
||||
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/react-native-ble-plx/App';
|
||||
// export { default } from './src/react-native-webrtc/App';
|
||||
export { default } from './src/react-native-adjust/App';
|
||||
@@ -1,55 +0,0 @@
|
||||
# To learn about Buck see [Docs](https://buckbuild.com/).
|
||||
# To run your application with Buck:
|
||||
# - install Buck
|
||||
# - `npm start` - to start the packager
|
||||
# - `cd android`
|
||||
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"`
|
||||
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck
|
||||
# - `buck install -r android/app` - compile, install and run application
|
||||
#
|
||||
|
||||
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets")
|
||||
|
||||
lib_deps = []
|
||||
|
||||
create_aar_targets(glob(["libs/*.aar"]))
|
||||
|
||||
create_jar_targets(glob(["libs/*.jar"]))
|
||||
|
||||
android_library(
|
||||
name = "all-libs",
|
||||
exported_deps = lib_deps,
|
||||
)
|
||||
|
||||
android_library(
|
||||
name = "app-code",
|
||||
srcs = glob([
|
||||
"src/main/java/**/*.java",
|
||||
]),
|
||||
deps = [
|
||||
":all-libs",
|
||||
":build_config",
|
||||
":res",
|
||||
],
|
||||
)
|
||||
|
||||
android_build_config(
|
||||
name = "build_config",
|
||||
package = "com.bacon.app",
|
||||
)
|
||||
|
||||
android_resource(
|
||||
name = "res",
|
||||
package = "com.bacon.app",
|
||||
res = "src/main/res",
|
||||
)
|
||||
|
||||
android_binary(
|
||||
name = "app",
|
||||
keystore = "//android/keystores:debug",
|
||||
manifest = "src/main/AndroidManifest.xml",
|
||||
package_type = "debug",
|
||||
deps = [
|
||||
":app-code",
|
||||
],
|
||||
)
|
||||
@@ -1,234 +0,0 @@
|
||||
apply plugin: "com.android.application"
|
||||
// @generated begin safeExtGet - expo prebuild (DO NOT MODIFY) sync-be4acad6508a6820102c74ab393bd7ab1093e6c0
|
||||
def safeExtGet(prop, fallback) {
|
||||
rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
|
||||
}
|
||||
// @generated end safeExtGet
|
||||
|
||||
import com.android.build.OutputFile
|
||||
|
||||
/**
|
||||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||
* and bundleReleaseJsAndAssets).
|
||||
* These basically call `react-native bundle` with the correct arguments during the Android build
|
||||
* cycle. By default, bundleDebugJsAndAssets is skipped, as in debug/dev mode we prefer to load the
|
||||
* bundle directly from the development server. Below you can see all the possible configurations
|
||||
* and their defaults. If you decide to add a configuration block, make sure to add it before the
|
||||
* `apply from: "../../node_modules/react-native/react.gradle"` line.
|
||||
*
|
||||
* project.ext.react = [
|
||||
* // the name of the generated asset file containing your JS bundle
|
||||
* bundleAssetName: "index.android.bundle",
|
||||
*
|
||||
* // the entry file for bundle generation. If none specified and
|
||||
* // "index.android.js" exists, it will be used. Otherwise "index.js" is
|
||||
* // default. Can be overridden with ENTRY_FILE environment variable.
|
||||
* entryFile: "index.android.js",
|
||||
*
|
||||
* // https://reactnative.dev/docs/performance#enable-the-ram-format
|
||||
* bundleCommand: "ram-bundle",
|
||||
*
|
||||
* // whether to bundle JS and assets in debug mode
|
||||
* bundleInDebug: false,
|
||||
*
|
||||
* // whether to bundle JS and assets in release mode
|
||||
* bundleInRelease: true,
|
||||
*
|
||||
* // whether to bundle JS and assets in another build variant (if configured).
|
||||
* // See http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants
|
||||
* // The configuration property can be in the following formats
|
||||
* // 'bundleIn${productFlavor}${buildType}'
|
||||
* // 'bundleIn${buildType}'
|
||||
* // bundleInFreeDebug: true,
|
||||
* // bundleInPaidRelease: true,
|
||||
* // bundleInBeta: true,
|
||||
*
|
||||
* // whether to disable dev mode in custom build variants (by default only disabled in release)
|
||||
* // for example: to disable dev mode in the staging build type (if configured)
|
||||
* devDisabledInStaging: true,
|
||||
* // The configuration property can be in the following formats
|
||||
* // 'devDisabledIn${productFlavor}${buildType}'
|
||||
* // 'devDisabledIn${buildType}'
|
||||
*
|
||||
* // the root of your project, i.e. where "package.json" lives
|
||||
* root: "../../",
|
||||
*
|
||||
* // where to put the JS bundle asset in debug mode
|
||||
* jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
|
||||
*
|
||||
* // where to put the JS bundle asset in release mode
|
||||
* jsBundleDirRelease: "$buildDir/intermediates/assets/release",
|
||||
*
|
||||
* // where to put drawable resources / React Native assets, e.g. the ones you use via
|
||||
* // require('./image.png')), in debug mode
|
||||
* resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
|
||||
*
|
||||
* // where to put drawable resources / React Native assets, e.g. the ones you use via
|
||||
* // require('./image.png')), in release mode
|
||||
* resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
|
||||
*
|
||||
* // by default the gradle tasks are skipped if none of the JS files or assets change; this means
|
||||
* // that we don't look at files in android/ or ios/ to determine whether the tasks are up to
|
||||
* // date; if you have any other folders that you want to ignore for performance reasons (gradle
|
||||
* // indexes the entire tree), add them here. Alternatively, if you have JS files in android/
|
||||
* // for example, you might want to remove it from here.
|
||||
* inputExcludes: ["android/**", "ios/**"],
|
||||
*
|
||||
* // override which node gets called and with what additional arguments
|
||||
* nodeExecutableAndArgs: ["node"],
|
||||
*
|
||||
* // supply additional arguments to the packager
|
||||
* extraPackagerArgs: []
|
||||
* ]
|
||||
*/
|
||||
|
||||
project.ext.react = [
|
||||
enableHermes: false
|
||||
]
|
||||
|
||||
apply from: '../../node_modules/react-native-unimodules/gradle.groovy'
|
||||
apply from: "../../node_modules/react-native/react.gradle"
|
||||
apply from: "../../node_modules/expo-constants/scripts/get-app-config-android.gradle"
|
||||
apply from: "../../node_modules/expo-updates/scripts/create-manifest-android.gradle"
|
||||
|
||||
/**
|
||||
* Set this to true to create two separate APKs instead of one:
|
||||
* - An APK that only works on ARM devices
|
||||
* - An APK that only works on x86 devices
|
||||
* The advantage is the size of the APK is reduced by about 4MB.
|
||||
* Upload all the APKs to the Play Store and people will download
|
||||
* the correct one based on the CPU architecture of their device.
|
||||
*/
|
||||
def enableSeparateBuildPerCPUArchitecture = false
|
||||
|
||||
/**
|
||||
* Run Proguard to shrink the Java bytecode in release builds.
|
||||
*/
|
||||
def enableProguardInReleaseBuilds = false
|
||||
|
||||
/**
|
||||
* The preferred build flavor of JavaScriptCore.
|
||||
*
|
||||
* For example, to use the international variant, you can use:
|
||||
* `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
|
||||
*
|
||||
* The international variant includes ICU i18n library and necessary data
|
||||
* allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
|
||||
* give correct results when using with locales other than en-US. Note that
|
||||
* this variant is about 6MiB larger per architecture than default.
|
||||
*/
|
||||
def jscFlavor = 'org.webkit:android-jsc:+'
|
||||
|
||||
/**
|
||||
* Whether to enable the Hermes VM.
|
||||
*
|
||||
* This should be set on project.ext.react and mirrored here. If it is not set
|
||||
* on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
|
||||
* and the benefits of using Hermes will therefore be sharply reduced.
|
||||
*/
|
||||
def enableHermes = project.ext.react.get("enableHermes", false);
|
||||
|
||||
android {
|
||||
compileSdkVersion rootProject.ext.compileSdkVersion
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// detox-plugin-default-config
|
||||
testBuildType System.getProperty('testBuildType', 'debug')
|
||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||
applicationId 'com.bacon.app'
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 1
|
||||
versionName "1.0.0"
|
||||
}
|
||||
splits {
|
||||
abi {
|
||||
reset()
|
||||
enable enableSeparateBuildPerCPUArchitecture
|
||||
universalApk false // If true, also generate a universal APK
|
||||
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
||||
}
|
||||
}
|
||||
signingConfigs {
|
||||
debug {
|
||||
storeFile file('debug.keystore')
|
||||
storePassword 'android'
|
||||
keyAlias 'androiddebugkey'
|
||||
keyPassword 'android'
|
||||
}
|
||||
}
|
||||
buildTypes {
|
||||
debug {
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
release {
|
||||
// Caution! In production, you need to generate your own keystore file.
|
||||
// see https://reactnative.dev/docs/signed-apk-android.
|
||||
signingConfig signingConfigs.debug
|
||||
minifyEnabled enableProguardInReleaseBuilds
|
||||
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
|
||||
// Detox-specific additions to pro-guard
|
||||
proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro"
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// applicationVariants are e.g. debug, release
|
||||
applicationVariants.all { variant ->
|
||||
variant.outputs.each { output ->
|
||||
// For each separate APK per architecture, set a unique version code as described here:
|
||||
// https://developer.android.com/studio/build/configure-apk-splits.html
|
||||
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
|
||||
def abi = output.getFilter(OutputFile.ABI)
|
||||
if (abi != null) { // null for the universal-debug, universal-release variants
|
||||
output.versionCodeOverride =
|
||||
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// @generated begin react-native-google-cast-dependencies - expo prebuild (DO NOT MODIFY) sync-3822a3c86222e7aca74039b551612aab7e75365d
|
||||
implementation "com.google.android.gms:play-services-cast-framework:${safeExtGet('castFrameworkVersion', '+')}"
|
||||
// @generated end react-native-google-cast-dependencies
|
||||
androidTestImplementation('com.wix:detox:+')
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
//noinspection GradleDynamicVersion
|
||||
implementation "com.facebook.react:react-native:+" // From node_modules
|
||||
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"
|
||||
debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.fbjni'
|
||||
}
|
||||
debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.flipper'
|
||||
exclude group:'com.squareup.okhttp3', module:'okhttp'
|
||||
}
|
||||
debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
|
||||
exclude group:'com.facebook.flipper'
|
||||
}
|
||||
addUnimodulesDependencies()
|
||||
|
||||
if (enableHermes) {
|
||||
def hermesPath = "../../node_modules/hermes-engine/android/";
|
||||
debugImplementation files(hermesPath + "hermes-debug.aar")
|
||||
releaseImplementation files(hermesPath + "hermes-release.aar")
|
||||
} else {
|
||||
implementation jscFlavor
|
||||
}
|
||||
}
|
||||
|
||||
// Run this once to be able to run the application with BUCK
|
||||
// puts all compile dependencies into folder libs for BUCK to use
|
||||
task copyDownloadableDepsToLibs(type: Copy) {
|
||||
from configurations.compile
|
||||
into 'libs'
|
||||
}
|
||||
|
||||
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
|
||||
@@ -1,19 +0,0 @@
|
||||
"""Helper definitions to glob .aar and .jar targets"""
|
||||
|
||||
def create_aar_targets(aarfiles):
|
||||
for aarfile in aarfiles:
|
||||
name = "aars__" + aarfile[aarfile.rindex("/") + 1:aarfile.rindex(".aar")]
|
||||
lib_deps.append(":" + name)
|
||||
android_prebuilt_aar(
|
||||
name = name,
|
||||
aar = aarfile,
|
||||
)
|
||||
|
||||
def create_jar_targets(jarfiles):
|
||||
for jarfile in jarfiles:
|
||||
name = "jars__" + jarfile[jarfile.rindex("/") + 1:jarfile.rindex(".jar")]
|
||||
lib_deps.append(":" + name)
|
||||
prebuilt_jar(
|
||||
name = name,
|
||||
binary_jar = jarfile,
|
||||
)
|
||||
@@ -1,10 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# By default, the flags in this file are appended to flags specified
|
||||
# in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
|
||||
# You can edit the include path and order by changing the proguardFiles
|
||||
# directive in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# Add any project specific keep options here:
|
||||
@@ -1,29 +0,0 @@
|
||||
package com.bacon.app;
|
||||
|
||||
import com.wix.detox.Detox;
|
||||
import com.wix.detox.config.DetoxConfig;
|
||||
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
import androidx.test.filters.LargeTest;
|
||||
import androidx.test.rule.ActivityTestRule;
|
||||
|
||||
@RunWith(AndroidJUnit4.class)
|
||||
@LargeTest
|
||||
public class DetoxTest {
|
||||
@Rule
|
||||
public ActivityTestRule<MainActivity> mActivityRule = new ActivityTestRule<>(MainActivity.class, false, false);
|
||||
|
||||
@Test
|
||||
public void runDetoxTests() {
|
||||
DetoxConfig detoxConfig = new DetoxConfig();
|
||||
detoxConfig.idlePolicyConfig.masterTimeoutSec = 90;
|
||||
detoxConfig.idlePolicyConfig.idleResourceTimeoutSec = 60;
|
||||
detoxConfig.rnContextLoadTimeoutSec = (com.bacon.app.BuildConfig.DEBUG ? 180 : 60);
|
||||
|
||||
Detox.runTests(mActivityRule, detoxConfig);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
|
||||
<application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
|
||||
</manifest>
|
||||
@@ -1,69 +0,0 @@
|
||||
/**
|
||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
||||
*
|
||||
* <p>This source code is licensed under the MIT license found in the LICENSE file in the root
|
||||
* directory of this source tree.
|
||||
*/
|
||||
package com.bacon.app;
|
||||
|
||||
import android.content.Context;
|
||||
import com.facebook.flipper.android.AndroidFlipperClient;
|
||||
import com.facebook.flipper.android.utils.FlipperUtils;
|
||||
import com.facebook.flipper.core.FlipperClient;
|
||||
import com.facebook.flipper.plugins.crashreporter.CrashReporterPlugin;
|
||||
import com.facebook.flipper.plugins.databases.DatabasesFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.fresco.FrescoFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.inspector.DescriptorMapping;
|
||||
import com.facebook.flipper.plugins.inspector.InspectorFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.network.FlipperOkhttpInterceptor;
|
||||
import com.facebook.flipper.plugins.network.NetworkFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.react.ReactFlipperPlugin;
|
||||
import com.facebook.flipper.plugins.sharedpreferences.SharedPreferencesFlipperPlugin;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.bridge.ReactContext;
|
||||
import com.facebook.react.modules.network.NetworkingModule;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
public class ReactNativeFlipper {
|
||||
public static void initializeFlipper(Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (FlipperUtils.shouldEnableFlipper(context)) {
|
||||
final FlipperClient client = AndroidFlipperClient.getInstance(context);
|
||||
client.addPlugin(new InspectorFlipperPlugin(context, DescriptorMapping.withDefaults()));
|
||||
client.addPlugin(new ReactFlipperPlugin());
|
||||
client.addPlugin(new DatabasesFlipperPlugin(context));
|
||||
client.addPlugin(new SharedPreferencesFlipperPlugin(context));
|
||||
client.addPlugin(CrashReporterPlugin.getInstance());
|
||||
NetworkFlipperPlugin networkFlipperPlugin = new NetworkFlipperPlugin();
|
||||
NetworkingModule.setCustomClientBuilder(
|
||||
new NetworkingModule.CustomClientBuilder() {
|
||||
@Override
|
||||
public void apply(OkHttpClient.Builder builder) {
|
||||
builder.addNetworkInterceptor(new FlipperOkhttpInterceptor(networkFlipperPlugin));
|
||||
}
|
||||
});
|
||||
client.addPlugin(networkFlipperPlugin);
|
||||
client.start();
|
||||
// Fresco Plugin needs to ensure that ImagePipelineFactory is initialized
|
||||
// Hence we run if after all native modules have been initialized
|
||||
ReactContext reactContext = reactInstanceManager.getCurrentReactContext();
|
||||
if (reactContext == null) {
|
||||
reactInstanceManager.addReactInstanceEventListener(
|
||||
new ReactInstanceManager.ReactInstanceEventListener() {
|
||||
@Override
|
||||
public void onReactContextInitialized(ReactContext reactContext) {
|
||||
reactInstanceManager.removeReactInstanceEventListener(this);
|
||||
reactContext.runOnNativeModulesQueueThread(
|
||||
new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
client.addPlugin(new FrescoFlipperPlugin());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.bacon.app">
|
||||
<uses-permission-sdk-23 android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
|
||||
<uses-permission android:name="android.permission.BIND_TELECOM_CONNECTION_SERVICE"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||
<uses-permission android:name="android.permission.CALL_PHONE"/>
|
||||
<uses-permission android:name="android.permission.CAMERA"/>
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
|
||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
|
||||
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
|
||||
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
|
||||
<uses-permission android:name="android.permission.VIBRATE"/>
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK"/>
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
|
||||
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
|
||||
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:networkSecurityConfig="@xml/network_security_config">
|
||||
<meta-data android:name="com.google.android.gms.cast.framework.OPTIONS_PROVIDER_CLASS_NAME" android:value="com.reactnative.googlecast.GoogleCastOptionsProvider"/>
|
||||
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
|
||||
<meta-data android:name="expo.modules.updates.EXPO_SDK_VERSION" android:value="41.0.0"/>
|
||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
|
||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
|
||||
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://exp.host/@bacon/app"/>
|
||||
<service android:name="io.wazo.callkeep.RNCallKeepBackgroundMessagingService"/>
|
||||
<service android:name="io.wazo.callkeep.VoiceConnectionService" android:label="Wazo" android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE" android:foregroundServiceType="phoneCall">
|
||||
<intent-filter>
|
||||
<action android:name="android.telecom.ConnectionService"/>
|
||||
</intent-filter>
|
||||
</service>
|
||||
<activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:theme="@style/Theme.App.SplashScreen" android:screenOrientation="portrait">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.VIEW"/>
|
||||
<category android:name="android.intent.category.DEFAULT"/>
|
||||
<category android:name="android.intent.category.BROWSABLE"/>
|
||||
<data android:scheme="com.bacon.app"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity"/>
|
||||
<activity android:name="com.reactnative.googlecast.RNGCExpandedControllerActivity"/>
|
||||
</application>
|
||||
</manifest>
|
||||
@@ -1,58 +0,0 @@
|
||||
package com.bacon.app;
|
||||
import com.google.android.gms.cast.framework.CastContext;
|
||||
import android.content.res.Configuration;
|
||||
import android.content.Intent;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
||||
import com.facebook.react.ReactActivity;
|
||||
import com.facebook.react.ReactActivityDelegate;
|
||||
import com.facebook.react.ReactRootView;
|
||||
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;
|
||||
|
||||
import expo.modules.splashscreen.singletons.SplashScreen;
|
||||
import expo.modules.splashscreen.SplashScreenImageResizeMode;
|
||||
|
||||
|
||||
public class MainActivity extends ReactActivity {
|
||||
|
||||
// Added automatically by Expo Config
|
||||
@Override
|
||||
public void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
Intent intent = new Intent("onConfigurationChanged");
|
||||
intent.putExtra("newConfig", newConfig);
|
||||
sendBroadcast(intent);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(null);
|
||||
// @generated begin react-native-google-cast-onCreate - expo prebuild (DO NOT MODIFY) sync-db583defdeb0226930ad5278e6c069db65777d42
|
||||
CastContext.getSharedInstance(this);
|
||||
// @generated end react-native-google-cast-onCreate
|
||||
// SplashScreen.show(...) has to be called after super.onCreate(...)
|
||||
// Below line is handled by '@expo/configure-splash-screen' command and it's discouraged to modify it manually
|
||||
SplashScreen.show(this, SplashScreenImageResizeMode.CONTAIN, ReactRootView.class, false);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the name of the main component registered from JavaScript.
|
||||
* This is used to schedule rendering of the component.
|
||||
*/
|
||||
@Override
|
||||
protected String getMainComponentName() {
|
||||
return "main";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ReactActivityDelegate createReactActivityDelegate() {
|
||||
return new ReactActivityDelegate(this, getMainComponentName()) {
|
||||
@Override
|
||||
protected ReactRootView createRootView() {
|
||||
return new RNGestureHandlerEnabledRootView(MainActivity.this);
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
package com.bacon.app;
|
||||
|
||||
import android.app.Application;
|
||||
import android.content.Context;
|
||||
import android.net.Uri;
|
||||
|
||||
import com.facebook.react.PackageList;
|
||||
import com.facebook.react.ReactApplication;
|
||||
import com.facebook.react.ReactInstanceManager;
|
||||
import com.facebook.react.ReactNativeHost;
|
||||
import com.facebook.react.ReactPackage;
|
||||
import com.facebook.react.shell.MainReactPackage;
|
||||
import com.facebook.soloader.SoLoader;
|
||||
import com.bacon.app.generated.BasePackageList;
|
||||
|
||||
import org.unimodules.adapters.react.ReactAdapterPackage;
|
||||
import org.unimodules.adapters.react.ModuleRegistryAdapter;
|
||||
import org.unimodules.adapters.react.ReactModuleRegistryProvider;
|
||||
import org.unimodules.core.interfaces.Package;
|
||||
import org.unimodules.core.interfaces.SingletonModule;
|
||||
import expo.modules.constants.ConstantsPackage;
|
||||
import expo.modules.permissions.PermissionsPackage;
|
||||
import expo.modules.filesystem.FileSystemPackage;
|
||||
import expo.modules.updates.UpdatesController;
|
||||
|
||||
import com.facebook.react.bridge.JSIModulePackage;
|
||||
import com.swmansion.reanimated.ReanimatedJSIModulePackage;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
public class MainApplication extends Application implements ReactApplication {
|
||||
private final ReactModuleRegistryProvider mModuleRegistryProvider = new ReactModuleRegistryProvider(
|
||||
new BasePackageList().getPackageList()
|
||||
);
|
||||
|
||||
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
|
||||
@Override
|
||||
public boolean getUseDeveloperSupport() {
|
||||
return BuildConfig.DEBUG;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected List<ReactPackage> getPackages() {
|
||||
List<ReactPackage> packages = new PackageList(this).getPackages();
|
||||
packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider));
|
||||
return packages;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getJSMainModuleName() {
|
||||
return "index";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JSIModulePackage getJSIModulePackage() {
|
||||
return new ReanimatedJSIModulePackage();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @Nullable String getJSBundleFile() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
return super.getJSBundleFile();
|
||||
} else {
|
||||
return UpdatesController.getInstance().getLaunchAssetFile();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected @Nullable String getBundleAssetName() {
|
||||
if (BuildConfig.DEBUG) {
|
||||
return super.getBundleAssetName();
|
||||
} else {
|
||||
return UpdatesController.getInstance().getBundleAssetName();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public ReactNativeHost getReactNativeHost() {
|
||||
return mReactNativeHost;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
SoLoader.init(this, /* native exopackage */ false);
|
||||
|
||||
if (!BuildConfig.DEBUG) {
|
||||
UpdatesController.initialize(this);
|
||||
}
|
||||
|
||||
initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
}
|
||||
|
||||
/**
|
||||
* Loads Flipper in React Native templates. Call this in the onCreate method with something like
|
||||
* initializeFlipper(this, getReactNativeHost().getReactInstanceManager());
|
||||
*
|
||||
* @param context
|
||||
* @param reactInstanceManager
|
||||
*/
|
||||
private static void initializeFlipper(
|
||||
Context context, ReactInstanceManager reactInstanceManager) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
try {
|
||||
/*
|
||||
We use reflection here to pick up the class that initializes Flipper,
|
||||
since Flipper library is not available in release mode
|
||||
*/
|
||||
Class<?> aClass = Class.forName("com.bacon.app.ReactNativeFlipper");
|
||||
aClass
|
||||
.getMethod("initializeFlipper", Context.class, ReactInstanceManager.class)
|
||||
.invoke(null, context, reactInstanceManager);
|
||||
} catch (ClassNotFoundException e) {
|
||||
e.printStackTrace();
|
||||
} catch (NoSuchMethodException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
} catch (InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
package com.bacon.app.generated;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import org.unimodules.core.interfaces.Package;
|
||||
|
||||
public class BasePackageList {
|
||||
public List<Package> getPackageList() {
|
||||
return Arrays.<Package>asList(
|
||||
new expo.modules.constants.ConstantsPackage(),
|
||||
new expo.modules.updates.UpdatesPackage(),
|
||||
new expo.modules.application.ApplicationPackage(),
|
||||
new expo.modules.errorrecovery.ErrorRecoveryPackage(),
|
||||
new expo.modules.filesystem.FileSystemPackage(),
|
||||
new expo.modules.font.FontLoaderPackage(),
|
||||
new expo.modules.imageloader.ImageLoaderPackage(),
|
||||
new expo.modules.keepawake.KeepAwakePackage(),
|
||||
new expo.modules.localization.LocalizationPackage(),
|
||||
new expo.modules.permissions.PermissionsPackage(),
|
||||
new expo.modules.splashscreen.SplashScreenPackage()
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
This file was created by '@expo/configure-splash-screen' and some of it's content shouldn't be modified by hand
|
||||
-->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/splashscreen_background"/>
|
||||
</layer-list>
|
||||
|
Before Width: | Height: | Size: 47 KiB |
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/iconBackground"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
@@ -1,5 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/iconBackground"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<resources>
|
||||
<color name="iconBackground">#FFFFFF</color>
|
||||
<color name="splashscreen_background">#FFFFFF</color>
|
||||
<color name="colorPrimary">#023c69</color>
|
||||
</resources>
|
||||
@@ -1,4 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<resources>
|
||||
<string name="app_name">app</string>
|
||||
</resources>
|
||||
@@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:textColor">#000000</item>
|
||||
<item name="colorPrimary">@color/colorPrimary</item>
|
||||
</style>
|
||||
<style name="Theme.App.SplashScreen" parent="Theme.AppCompat.Light.NoActionBar">
|
||||
<item name="android:windowBackground">@drawable/splashscreen</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,6 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<network-security-config>
|
||||
<domain-config cleartextTrafficPermitted="true">
|
||||
<domain includeSubdomains="true">10.0.2.2</domain><domain includeSubdomains="true">localhost</domain>
|
||||
</domain-config>
|
||||
</network-security-config>
|
||||
@@ -1,45 +0,0 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext {
|
||||
// @generated begin react-native-google-cast-version - expo prebuild (DO NOT MODIFY) sync-db817f4a724fb91198c6371e63f6b1188e44e98d
|
||||
castFrameworkVersion = "+"
|
||||
// @generated end react-native-google-cast-version
|
||||
kotlinVersion = "1.3.50"
|
||||
buildToolsVersion = "29.0.3"
|
||||
minSdkVersion = 21
|
||||
compileSdkVersion = 30
|
||||
targetSdkVersion = 30
|
||||
}
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
|
||||
classpath("com.android.tools.build:gradle:4.1.0")
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
maven {
|
||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||
url("$rootDir/../node_modules/react-native/android")
|
||||
}
|
||||
maven {
|
||||
// Android JSC is installed from npm
|
||||
url("$rootDir/../node_modules/jsc-android/dist")
|
||||
}
|
||||
|
||||
google()
|
||||
jcenter()
|
||||
maven { url 'https://www.jitpack.io' }
|
||||
}
|
||||
}
|
||||
|
||||
allprojects { repositories { maven { url "$rootDir/../node_modules/detox/Detox-android" } } }
|
||||
@@ -1,31 +0,0 @@
|
||||
# Project-wide Gradle settings.
|
||||
|
||||
# IDE (e.g. Android Studio) users:
|
||||
# Gradle settings configured through the IDE *will override*
|
||||
# any settings specified in this file.
|
||||
|
||||
# For more details on how to configure your build environment visit
|
||||
# http://www.gradle.org/docs/current/userguide/build_environment.html
|
||||
|
||||
# Specifies the JVM arguments used for the daemon process.
|
||||
# The setting is particularly useful for tweaking memory settings.
|
||||
# Default value: -Xmx10248m -XX:MaxPermSize=256m
|
||||
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
|
||||
|
||||
# When configured, Gradle will run in incubating parallel mode.
|
||||
# This option should only be used with decoupled projects. More details, visit
|
||||
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
|
||||
# org.gradle.parallel=true
|
||||
|
||||
# AndroidX package structure to make it clearer which packages are bundled with the
|
||||
# Android operating system, and which are packaged with your app's APK
|
||||
# https://developer.android.com/topic/libraries/support-library/androidx-rn
|
||||
android.useAndroidX=true
|
||||
|
||||
# Automatically convert third-party libraries to use AndroidX
|
||||
android.enableJetifier=true
|
||||
|
||||
# Version of flipper SDK to use with React Native
|
||||
FLIPPER_VERSION=0.54.0
|
||||
expo.jsEngine=jsc
|
||||
android.enableDexingArtifactTransform.desugaring=false
|
||||
@@ -1,5 +0,0 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8-all.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
@@ -1,183 +0,0 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
@@ -1,103 +0,0 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
@@ -1,9 +0,0 @@
|
||||
rootProject.name = 'app'
|
||||
|
||||
apply from: '../node_modules/react-native-unimodules/gradle.groovy'
|
||||
includeUnimodulesProjects()
|
||||
|
||||
apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle");
|
||||
applyNativeModulesSettingsGradle(settings)
|
||||
|
||||
include ':app'
|
||||
@@ -0,0 +1,6 @@
|
||||
module.exports = ({ config }) => {
|
||||
if (!config.extra) config.extra = {};
|
||||
// Expose CI env variables to the app
|
||||
config.extra.CI = process.env.CI;
|
||||
return config;
|
||||
};
|
||||
@@ -4,7 +4,7 @@
|
||||
"slug": "app",
|
||||
"version": "1.0.0",
|
||||
"orientation": "portrait",
|
||||
"icon": "./assets/icon.png",
|
||||
"icon": "https://github.com/expo.png",
|
||||
"splash": {
|
||||
"image": "./assets/splash.png",
|
||||
"resizeMode": "contain",
|
||||
@@ -13,12 +13,10 @@
|
||||
"updates": {
|
||||
"fallbackToCacheTimeout": 0
|
||||
},
|
||||
"assetBundlePatterns": [
|
||||
"**/*"
|
||||
],
|
||||
"assetBundlePatterns": ["**/*"],
|
||||
"ios": {
|
||||
"supportsTablet": true,
|
||||
"bundleIdentifier": "com.bacon.app"
|
||||
"bundleIdentifier": "dev.bacon.app"
|
||||
},
|
||||
"android": {
|
||||
"adaptiveIcon": {
|
||||
@@ -31,41 +29,9 @@
|
||||
"favicon": "./assets/favicon.png"
|
||||
},
|
||||
"plugins": [
|
||||
"@react-native-mapbox-gl/maps",
|
||||
[
|
||||
"@config-plugins/react-native-dynamic-app-icon",
|
||||
[
|
||||
"./assets/stickers/avocool.png",
|
||||
"https://pbs.twimg.com/profile_images/1308332115919020032/jlqFOD33_400x400.jpg",
|
||||
"https://s3.amazonaws.com/assets.materialup.com/users/pictures/000/361/144/preview/open-uri20180613-4-1yz52gq?1528892052"
|
||||
]
|
||||
],
|
||||
"@config-plugins/detox",
|
||||
"@config-plugins/react-native-google-cast",
|
||||
"@config-plugins/react-native-ble-plx",
|
||||
"@config-plugins/react-native-webrtc",
|
||||
"@config-plugins/react-native-adjust",
|
||||
"@config-plugins/react-native-callkeep",
|
||||
[
|
||||
"@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"
|
||||
]
|
||||
}
|
||||
]
|
||||
"expo-localization"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
module.exports = function(api) {
|
||||
api.cache(true);
|
||||
return {
|
||||
presets: ['babel-preset-expo'],
|
||||
};
|
||||
};
|
||||
@@ -1,72 +0,0 @@
|
||||
const iosName = "app";
|
||||
const emulator = "Pixel_3a_API_30";
|
||||
const simulator = "iPhone 11 Pro";
|
||||
const derivedDataPath = "ios/build";
|
||||
const sdk = "iphonesimulator";
|
||||
|
||||
module.exports = {
|
||||
testRunner: "jest",
|
||||
runnerConfig: require.resolve("./e2e/jest.config.js"),
|
||||
specs: "e2e",
|
||||
behavior: {
|
||||
init: {
|
||||
exposeGlobals: false,
|
||||
},
|
||||
},
|
||||
apps: {
|
||||
"ios.release": {
|
||||
type: "ios.app",
|
||||
binaryPath: `${derivedDataPath}/Build/Products/Release-${sdk}/${iosName}.app`,
|
||||
build: `export RCT_NO_LAUNCH_PACKAGER=true && xcodebuild -workspace ios/${iosName}.xcworkspace -scheme ${iosName} -configuration Release -sdk ${sdk} -derivedDataPath ${derivedDataPath} | npx excpretty ./`,
|
||||
},
|
||||
"ios.debug": {
|
||||
type: "ios.app",
|
||||
binaryPath: `${derivedDataPath}/Build/Products/Debug-${sdk}/${iosName}.app`,
|
||||
build: `xcodebuild -workspace ios/${iosName}.xcworkspace -scheme ${iosName} -configuration Debug -sdk ${sdk} -derivedDataPath ${derivedDataPath} | npx excpretty ./`,
|
||||
},
|
||||
"android.debug": {
|
||||
type: "android.apk",
|
||||
binaryPath: "android/app/build/outputs/apk/debug/app-debug.apk",
|
||||
build:
|
||||
"pushd android; ./gradlew app:assembleDebug app:assembleAndroidTest -DtestBuildType=debug; popd",
|
||||
},
|
||||
"android.release": {
|
||||
type: "android.apk",
|
||||
binaryPath: "android/app/build/outputs/apk/release/app-release.apk",
|
||||
build:
|
||||
"pushd android; ./gradlew app:assembleRelease app:assembleAndroidTest -DtestBuildType=release; popd",
|
||||
},
|
||||
},
|
||||
devices: {
|
||||
simulator: {
|
||||
type: "ios.simulator",
|
||||
device: {
|
||||
type: simulator,
|
||||
},
|
||||
},
|
||||
emulator: {
|
||||
type: "android.emulator",
|
||||
device: {
|
||||
avdName: emulator,
|
||||
},
|
||||
},
|
||||
},
|
||||
configurations: {
|
||||
"ios.sim.release": {
|
||||
device: "simulator",
|
||||
app: "ios.release",
|
||||
},
|
||||
"ios.sim.debug": {
|
||||
device: "simulator",
|
||||
app: "ios.debug",
|
||||
},
|
||||
"android.emu.debug": {
|
||||
device: "emulator",
|
||||
app: "android.debug",
|
||||
},
|
||||
"android.emu.release": {
|
||||
device: "emulator",
|
||||
app: "android.release",
|
||||
},
|
||||
},
|
||||
};
|
||||
@@ -1,39 +0,0 @@
|
||||
import { by, device, element, expect } from "detox";
|
||||
import * as path from "path";
|
||||
|
||||
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"];
|
||||
|
||||
for (const locale of languages) {
|
||||
const { captureAsync, resetAppAsync } = createCapture({
|
||||
projectRoot,
|
||||
locale,
|
||||
});
|
||||
|
||||
describe(locale, () => {
|
||||
beforeAll(resetAppAsync);
|
||||
|
||||
beforeEach(async () => {
|
||||
await device.reloadReactNative();
|
||||
});
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
const {
|
||||
DetoxCircusEnvironment,
|
||||
SpecReporter,
|
||||
WorkerAssignReporter,
|
||||
} = require("detox/runners/jest-circus");
|
||||
|
||||
class CustomDetoxEnvironment extends DetoxCircusEnvironment {
|
||||
constructor(config, context) {
|
||||
super(config, context);
|
||||
|
||||
// Can be safely removed, if you are content with the default value (=300000ms)
|
||||
this.initTimeout = 300000;
|
||||
|
||||
// This takes care of generating status logs on a per-spec basis. By default, Jest only reports at file-level.
|
||||
// This is strictly optional.
|
||||
this.registerListeners({
|
||||
SpecReporter,
|
||||
WorkerAssignReporter,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CustomDetoxEnvironment;
|
||||
@@ -1,11 +0,0 @@
|
||||
module.exports = {
|
||||
testEnvironment: require.resolve("./environment.js"),
|
||||
testRunner: require.resolve("jest-circus/runner"),
|
||||
testTimeout: 120000,
|
||||
testRegex: "/__tests__/.*(e2e)\\.[jt]sx?$",
|
||||
transform: {
|
||||
"^.+\\.[jt]sx?$": "ts-jest",
|
||||
},
|
||||
reporters: [require.resolve("detox/runners/jest/streamlineReporter")],
|
||||
verbose: true,
|
||||
};
|
||||
@@ -1,76 +0,0 @@
|
||||
import { device } from "detox";
|
||||
import * as fs from "fs";
|
||||
import * as path from "path";
|
||||
import { setStatusBar } from "./setStatusBar";
|
||||
|
||||
export function getOutputDir(projectRoot: string, locale: string) {
|
||||
return path.resolve(
|
||||
projectRoot,
|
||||
`meta/screenshots/${device.getPlatform()}/${locale}/`
|
||||
);
|
||||
}
|
||||
|
||||
export async function takeScreenshotAsync({
|
||||
info,
|
||||
projectRoot,
|
||||
index,
|
||||
locale,
|
||||
}: {
|
||||
projectRoot: string;
|
||||
locale: string;
|
||||
info?: string;
|
||||
index?: number;
|
||||
}) {
|
||||
const outputDir = getOutputDir(projectRoot, locale);
|
||||
fs.mkdirSync(outputDir, { recursive: true });
|
||||
|
||||
if (index == null) {
|
||||
index = fs.readdirSync(outputDir).length;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
export function createCapture({
|
||||
projectRoot,
|
||||
locale,
|
||||
}: {
|
||||
locale: string;
|
||||
projectRoot: string;
|
||||
}) {
|
||||
const captureAsync = () =>
|
||||
takeScreenshotAsync({
|
||||
projectRoot,
|
||||
locale,
|
||||
});
|
||||
|
||||
const clearAsync = () => {
|
||||
// Clear old screen shots
|
||||
const outputDir = getOutputDir(projectRoot, locale);
|
||||
fs.rmdirSync(outputDir, { recursive: true });
|
||||
};
|
||||
|
||||
return {
|
||||
captureAsync,
|
||||
clearAsync,
|
||||
async resetAppAsync() {
|
||||
// Clear old screen shots
|
||||
await clearAsync();
|
||||
// configure status bars
|
||||
|
||||
setStatusBar();
|
||||
|
||||
// reset expo-localization which doesn't account for simulators dynamically updating without resetting the phone.
|
||||
await device.terminateApp();
|
||||
|
||||
// launch with lang
|
||||
await device.launchApp({
|
||||
languageAndLocale: { locale, language: locale },
|
||||
launchArgs: { locale },
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
import { execSync } from "child_process";
|
||||
import { device } from "detox";
|
||||
|
||||
export async function setStatusBar() {
|
||||
if (device.getPlatform() === "ios") {
|
||||
// TODO: Set date on iPad - "Tue Jan 9"
|
||||
// assumes only one simulator is booted
|
||||
// use Apple's magic time "9:41" - new Date('1/9/2007 09:41').toISOString()
|
||||
execSync(
|
||||
"xcrun simctl status_bar booted override --time 9:41 --batteryState charged --batteryLevel 100 --wifiBars 3 --cellularMode active --cellularBars 4"
|
||||
);
|
||||
} else {
|
||||
// enter demo mode
|
||||
execSync("adb shell settings put global sysui_demo_allowed 1");
|
||||
// display time 6:00
|
||||
execSync(
|
||||
"adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1850"
|
||||
);
|
||||
// Display full mobile data with 4g type and no wifi
|
||||
execSync(
|
||||
"adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e level 4 -e datatype 4g -e wifi false"
|
||||
);
|
||||
// Hide notifications
|
||||
execSync(
|
||||
"adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false"
|
||||
);
|
||||
// Show full battery but not in charging state
|
||||
execSync(
|
||||
"adb shell am broadcast -a com.android.systemui.demo -e command battery -e plugged false -e level 100"
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
import "react-native-gesture-handler";
|
||||
import { registerRootComponent } from "expo";
|
||||
import { registerRootComponent } from 'expo';
|
||||
|
||||
import App from "./App";
|
||||
import App from './App';
|
||||
|
||||
// registerRootComponent calls AppRegistry.registerComponent('main', () => App);
|
||||
// It also ensures that whether you load the app in Expo Go or in a native build,
|
||||
|
||||
@@ -1,28 +0,0 @@
|
||||
require_relative '../node_modules/react-native/scripts/react_native_pods'
|
||||
require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
|
||||
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
|
||||
|
||||
platform :ios, '11.0'
|
||||
|
||||
target 'app' do
|
||||
use_unimodules!
|
||||
config = use_native_modules!
|
||||
|
||||
# @generated begin pre_installer - expo prebuild (DO NOT MODIFY) sync-c8812095000d6054b846ce74840f0ffb540c2757
|
||||
pre_install do |installer|
|
||||
# @generated begin @react-native-mapbox-gl/maps-pre_installer - expo prebuild (DO NOT MODIFY) sync-5a7ed0a20d5aff2d61639bc5bb4fd5551233d57c
|
||||
$RNMBGL.pre_install(installer)
|
||||
# @generated end @react-native-mapbox-gl/maps-pre_installer
|
||||
end
|
||||
# @generated end pre_installer
|
||||
use_react_native!(:path => config["reactNativePath"])
|
||||
|
||||
# Uncomment to opt-in to using Flipper
|
||||
#
|
||||
# if !ENV['CI']
|
||||
# use_flipper!('Flipper' => '0.75.1', 'Flipper-Folly' => '2.5.3', 'Flipper-RSocket' => '1.3.1')
|
||||
# post_install do |installer|
|
||||
# flipper_post_install(installer)
|
||||
# end
|
||||
# end
|
||||
end
|
||||
@@ -1,674 +0,0 @@
|
||||
PODS:
|
||||
- boost-for-react-native (1.63.0)
|
||||
- DoubleConversion (1.1.6)
|
||||
- EXApplication (3.1.2):
|
||||
- UMCore
|
||||
- EXConstants (10.1.3):
|
||||
- UMConstantsInterface
|
||||
- UMCore
|
||||
- EXErrorRecovery (2.1.0):
|
||||
- UMCore
|
||||
- EXFileSystem (11.0.2):
|
||||
- UMCore
|
||||
- UMFileSystemInterface
|
||||
- EXFont (9.1.0):
|
||||
- UMCore
|
||||
- UMFontInterface
|
||||
- EXImageLoader (2.1.1):
|
||||
- React-Core
|
||||
- UMCore
|
||||
- UMImageLoaderInterface
|
||||
- EXKeepAwake (9.1.2):
|
||||
- UMCore
|
||||
- EXLocalization (10.1.0):
|
||||
- UMCore
|
||||
- EXPermissions (12.0.1):
|
||||
- UMCore
|
||||
- UMPermissionsInterface
|
||||
- EXSplashScreen (0.10.2):
|
||||
- React-Core
|
||||
- UMCore
|
||||
- EXStructuredHeaders (1.0.1):
|
||||
- UMCore
|
||||
- EXUpdates (0.5.5):
|
||||
- EXStructuredHeaders
|
||||
- React-Core
|
||||
- UMCore
|
||||
- FBLazyVector (0.63.4)
|
||||
- FBReactNativeSpec (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTRequired (= 0.63.4)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- Folly (2020.01.13.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
- Folly/Default (= 2020.01.13.00)
|
||||
- glog
|
||||
- Folly/Default (2020.01.13.00):
|
||||
- boost-for-react-native
|
||||
- DoubleConversion
|
||||
- glog
|
||||
- glog (0.3.5)
|
||||
- google-cast-sdk-no-bluetooth (4.6.1):
|
||||
- google-cast-sdk-no-bluetooth/Core (= 4.6.1)
|
||||
- Protobuf (~> 3.13)
|
||||
- google-cast-sdk-no-bluetooth/Core (4.6.1):
|
||||
- Protobuf (~> 3.13)
|
||||
- Mapbox-iOS-SDK (5.9.0):
|
||||
- MapboxMobileEvents (= 0.10.2)
|
||||
- MapboxMobileEvents (0.10.2)
|
||||
- MultiplatformBleAdapter (0.1.7)
|
||||
- PromisesObjC (2.0.0)
|
||||
- Protobuf (3.17.0)
|
||||
- RCTRequired (0.63.4)
|
||||
- RCTTypeSafety (0.63.4):
|
||||
- FBLazyVector (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTRequired (= 0.63.4)
|
||||
- React-Core (= 0.63.4)
|
||||
- React (0.63.4):
|
||||
- React-Core (= 0.63.4)
|
||||
- React-Core/DevSupport (= 0.63.4)
|
||||
- React-Core/RCTWebSocket (= 0.63.4)
|
||||
- React-RCTActionSheet (= 0.63.4)
|
||||
- React-RCTAnimation (= 0.63.4)
|
||||
- React-RCTBlob (= 0.63.4)
|
||||
- React-RCTImage (= 0.63.4)
|
||||
- React-RCTLinking (= 0.63.4)
|
||||
- React-RCTNetwork (= 0.63.4)
|
||||
- React-RCTSettings (= 0.63.4)
|
||||
- React-RCTText (= 0.63.4)
|
||||
- React-RCTVibration (= 0.63.4)
|
||||
- React-callinvoker (0.63.4)
|
||||
- React-Core (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.63.4)
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/CoreModulesHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/Default (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/DevSupport (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.63.4)
|
||||
- React-Core/RCTWebSocket (= 0.63.4)
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- React-jsinspector (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTActionSheetHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTAnimationHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTBlobHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTImageHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTLinkingHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTNetworkHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTSettingsHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTTextHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTVibrationHeaders (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-Core/RCTWebSocket (0.63.4):
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-Core/Default (= 0.63.4)
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsiexecutor (= 0.63.4)
|
||||
- Yoga
|
||||
- React-CoreModules (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core/CoreModulesHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-RCTImage (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-cxxreact (0.63.4):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-callinvoker (= 0.63.4)
|
||||
- React-jsinspector (= 0.63.4)
|
||||
- React-jsi (0.63.4):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-jsi/Default (= 0.63.4)
|
||||
- React-jsi/Default (0.63.4):
|
||||
- boost-for-react-native (= 1.63.0)
|
||||
- DoubleConversion
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-jsiexecutor (0.63.4):
|
||||
- DoubleConversion
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-jsinspector (0.63.4)
|
||||
- react-native-ble-plx (2.0.2):
|
||||
- MultiplatformBleAdapter (= 0.1.7)
|
||||
- React
|
||||
- react-native-google-cast (4.1.2):
|
||||
- React
|
||||
- react-native-google-cast/NoBluetooth (= 4.1.2)
|
||||
- react-native-google-cast/NoBluetooth (4.1.2):
|
||||
- google-cast-sdk-no-bluetooth
|
||||
- React
|
||||
- react-native-google-cast/RNGoogleCast
|
||||
- react-native-google-cast/RNGoogleCast (4.1.2):
|
||||
- PromisesObjC
|
||||
- React
|
||||
- react-native-mapbox-gl (8.2.1):
|
||||
- Mapbox-iOS-SDK (~> 5.9.0)
|
||||
- React
|
||||
- React-Core
|
||||
- react-native-mapbox-gl/DynamicLibrary (= 8.2.1)
|
||||
- react-native-mapbox-gl/StaticLibraryFixer (= 8.2.1)
|
||||
- react-native-mapbox-gl/DynamicLibrary (8.2.1):
|
||||
- Mapbox-iOS-SDK (~> 5.9.0)
|
||||
- React
|
||||
- React-Core
|
||||
- react-native-mapbox-gl/StaticLibraryFixer (8.2.1):
|
||||
- Mapbox-iOS-SDK (~> 5.9.0)
|
||||
- React
|
||||
- React-Core
|
||||
- react-native-webrtc (1.89.3):
|
||||
- React-Core
|
||||
- React-RCTActionSheet (0.63.4):
|
||||
- React-Core/RCTActionSheetHeaders (= 0.63.4)
|
||||
- React-RCTAnimation (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core/RCTAnimationHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTBlob (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- React-Core/RCTBlobHeaders (= 0.63.4)
|
||||
- React-Core/RCTWebSocket (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-RCTNetwork (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTImage (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core/RCTImageHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- React-RCTNetwork (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTLinking (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- React-Core/RCTLinkingHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTNetwork (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core/RCTNetworkHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTSettings (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- RCTTypeSafety (= 0.63.4)
|
||||
- React-Core/RCTSettingsHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- React-RCTText (0.63.4):
|
||||
- React-Core/RCTTextHeaders (= 0.63.4)
|
||||
- React-RCTVibration (0.63.4):
|
||||
- FBReactNativeSpec (= 0.63.4)
|
||||
- Folly (= 2020.01.13.00)
|
||||
- React-Core/RCTVibrationHeaders (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (= 0.63.4)
|
||||
- ReactCommon/turbomodule/core (0.63.4):
|
||||
- DoubleConversion
|
||||
- Folly (= 2020.01.13.00)
|
||||
- glog
|
||||
- React-callinvoker (= 0.63.4)
|
||||
- React-Core (= 0.63.4)
|
||||
- React-cxxreact (= 0.63.4)
|
||||
- React-jsi (= 0.63.4)
|
||||
- RNCallKeep (4.2.0):
|
||||
- React
|
||||
- RNDynamicAppIcon (1.1.0):
|
||||
- React
|
||||
- RNGestureHandler (1.10.3):
|
||||
- React-Core
|
||||
- RNReanimated (2.1.0):
|
||||
- DoubleConversion
|
||||
- FBLazyVector
|
||||
- FBReactNativeSpec
|
||||
- Folly
|
||||
- glog
|
||||
- RCTRequired
|
||||
- RCTTypeSafety
|
||||
- React
|
||||
- React-callinvoker
|
||||
- React-Core
|
||||
- React-Core/DevSupport
|
||||
- React-Core/RCTWebSocket
|
||||
- React-CoreModules
|
||||
- React-cxxreact
|
||||
- React-jsi
|
||||
- React-jsiexecutor
|
||||
- React-jsinspector
|
||||
- React-RCTActionSheet
|
||||
- React-RCTAnimation
|
||||
- React-RCTBlob
|
||||
- React-RCTImage
|
||||
- React-RCTLinking
|
||||
- React-RCTNetwork
|
||||
- React-RCTSettings
|
||||
- React-RCTText
|
||||
- React-RCTVibration
|
||||
- ReactCommon/turbomodule/core
|
||||
- Yoga
|
||||
- RNScreens (3.0.0):
|
||||
- React-Core
|
||||
- UMAppLoader (2.1.0)
|
||||
- UMBarCodeScannerInterface (6.1.0):
|
||||
- UMCore
|
||||
- UMCameraInterface (6.1.0):
|
||||
- UMCore
|
||||
- UMConstantsInterface (6.1.0):
|
||||
- UMCore
|
||||
- UMCore (7.1.0)
|
||||
- UMFaceDetectorInterface (6.1.0)
|
||||
- UMFileSystemInterface (6.1.0)
|
||||
- UMFontInterface (6.1.0)
|
||||
- UMImageLoaderInterface (6.1.0)
|
||||
- UMPermissionsInterface (6.1.0):
|
||||
- UMCore
|
||||
- UMReactNativeAdapter (6.2.2):
|
||||
- React-Core
|
||||
- UMCore
|
||||
- UMFontInterface
|
||||
- UMSensorsInterface (6.1.0):
|
||||
- UMCore
|
||||
- UMTaskManagerInterface (6.1.0):
|
||||
- UMCore
|
||||
- Yoga (1.14.0)
|
||||
|
||||
DEPENDENCIES:
|
||||
- DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
|
||||
- EXApplication (from `../../../node_modules/expo-application/ios`)
|
||||
- EXConstants (from `../node_modules/expo-constants/ios`)
|
||||
- EXErrorRecovery (from `../../../node_modules/expo-error-recovery/ios`)
|
||||
- EXFileSystem (from `../../../node_modules/expo-file-system/ios`)
|
||||
- EXFont (from `../../../node_modules/expo-font/ios`)
|
||||
- EXImageLoader (from `../../../node_modules/expo-image-loader/ios`)
|
||||
- EXKeepAwake (from `../../../node_modules/expo-keep-awake/ios`)
|
||||
- EXLocalization (from `../../../node_modules/expo-localization/ios`)
|
||||
- EXPermissions (from `../../../node_modules/expo-permissions/ios`)
|
||||
- EXSplashScreen (from `../../../node_modules/expo-splash-screen/ios`)
|
||||
- EXStructuredHeaders (from `../../../node_modules/expo-structured-headers/ios`)
|
||||
- EXUpdates (from `../node_modules/expo-updates/ios`)
|
||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||
- FBReactNativeSpec (from `../node_modules/react-native/Libraries/FBReactNativeSpec`)
|
||||
- Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
|
||||
- glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
|
||||
- RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
|
||||
- RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
|
||||
- React (from `../node_modules/react-native/`)
|
||||
- React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
|
||||
- React-Core (from `../node_modules/react-native/`)
|
||||
- React-Core/DevSupport (from `../node_modules/react-native/`)
|
||||
- React-Core/RCTWebSocket (from `../node_modules/react-native/`)
|
||||
- React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
|
||||
- React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
|
||||
- React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
|
||||
- React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
|
||||
- React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector`)
|
||||
- react-native-ble-plx (from `../../../node_modules/react-native-ble-plx`)
|
||||
- react-native-google-cast (from `../../../node_modules/react-native-google-cast/ios`)
|
||||
- "react-native-mapbox-gl (from `../../../node_modules/@react-native-mapbox-gl/maps`)"
|
||||
- react-native-webrtc (from `../../../node_modules/react-native-webrtc`)
|
||||
- React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
|
||||
- React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
|
||||
- React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
|
||||
- React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
|
||||
- React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
|
||||
- React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
|
||||
- React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
|
||||
- React-RCTText (from `../node_modules/react-native/Libraries/Text`)
|
||||
- React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
|
||||
- ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
|
||||
- RNCallKeep (from `../../../node_modules/react-native-callkeep`)
|
||||
- RNDynamicAppIcon (from `../../../node_modules/react-native-dynamic-app-icon`)
|
||||
- RNGestureHandler (from `../../../node_modules/react-native-gesture-handler`)
|
||||
- RNReanimated (from `../../../node_modules/react-native-reanimated`)
|
||||
- RNScreens (from `../../../node_modules/react-native-screens`)
|
||||
- UMAppLoader (from `../../../node_modules/unimodules-app-loader/ios`)
|
||||
- UMBarCodeScannerInterface (from `../../../node_modules/unimodules-barcode-scanner-interface/ios`)
|
||||
- UMCameraInterface (from `../../../node_modules/unimodules-camera-interface/ios`)
|
||||
- UMConstantsInterface (from `../../../node_modules/unimodules-constants-interface/ios`)
|
||||
- "UMCore (from `../../../node_modules/@unimodules/core/ios`)"
|
||||
- UMFaceDetectorInterface (from `../../../node_modules/unimodules-face-detector-interface/ios`)
|
||||
- UMFileSystemInterface (from `../../../node_modules/unimodules-file-system-interface/ios`)
|
||||
- UMFontInterface (from `../../../node_modules/unimodules-font-interface/ios`)
|
||||
- UMImageLoaderInterface (from `../../../node_modules/unimodules-image-loader-interface/ios`)
|
||||
- UMPermissionsInterface (from `../../../node_modules/unimodules-permissions-interface/ios`)
|
||||
- "UMReactNativeAdapter (from `../../../node_modules/@unimodules/react-native-adapter/ios`)"
|
||||
- UMSensorsInterface (from `../../../node_modules/unimodules-sensors-interface/ios`)
|
||||
- UMTaskManagerInterface (from `../../../node_modules/unimodules-task-manager-interface/ios`)
|
||||
- Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- boost-for-react-native
|
||||
- google-cast-sdk-no-bluetooth
|
||||
- Mapbox-iOS-SDK
|
||||
- MapboxMobileEvents
|
||||
- MultiplatformBleAdapter
|
||||
- PromisesObjC
|
||||
- Protobuf
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
DoubleConversion:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
|
||||
EXApplication:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-application/ios"
|
||||
EXConstants:
|
||||
inhibit_warnings: false
|
||||
:path: "../node_modules/expo-constants/ios"
|
||||
EXErrorRecovery:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-error-recovery/ios"
|
||||
EXFileSystem:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-file-system/ios"
|
||||
EXFont:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-font/ios"
|
||||
EXImageLoader:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-image-loader/ios"
|
||||
EXKeepAwake:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-keep-awake/ios"
|
||||
EXLocalization:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-localization/ios"
|
||||
EXPermissions:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-permissions/ios"
|
||||
EXSplashScreen:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-splash-screen/ios"
|
||||
EXStructuredHeaders:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/expo-structured-headers/ios"
|
||||
EXUpdates:
|
||||
inhibit_warnings: false
|
||||
:path: "../node_modules/expo-updates/ios"
|
||||
FBLazyVector:
|
||||
:path: "../node_modules/react-native/Libraries/FBLazyVector"
|
||||
FBReactNativeSpec:
|
||||
:path: "../node_modules/react-native/Libraries/FBReactNativeSpec"
|
||||
Folly:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
|
||||
glog:
|
||||
:podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
|
||||
RCTRequired:
|
||||
:path: "../node_modules/react-native/Libraries/RCTRequired"
|
||||
RCTTypeSafety:
|
||||
:path: "../node_modules/react-native/Libraries/TypeSafety"
|
||||
React:
|
||||
:path: "../node_modules/react-native/"
|
||||
React-callinvoker:
|
||||
:path: "../node_modules/react-native/ReactCommon/callinvoker"
|
||||
React-Core:
|
||||
:path: "../node_modules/react-native/"
|
||||
React-CoreModules:
|
||||
:path: "../node_modules/react-native/React/CoreModules"
|
||||
React-cxxreact:
|
||||
:path: "../node_modules/react-native/ReactCommon/cxxreact"
|
||||
React-jsi:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsi"
|
||||
React-jsiexecutor:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsiexecutor"
|
||||
React-jsinspector:
|
||||
:path: "../node_modules/react-native/ReactCommon/jsinspector"
|
||||
react-native-ble-plx:
|
||||
:path: "../../../node_modules/react-native-ble-plx"
|
||||
react-native-google-cast:
|
||||
:path: "../../../node_modules/react-native-google-cast/ios"
|
||||
react-native-mapbox-gl:
|
||||
:path: "../../../node_modules/@react-native-mapbox-gl/maps"
|
||||
react-native-webrtc:
|
||||
:path: "../../../node_modules/react-native-webrtc"
|
||||
React-RCTActionSheet:
|
||||
:path: "../node_modules/react-native/Libraries/ActionSheetIOS"
|
||||
React-RCTAnimation:
|
||||
:path: "../node_modules/react-native/Libraries/NativeAnimation"
|
||||
React-RCTBlob:
|
||||
:path: "../node_modules/react-native/Libraries/Blob"
|
||||
React-RCTImage:
|
||||
:path: "../node_modules/react-native/Libraries/Image"
|
||||
React-RCTLinking:
|
||||
:path: "../node_modules/react-native/Libraries/LinkingIOS"
|
||||
React-RCTNetwork:
|
||||
:path: "../node_modules/react-native/Libraries/Network"
|
||||
React-RCTSettings:
|
||||
:path: "../node_modules/react-native/Libraries/Settings"
|
||||
React-RCTText:
|
||||
:path: "../node_modules/react-native/Libraries/Text"
|
||||
React-RCTVibration:
|
||||
:path: "../node_modules/react-native/Libraries/Vibration"
|
||||
ReactCommon:
|
||||
:path: "../node_modules/react-native/ReactCommon"
|
||||
RNCallKeep:
|
||||
:path: "../../../node_modules/react-native-callkeep"
|
||||
RNDynamicAppIcon:
|
||||
:path: "../../../node_modules/react-native-dynamic-app-icon"
|
||||
RNGestureHandler:
|
||||
:path: "../../../node_modules/react-native-gesture-handler"
|
||||
RNReanimated:
|
||||
:path: "../../../node_modules/react-native-reanimated"
|
||||
RNScreens:
|
||||
:path: "../../../node_modules/react-native-screens"
|
||||
UMAppLoader:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-app-loader/ios"
|
||||
UMBarCodeScannerInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-barcode-scanner-interface/ios"
|
||||
UMCameraInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-camera-interface/ios"
|
||||
UMConstantsInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-constants-interface/ios"
|
||||
UMCore:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/@unimodules/core/ios"
|
||||
UMFaceDetectorInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-face-detector-interface/ios"
|
||||
UMFileSystemInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-file-system-interface/ios"
|
||||
UMFontInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-font-interface/ios"
|
||||
UMImageLoaderInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-image-loader-interface/ios"
|
||||
UMPermissionsInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-permissions-interface/ios"
|
||||
UMReactNativeAdapter:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/@unimodules/react-native-adapter/ios"
|
||||
UMSensorsInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-sensors-interface/ios"
|
||||
UMTaskManagerInterface:
|
||||
inhibit_warnings: false
|
||||
:path: "../../../node_modules/unimodules-task-manager-interface/ios"
|
||||
Yoga:
|
||||
:path: "../node_modules/react-native/ReactCommon/yoga"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
|
||||
DoubleConversion: cde416483dac037923206447da6e1454df403714
|
||||
EXApplication: 4797b8b37f0b0470f587fdccf6407f44b50d18b5
|
||||
EXConstants: c4dd28acc12039c999612507a5f935556f2c86ce
|
||||
EXErrorRecovery: 720641265b8cf95e6cdeb1884ac38e794a352488
|
||||
EXFileSystem: dcf2273f49431e5037347c733a2dc5d08e0d0a9e
|
||||
EXFont: d6fb79f9863120f0d0b26b0c2d1453bc9511e9df
|
||||
EXImageLoader: da941c9399e01ec28f2d5b270bdd21f2c8ca596c
|
||||
EXKeepAwake: d4e4a3ed8c1c4fd940dd62fc5a8be2a190371fd4
|
||||
EXLocalization: f139efe4a06be1041815879959346e3d437a6e93
|
||||
EXPermissions: 8f8c1c05580c4e02d4ee2c8dd74bfe173ff6a723
|
||||
EXSplashScreen: a9baaf4fa866003884c90ba049f18760d6a8ce39
|
||||
EXStructuredHeaders: be834496a4d9fd0069cd12ec1cc57b31c6d3b256
|
||||
EXUpdates: efe0e8c514dcff06a8fd0b63be6019a6365fb9c7
|
||||
FBLazyVector: 3bb422f41b18121b71783a905c10e58606f7dc3e
|
||||
FBReactNativeSpec: f2c97f2529dd79c083355182cc158c9f98f4bd6e
|
||||
Folly: b73c3869541e86821df3c387eb0af5f65addfab4
|
||||
glog: 40a13f7840415b9a77023fbcae0f1e6f43192af3
|
||||
google-cast-sdk-no-bluetooth: b3037c14fdf07a794326502e799beb0875ab2029
|
||||
Mapbox-iOS-SDK: a5915700ec84bc1a7f8b3e746d474789e35b7956
|
||||
MapboxMobileEvents: 2bc0ca2eedb627b73cf403258dce2b2fa98074a6
|
||||
MultiplatformBleAdapter: 975cfb2a333b2c42b7a11628bd100ccb61872da2
|
||||
PromisesObjC: 68159ce6952d93e17b2dfe273b8c40907db5ba58
|
||||
Protobuf: 7327d4444215b5f18e560a97f879ff5503c4581c
|
||||
RCTRequired: 082f10cd3f905d6c124597fd1c14f6f2655ff65e
|
||||
RCTTypeSafety: 8c9c544ecbf20337d069e4ae7fd9a377aadf504b
|
||||
React: b0a957a2c44da4113b0c4c9853d8387f8e64e615
|
||||
React-callinvoker: c3f44dd3cb195b6aa46621fff95ded79d59043fe
|
||||
React-Core: d3b2a1ac9a2c13c3bcde712d9281fc1c8a5b315b
|
||||
React-CoreModules: 0581ff36cb797da0943d424f69e7098e43e9be60
|
||||
React-cxxreact: c1480d4fda5720086c90df537ee7d285d4c57ac3
|
||||
React-jsi: a0418934cf48f25b485631deb27c64dc40fb4c31
|
||||
React-jsiexecutor: 93bd528844ad21dc07aab1c67cb10abae6df6949
|
||||
React-jsinspector: 58aef7155bc9a9683f5b60b35eccea8722a4f53a
|
||||
react-native-ble-plx: caac53ee98151ec81198239d591c203809a1ed6e
|
||||
react-native-google-cast: 8538c321da08b2289d24c173cbdfb1bacf8d3be8
|
||||
react-native-mapbox-gl: b79f2d7522556eeabd9fe5c4c94f8f6ce4412304
|
||||
react-native-webrtc: 2e8095a43dd3d95ce796d9750280c0f48aadad3d
|
||||
React-RCTActionSheet: 89a0ca9f4a06c1f93c26067af074ccdce0f40336
|
||||
React-RCTAnimation: 1bde3ecc0c104c55df246eda516e0deb03c4e49b
|
||||
React-RCTBlob: a97d378b527740cc667e03ebfa183a75231ab0f0
|
||||
React-RCTImage: c1b1f2d3f43a4a528c8946d6092384b5c880d2f0
|
||||
React-RCTLinking: 35ae4ab9dc0410d1fcbdce4d7623194a27214fb2
|
||||
React-RCTNetwork: 29ec2696f8d8cfff7331fac83d3e893c95ef43ae
|
||||
React-RCTSettings: 60f0691bba2074ef394f95d4c2265ec284e0a46a
|
||||
React-RCTText: 5c51df3f08cb9dedc6e790161195d12bac06101c
|
||||
React-RCTVibration: ae4f914cfe8de7d4de95ae1ea6cc8f6315d73d9d
|
||||
ReactCommon: 73d79c7039f473b76db6ff7c6b159c478acbbb3b
|
||||
RNCallKeep: 8cbaafb72c4a1738f4a6e70fdaf041a14083ce5b
|
||||
RNDynamicAppIcon: f7eb12d6c2e6e957eead111dacdb93af318396ac
|
||||
RNGestureHandler: a479ebd5ed4221a810967000735517df0d2db211
|
||||
RNReanimated: 70f662b5232dd5d19ccff581e919a54ea73df51c
|
||||
RNScreens: e8e8dd0588b5da0ab57dcca76ab9b2d8987757e0
|
||||
UMAppLoader: fe2708bb0ac5cd70052bc207d06aa3b7e72b9e97
|
||||
UMBarCodeScannerInterface: 79f92bea5f7af39b381a4c82298105ceb537408a
|
||||
UMCameraInterface: 81ff46700da88435f17afedfc88915eaede7e6a6
|
||||
UMConstantsInterface: bb94dd46039dcde276ed50225b29e22785e604bf
|
||||
UMCore: 60b35f4d217461f7b54934b0c5be67442871f01f
|
||||
UMFaceDetectorInterface: 791eec55ffca1171992976b7eceb73e69e391c58
|
||||
UMFileSystemInterface: f72245e90ce78fa6427180ff0b0904ead13d8161
|
||||
UMFontInterface: 5843cff7db85a42ba629aaac53d33091c35524d3
|
||||
UMImageLoaderInterface: 9ddffeb644b3f45d4eb0c2f51a2fd95fd5c8d1a4
|
||||
UMPermissionsInterface: 40b72935a7d12a3f60dc6b7bb99ce47908380cb1
|
||||
UMReactNativeAdapter: 65ada852a648fcb6674acfbfe72ccb095f2f5b75
|
||||
UMSensorsInterface: a5e9db661e5d9ae214762033d725989880ae6993
|
||||
UMTaskManagerInterface: 203c11259d2699b5b3a4eda4adbc466f5cb5c561
|
||||
Yoga: 4bd86afe9883422a7c4028c00e34790f560923d6
|
||||
|
||||
PODFILE CHECKSUM: 9a890b8596b09eb8ff8ca488a161ba9f1d3da249
|
||||
|
||||
COCOAPODS: 1.10.1
|
||||
@@ -1,31 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(PRODUCT_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||
<key>NSExtension</key>
|
||||
<dict>
|
||||
<key>NSExtensionPointIdentifier</key>
|
||||
<string>com.apple.message-payload-provider</string>
|
||||
<key>NSExtensionPrincipalClass</key>
|
||||
<string>StickerBrowserViewController</string>
|
||||
</dict>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>Stickers</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"grid-size": "small"
|
||||
},
|
||||
"stickers": [
|
||||
{
|
||||
"filename": "annoyed.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "cuddle.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "crazy.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "cant.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "donno.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "cozzy.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "dork.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "focus.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "avocool.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "coder-girl.sticker"
|
||||
},
|
||||
{
|
||||
"filename": "teapot.sticker"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 86 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 70 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 61 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 119 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 63 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 87 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 88 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 75 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 89 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 80 KiB |
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"info": {
|
||||
"author": "expo",
|
||||
"version": 1
|
||||
},
|
||||
"properties": {
|
||||
"filename": "image.png"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 127 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 8.5 KiB |