├── .expo
└── settings.json
├── .gitignore
├── .watchmanconfig
├── App.js
├── INITIAL.md
├── README.md
├── android
├── android.iml
├── app
│ ├── app.iml
│ ├── build.gradle
│ ├── expo.gradle
│ ├── fabric.properties
│ ├── google-services.json
│ ├── proguard-rules.pro
│ └── src
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ └── kernel-manifest.json
│ │ ├── java
│ │ └── host
│ │ │ └── exp
│ │ │ └── exponent
│ │ │ ├── MainActivity.java
│ │ │ ├── MainApplication.java
│ │ │ └── generated
│ │ │ ├── AppConstants.java
│ │ │ ├── BasePackageList.java
│ │ │ └── DetachBuildConstants.java
│ │ └── res
│ │ ├── drawable-hdpi
│ │ ├── ic_arrow_back_white_36dp.png
│ │ ├── ic_home_white_36dp.png
│ │ ├── ic_logo_white_32dp.png
│ │ ├── ic_refresh_white_36dp.png
│ │ └── ic_share_white_36dp.png
│ │ ├── drawable-mdpi
│ │ ├── ic_arrow_back_white_36dp.png
│ │ ├── ic_home_white_36dp.png
│ │ ├── ic_logo_white_32dp.png
│ │ ├── ic_refresh_white_36dp.png
│ │ ├── ic_share_white_36dp.png
│ │ └── shell_launch_background_image.png
│ │ ├── drawable-xhdpi
│ │ ├── ic_arrow_back_white_36dp.png
│ │ ├── ic_home_white_36dp.png
│ │ ├── ic_logo_white_32dp.png
│ │ ├── ic_refresh_white_36dp.png
│ │ └── ic_share_white_36dp.png
│ │ ├── drawable-xxhdpi
│ │ ├── ic_arrow_back_white_36dp.png
│ │ ├── ic_home_white_36dp.png
│ │ ├── ic_logo_white_32dp.png
│ │ ├── ic_refresh_white_36dp.png
│ │ └── ic_share_white_36dp.png
│ │ ├── drawable-xxxhdpi
│ │ ├── big_logo_dark.png
│ │ ├── big_logo_dark_filled.png
│ │ ├── big_logo_filled.png
│ │ ├── big_logo_new_filled.png
│ │ ├── ic_arrow_back_white_36dp.png
│ │ ├── ic_home_white_36dp.png
│ │ ├── ic_logo_white_32dp.png
│ │ ├── ic_refresh_white_36dp.png
│ │ ├── ic_share_white_36dp.png
│ │ ├── notification_icon.png
│ │ ├── pin_white.png
│ │ ├── pin_white_fade.png
│ │ └── shell_notification_icon.png
│ │ ├── drawable
│ │ └── splash_background.xml
│ │ ├── layout
│ │ ├── error_activity_new.xml
│ │ ├── error_console_fragment.xml
│ │ ├── error_console_list_item.xml
│ │ ├── error_fragment.xml
│ │ ├── exponent_button.xml
│ │ ├── exponent_check_box.xml
│ │ ├── exponent_dev_activity.xml
│ │ ├── notification.xml
│ │ └── notification_shell_app.xml
│ │ ├── mipmap-hdpi
│ │ ├── dev_icon.png
│ │ └── ic_launcher.png
│ │ ├── mipmap-mdpi
│ │ ├── dev_icon.png
│ │ └── ic_launcher.png
│ │ ├── mipmap-xhdpi
│ │ ├── dev_icon.png
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxhdpi
│ │ ├── dev_icon.png
│ │ └── ic_launcher.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── dev_icon.png
│ │ └── ic_launcher.png
│ │ ├── values-w820dp
│ │ └── dimens.xml
│ │ └── values
│ │ ├── colors.xml
│ │ ├── dimens.xml
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── debug.keystore
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
└── settings.gradle
├── assets
├── icon.png
└── splash.png
├── babel.config.js
├── ejected.json
├── ios
├── Gemfile
├── Gemfile.lock
├── PodFile
├── Podfile.lock
├── test.expo.nfc.xcodeproj
│ ├── project.pbxproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── test.expo.nfc.xcscheme
├── test.expo.nfc.xcworkspace
│ └── contents.xcworkspacedata
└── test.expo.nfc
│ ├── AppDelegate.h
│ ├── AppDelegate.m
│ ├── Assets.xcassets
│ └── AppIcon.appiconset
│ │ ├── AppIcon1024x1024.png
│ │ ├── AppIcon20x20@2x.png
│ │ ├── AppIcon20x20@3x.png
│ │ ├── AppIcon29x29@2x.png
│ │ ├── AppIcon29x29@3x.png
│ │ ├── AppIcon40x40@2x.png
│ │ ├── AppIcon40x40@3x.png
│ │ ├── AppIcon60x60@2x.png
│ │ ├── AppIcon60x60@3x.png
│ │ ├── AppIcon76x76@2x~ipad.png
│ │ ├── AppIcon76x76~ipad.png
│ │ ├── AppIcon83.5x83.5@2x~ipad.png
│ │ └── Contents.json
│ └── Supporting
│ ├── EXBuildConstants.json
│ ├── EXBuildConstants.plist
│ ├── EXBuildConstants.plist.bak
│ ├── EXSDKVersions.plist
│ ├── EXShell.plist
│ ├── Info.plist
│ ├── LaunchScreen.xib
│ ├── launch_background_image.png
│ ├── launch_icon.png
│ ├── main.m
│ ├── sdkVersions.json
│ ├── shell-app-manifest.json
│ └── shell-app.bundle
├── package-lock.json
├── package.json
├── scripts
├── init.js
└── switchPlatform.js
├── stubs
└── MifareClassicWrapperStub.js
└── unejected.json
/.expo/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "hostType": "lan",
3 | "lanType": "ip",
4 | "dev": true,
5 | "minify": false,
6 | "urlRandomness": "fs-rvd",
7 | "https": false
8 | }
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/**/*
2 | /ios/Pods/
3 | /ios/build/
4 | .idea/
5 | .gradle/
6 | /android/app/build/
7 | /android/app/release/
8 | /android/build/
9 | /android/local.properties
10 | /app.json
11 | /config.json
12 | /.expo/packager-info.json
13 |
--------------------------------------------------------------------------------
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/App.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import {
3 | StyleSheet,
4 | Text,
5 | View
6 | } from 'react-native'
7 | import Modal from 'expo-modal'
8 | import MFC, { ByteParser } from 'react-native-mifare-classic-wrapper'
9 |
10 | export default class App extends React.Component {
11 | constructor (props) {
12 | super(props)
13 | this.state = {
14 | nfcError: 'Please wait...',
15 | tag: null,
16 | data: null
17 | }
18 | }
19 |
20 | componentDidMount () {
21 | const tagFound = async (tag) => {
22 | await tag.readBlock(48, {
23 | sector: 12,
24 | key: [0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF],
25 | keyType: 'A'
26 | }).then(d => {
27 | this.setState({ tag: tag.id, data: ByteParser.byteToString(d) })
28 | })
29 | }
30 |
31 | MFC.start().then(() => MFC.listen(tagFound))
32 | .then(this.setState({ nfcError: null }))
33 | .catch(e => this.setState({ nfcError: e.message }))
34 |
35 | MFC.onStateChanged(({ state }) => {
36 | if (state === 'on') {
37 | this.setState({ nfcError: this.state.oldNfcError, tag: null, data: null })
38 | } else if (state === 'off') {
39 | this.setState({
40 | oldNfcError: this.state.nfcError,
41 | nfcError: 'NFC Disabled!'
42 | })
43 | }
44 | })
45 | }
46 |
47 | render () {
48 | const nfcError = () => {this.state.nfcError}
49 | const noTag = () => Approach a Mifare Classic Tag
50 | const tagDetected = () => (
51 |
52 | ID: {this.state.tag}
53 | Data: {this.state.data}
54 |
55 | )
56 |
57 | return Modal.wrapIntoModal(
58 |
59 | {this.state.nfcError ? nfcError() : ((this.state.tag && this.state.data) ? tagDetected : noTag)()}
60 |
61 | )
62 | }
63 | }
64 |
65 | const styles = StyleSheet.create({
66 | container: {
67 | flex: 1,
68 | backgroundColor: '#fff',
69 | alignItems: 'center',
70 | justifyContent: 'center'
71 | }
72 | })
73 |
--------------------------------------------------------------------------------
/INITIAL.md:
--------------------------------------------------------------------------------
1 | > The following instructions document the creation of this repository which was based off a newly created `create-expo-native-app` template.
2 |
3 | # Prepare the Repository
4 |
5 | * `npx create-expo-native-app` - Deploy the template
6 | * `npm install` - Install the dependencies
7 | * `npm run init` - Initialise the template
8 |
9 | The template repository is quite unpolished, with many development artifacts left behind that should have been gitignored.
10 | Here are a list of files which you should be able to safely add to your `.gitignore` file.
11 | _Also remember to remove it from the git cache (`git rm --cached FILE`)_
12 |
13 | * `.expo/packager-info.json`
14 | * `android/local.properties`
15 | * `app.json`
16 | * `config.json`
17 |
18 | # Prepare the Build Environment
19 |
20 | You should now be able to install the Gradle build environment and its dependencies.
21 |
22 | Ensure you have a Java JDK installed, and have your Android SDK tool license agreements accepted.
23 | _You can accept all licenses with `yes | sdkmanager --licenses`_
24 |
25 | Firstly, ensure you have a phone connected via ADB, or a Virtual Device prepared.
26 |
27 | * `cd android && ./gradlew installDebug`
28 |
29 | After the build environment is ready, open the `android` folder in Android Studio.
30 |
31 | You should be able to execute the Run command to build and install the application onto your device
32 |
33 | Now check that `npm run android-native` and `npm run android-expo` work.
34 |
35 | # Install the native NFC module
36 |
37 | I ran these commands to get the native NFC module working
38 |
39 | * `npm install featherbear/react-native-mifare-classic-wrapper` - Install the NFC wrapper library
40 | * `react-native link react-native-nfc-manager` - Link library files
41 | * `npm install jetifier` - Install compatibility tool for non-AndroidX libraries
42 | * `npx jetifier` - Let Jetifier do its magic
43 | * Enable Jetifier and AndroidX in `android/gradle.properties`
44 | * _Rebuild the application in Android Studio_
45 |
46 | # Prepare the Deploy Environment
47 |
48 | To prepare for deployment of your code as an APK file, you will need to change a line in the `ejected.json` file.
49 |
50 | Around line 41 you should see the following
51 |
52 | ```
53 | "publishManifestPath": "android/app/src/main/assets/shell-app-manifest.json"
54 | ```
55 |
56 | Change this to
57 |
58 | ```
59 | "publishManifestPath": "android/app/src/main/assets/kernel-manifest.json"
60 | ```
61 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | Using Expo with react-native-nfc-manager
2 | ---
3 |
4 | [react-native-nfc-manager]: https://github.com/whitedogg13/react-native-nfc-manager
5 | [Expo]: https://expo.io/
6 |
7 | > This repository features how to use [react-native-nfc-manager] whilst also maintaining the ability to develop with the [Expo] framework.
8 |
9 | * The code has been adapted from this [article](https://codersera.com/blog/running-expo-react-native-together/)
10 | * This project uses a [custom wrapper](https://github.com/featherbear/react-native-mifare-classic-wrapper) over the [react-native-nfc-manager] library, however usage is the same.
11 |
12 | # General Overview
13 |
14 | [Expo] is a framework for React Native which provides a set of tools and services to allow us to develop React Native applications. Unfortunately, it does support third-party React Native Modules, meaning that you would have to forego using [Expo] if you want to use these third-party modules... usually.
15 |
16 | The `create-expo-native-app` npx template provides a set of scripts that allow us to use both React Native Modules and [Expo] at the same time! By creating stub files, we can make the Babel transpiler use different pieces of code depending on whether the application is running in Native mode, or with Expo.
17 |
18 | When running on Expo mode, these stubs will emulate the behaviour of the React Native Module.
19 | When running on Native mode, the actual React Native Module will be used.
20 |
21 | # Getting Started
22 |
23 | You can have a look at the documented steps that I made [here](./INITIAL.md)
24 |
25 | This repository was developed with the Android environment in mind. For iOS, please look at the original [article](https://codersera.com/blog/running-expo-react-native-together/).
26 |
27 | When running in native / "ejected mode", the platform-specific builds will need to be installed (i.e. X Code and/or Android Studio). For Android, this means we will have to set up `adb`, `gradle`, etc...
28 |
29 | Adding in new libraries would require you to rebuild the application in Android Studio, and deploy them onto your device / emulated device. Actual application development (your React code) is however is still performed as usual (automatic packaging with the Metro bundler)
30 |
31 | ## Stub File
32 |
33 | A stub version can be written to emulate/handle a native module's functionality.
34 | Whilst native modules won't work in Expo, you will still be able to develop your application using Expo; with emulated module functionality.
35 |
36 | Have a look at the `stubs/MifareClassicWrapperStub.js` and `babel.config.js` file for an example of how to set this up.
37 |
38 | ## Deployment
39 |
40 | You can deploy the application via the CLI or via Android Studio.
41 |
42 | Prior to deploying, please run `npm run android-native` to update the configuration files.
43 | Deployed APKs can be found in `android/app/release/`
44 |
--------------------------------------------------------------------------------
/android/android.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/android/app/app.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | generateDebugSources
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 |
256 |
257 |
258 |
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
277 |
278 |
279 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
289 |
290 |
291 |
292 |
293 |
294 |
295 |
296 |
297 |
298 |
299 |
300 |
301 |
302 |
303 |
304 |
305 |
306 |
307 |
308 |
309 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 |
319 |
320 |
321 |
322 |
323 |
324 |
325 |
326 |
327 |
328 |
329 |
330 |
331 |
332 |
333 |
334 |
335 |
336 |
337 |
338 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | repositories {
3 | google()
4 | maven { url 'https://maven.fabric.io/public' }
5 | }
6 |
7 | dependencies {
8 | classpath 'io.fabric.tools:gradle:1.26.1'
9 | }
10 | }
11 | apply plugin: 'com.android.application'
12 | apply plugin: 'io.fabric'
13 | apply plugin: 'devicefarm'
14 |
15 | repositories {
16 | maven { url 'https://maven.fabric.io/public' }
17 | }
18 |
19 | def safeExtGet(prop, fallback) {
20 | rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
21 | }
22 |
23 | android {
24 | compileSdkVersion safeExtGet("compileSdkVersion", 28)
25 |
26 | compileOptions {
27 | sourceCompatibility JavaVersion.VERSION_1_8
28 | targetCompatibility JavaVersion.VERSION_1_8
29 | }
30 |
31 | defaultConfig {
32 | applicationId 'com.test.expo.nfc'
33 | minSdkVersion safeExtGet("minSdkVersion", 21)
34 | targetSdkVersion safeExtGet("targetSdkVersion", 28)
35 | versionCode 1
36 | versionName '1.0.0'
37 | ndk {
38 | abiFilters 'armeabi-v7a', 'x86'
39 | }
40 | multiDexEnabled true
41 | testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
42 | // Deprecated. Used by net.openid:appauth
43 | manifestPlaceholders = [
44 | 'appAuthRedirectScheme': 'host.exp.exponent'
45 | ]
46 | }
47 | dexOptions {
48 | javaMaxHeapSize System.getenv("DISABLE_DEX_MAX_HEAP") ? null : "8g"
49 | }
50 |
51 | signingConfigs {
52 | debug {
53 | storeFile file('../debug.keystore')
54 | }
55 | release {
56 | storeFile file(System.getenv("ANDROID_KEYSTORE_PATH") ?: "release-key.jks")
57 | storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
58 | keyAlias System.getenv("ANDROID_KEY_ALIAS")
59 | keyPassword System.getenv("ANDROID_KEY_PASSWORD")
60 | }
61 | }
62 | buildTypes {
63 | debug {
64 | debuggable true
65 | ext.enableCrashlytics = false
66 | }
67 | release {
68 | minifyEnabled true
69 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
70 | signingConfig signingConfigs.release
71 | }
72 | }
73 | lintOptions {
74 | abortOnError false
75 | }
76 | packagingOptions {
77 | pickFirst "**"
78 | }
79 | }
80 |
81 | devicefarm {
82 | projectName System.getenv("DEVICEFARM_PROJECT_NAME")
83 | devicePool System.getenv("DEVICEFARM_DEVICE_POOL")
84 | executionTimeoutMinutes 40
85 | authentication {
86 |
87 | accessKey System.getenv("AWS_ACCESS_KEY_ID")
88 | secretKey System.getenv("AWS_SECRET_ACCESS_KEY")
89 | }
90 | }
91 |
92 | configurations.all {
93 | resolutionStrategy {
94 | force 'org.webkit:android-jsc:r245459'
95 | }
96 | }
97 |
98 | // WHEN_PREPARING_SHELL_REMOVE_FROM_HERE
99 |
100 | apply from: 'expo.gradle'
101 |
102 | // WHEN_PREPARING_SHELL_REMOVE_TO_HERE
103 |
104 | apply from: "../../node_modules/react-native-unimodules/gradle.groovy"
105 |
106 | dependencies {
107 | implementation project(':react-native-nfc-manager')
108 | implementation fileTree(dir: 'libs', include: ['*.jar'])
109 |
110 | implementation 'com.android.support:multidex:1.0.1'
111 |
112 | // Our dependencies
113 | implementation "com.android.support:appcompat-v7:$supportLibVersion"
114 |
115 | // Our dependencies from ExpoView
116 | // DON'T ADD ANYTHING HERE THAT ISN'T IN EXPOVIEW. ONLY COPY THINGS FROM EXPOVIEW TO HERE.
117 | implementation "com.android.support:appcompat-v7:$supportLibVersion"
118 | implementation 'com.facebook.android:facebook-android-sdk:5.0.1'
119 | implementation('com.facebook.android:audience-network-sdk:5.1.1') {
120 | exclude module: 'play-services-ads'
121 | }
122 | compileOnly 'org.glassfish:javax.annotation:3.1.1'
123 | implementation 'com.jakewharton:butterknife:9.0.0'
124 | implementation 'de.greenrobot:eventbus:2.4.0'
125 |
126 | implementation 'com.squareup.picasso:picasso:2.5.2'
127 | implementation 'com.google.android.gms:play-services-gcm:15.0.1'
128 | implementation 'com.google.android.gms:play-services-analytics:16.0.1'
129 | implementation 'com.google.android.gms:play-services-maps:15.0.1'
130 | implementation 'com.google.android.gms:play-services-auth:15.0.1'
131 | implementation 'com.google.android.gms:play-services-location:15.0.1'
132 | implementation 'com.google.android.gms:play-services-ads:15.0.1'
133 | // annotationProcessor 'com.raizlabs.android:DBFlow-Compiler:2.2.1'
134 | // implementation "com.raizlabs.android:DBFlow-Core:2.2.1"
135 | // implementation "com.raizlabs.android:DBFlow:2.2.1"
136 | implementation "com.madgag.spongycastle:core:1.53.0.0"
137 | implementation "com.madgag.spongycastle:prov:1.53.0.0"
138 | debugImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
139 | // debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
140 | releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
141 | implementation 'com.facebook.device.yearclass:yearclass:2.1.0'
142 | implementation 'commons-io:commons-io:1.4'
143 | implementation 'me.leolin:ShortcutBadger:1.1.4@aar'
144 | implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
145 | implementation 'commons-codec:commons-codec:1.10'
146 | implementation 'com.segment.analytics.android:analytics:4.3.0'
147 | implementation 'com.google.zxing:core:3.3.3'
148 | implementation 'net.openid:appauth:0.4.1'
149 | implementation 'com.airbnb.android:lottie:2.5.6'
150 | implementation('io.nlopez.smartlocation:library:3.2.11') {
151 | transitive = false
152 | }
153 | implementation "com.android.support:exifinterface:${safeExtGet("supportLibVersion", "28.0.0")}"
154 | implementation 'com.squareup.okio:okio:1.9.0'
155 | implementation 'com.facebook.soloader:soloader:0.6.0'
156 |
157 | // expo-file-system
158 | implementation 'com.squareup.okhttp3:okhttp:3.10.0'
159 | implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.10.0'
160 |
161 | // Testing
162 | androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
163 | // We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
164 | androidTestImplementation 'com.android.support.test:runner:1.0.1'
165 | androidTestImplementation "com.android.support:support-annotations:${safeExtGet("supportLibVersion", "28.0.0")}"
166 | androidTestImplementation 'com.google.code.findbugs:jsr305:3.0.0'
167 | androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
168 | androidTestImplementation 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'
169 |
170 | testImplementation 'junit:junit:4.12'
171 | testImplementation 'org.mockito:mockito-core:1.10.19'
172 | testImplementation 'org.robolectric:robolectric:3.8'
173 | testImplementation 'com.android.support.test:runner:1.0.2-alpha1'
174 | testImplementation 'com.android.support.test:rules:1.0.2-alpha1'
175 |
176 |
177 | implementation('host.exp.exponent:expoview:35.0.0@aar') {
178 | transitive = true
179 | exclude group: 'com.squareup.okhttp3', module: 'okhttp'
180 | exclude group: 'com.squareup.okhttp3', module: 'okhttp-urlconnection'
181 | }
182 |
183 |
184 |
185 |
186 | api 'org.webkit:android-jsc:r245459' // needs to be before react-native
187 | api 'com.facebook.react:react-native:33.0.0'
188 |
189 |
190 |
191 |
192 | addUnimodulesDependencies([
193 | modulesPaths : [
194 | '../../node_modules'
195 | ],
196 | configuration: 'api',
197 | target : 'react-native',
198 | exclude : [
199 | // You can exclude unneeded modules here.
200 | // By default we exclude FaceDetector
201 | // and Stripe payments APIs.
202 | 'unimodules-face-detector-interface',
203 | 'expo-face-detector',
204 | 'expo-payments-stripe'
205 |
206 | // Adding a name here will also remove the package
207 | // from auto-generated BasePackageList.java
208 | ]
209 | ])
210 |
211 | }
212 |
213 | // This has to be down here for some reason
214 | apply plugin: 'com.google.gms.google-services'
215 |
--------------------------------------------------------------------------------
/android/app/expo.gradle:
--------------------------------------------------------------------------------
1 | // Gradle script for detached apps.
2 |
3 | import org.apache.tools.ant.taskdefs.condition.Os
4 |
5 | void runBefore(String dependentTaskName, Task task) {
6 | Task dependentTask = tasks.findByPath(dependentTaskName);
7 | if (dependentTask != null) {
8 | dependentTask.dependsOn task
9 | }
10 | }
11 |
12 | afterEvaluate {
13 | def expoRoot = file("../../")
14 | def inputExcludes = ["android/**", "ios/**"]
15 |
16 | task exponentPrebuildStep(type: Exec) {
17 | workingDir expoRoot
18 | if (Os.isFamily(Os.FAMILY_WINDOWS)) {
19 | commandLine "cmd", "/c", ".\\node_modules\\expokit\\detach-scripts\\run-exp.bat"
20 | } else {
21 | commandLine "./node_modules/expokit/detach-scripts/run-exp.sh", "prepare-detached-build", "--platform", "android", expoRoot
22 | }
23 | }
24 | runBefore("preBuild", exponentPrebuildStep)
25 |
26 | // Based on https://github.com/facebook/react-native/blob/master/react.gradle
27 |
28 | android.applicationVariants.each { variant ->
29 | def folderName = variant.name
30 | def targetName = folderName.capitalize()
31 |
32 | def assetsDir = file("$buildDir/intermediates/merged_assets/${folderName}/merge${targetName}Assets/out")
33 |
34 | // Bundle task name for variant
35 | def bundleExpoAssetsTaskName = "bundle${targetName}ExpoAssets"
36 |
37 | def currentBundleTask = tasks.create(
38 | name: bundleExpoAssetsTaskName,
39 | type: Exec) {
40 | description = "Expo bundle assets for ${targetName}."
41 |
42 | // Create dirs if they are not there (e.g. the "clean" task just ran)
43 | doFirst {
44 | assetsDir.mkdirs()
45 | }
46 |
47 | // Set up inputs and outputs so gradle can cache the result
48 | inputs.files fileTree(dir: expoRoot, excludes: inputExcludes)
49 | outputs.dir assetsDir
50 |
51 | // Set up the call to exp
52 | workingDir expoRoot
53 |
54 | if (Os.isFamily(Os.FAMILY_WINDOWS)) {
55 | commandLine("cmd", "/c", ".\\node_modules\\expokit\\detach-scripts\\run-exp.bat", "bundle-assets", expoRoot, "--platform", "android", "--dest", assetsDir)
56 | } else {
57 | commandLine("./node_modules/expokit/detach-scripts/run-exp.sh", "bundle-assets", expoRoot, "--platform", "android", "--dest", assetsDir)
58 | }
59 |
60 | enabled targetName.toLowerCase().contains("release") || targetName.toLowerCase().contains("prod")
61 | }
62 |
63 | currentBundleTask.dependsOn("merge${targetName}Resources")
64 | currentBundleTask.dependsOn("merge${targetName}Assets")
65 |
66 | runBefore("process${targetName}Resources", currentBundleTask)
67 | }
68 | }
69 |
--------------------------------------------------------------------------------
/android/app/fabric.properties:
--------------------------------------------------------------------------------
1 | #Contains API Secret used to validate your application. Commit to internal source control; avoid making secret public.
2 | #Sun Dec 13 13:22:06 PST 2015
3 | apiSecret=83176563693e1eefa1a91359c4151b88c3fd17e52ddf6d64416b7f1e0fa9cede
4 |
--------------------------------------------------------------------------------
/android/app/google-services.json:
--------------------------------------------------------------------------------
1 | {
2 | "project_info": {
3 | "project_id": "exponent-5dd6d",
4 | "project_number": "367315174693",
5 | "name": "Exponent Play Services"
6 | },
7 | "client": [
8 | {
9 | "client_info": {
10 | "mobilesdk_app_id": "1:367315174693:android:f968efbb41d1fa7a",
11 | "client_id": "android:host.exp.exponent",
12 | "client_type": 1,
13 | "android_client_info": {
14 | "package_name": "com.test.expo.nfc",
15 | "certificate_hash": ""
16 | }
17 | },
18 | "oauth_client": [],
19 | "api_key": [
20 | {
21 | "current_key": ""
22 | }
23 | ],
24 | "services": {
25 | "analytics_service": {
26 | "status": 2,
27 | "analytics_property": {
28 | "tracking_id": "UA-76673608-1"
29 | }
30 | },
31 | "cloud_messaging_service": {
32 | "status": 2,
33 | "apns_config": []
34 | },
35 | "appinvite_service": {
36 | "status": 1,
37 | "other_platform_oauth_client": []
38 | },
39 | "google_signin_service": {
40 | "status": 1
41 | },
42 | "ads_service": {
43 | "status": 1
44 | }
45 | }
46 | }
47 | ],
48 | "client_info": [],
49 | "ARTIFACT_VERSION": "1"
50 | }
51 |
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /Users/ide/Library/Android/sdk/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
12 | # If your project uses WebView with JS, uncomment the following
13 | # and specify the fully qualified class name to the JavaScript interface
14 | # class:
15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
16 | # public *;
17 | #}
18 |
19 |
20 | # THIS IS VERY VERY BAD. REMOVE AS SOON AS VERSIONING IS FIXED
21 | -dontwarn **
22 |
23 |
24 | -dontnote **
25 |
26 | -keep class host.exp.exponent.generated.AppConstants { *; }
27 |
28 | ##### Crashlytics #####
29 | -keepattributes SourceFile,LineNumberTable
30 |
31 | ##### Expo Universal Modules #####
32 |
33 | -keepclassmembers class * {
34 | @org.unimodules.core.interfaces.ExpoProp *;
35 | }
36 | -keepclassmembers class * {
37 | @org.unimodules.core.interfaces.ExpoMethod *;
38 | }
39 |
40 | -keepclassmembers class * {
41 | @**.expo.core.interfaces.ExpoProp *;
42 | }
43 | -keepclassmembers class * {
44 | @**.expo.core.interfaces.ExpoMethod *;
45 | }
46 |
47 | -keep @**.expo.core.interfaces.DoNotStrip class *
48 | -keepclassmembers class * {
49 | @**.expo.core.interfaces.DoNotStrip *;
50 | }
51 |
52 | ##### React Native #####
53 | -keep,allowobfuscation @interface **.facebook.proguard.annotations.DoNotStrip
54 | -keep,allowobfuscation @interface **.facebook.proguard.annotations.KeepGettersAndSetters
55 | -keep,allowobfuscation @interface **.facebook.react.bridge.ReadableType
56 |
57 | # Do not strip any method/class that is annotated with @DoNotStrip
58 | -keep @**.facebook.proguard.annotations.DoNotStrip class *
59 | -keepclassmembers class * {
60 | @**.facebook.proguard.annotations.DoNotStrip *;
61 | }
62 |
63 | -keepclassmembers @**.facebook.proguard.annotations.KeepGettersAndSetters class * {
64 | void set*(***);
65 | *** get*();
66 | }
67 |
68 | -keep class * extends **.facebook.react.bridge.JavaScriptModule { *; }
69 | -keep class * extends **.facebook.react.bridge.NativeModule { *; }
70 | -keepclassmembers class * { @**.facebook.react.uimanager.UIProp ; }
71 | -keepclassmembers class * { @**.facebook.react.uimanager.ReactProp ; }
72 | -keepclassmembers class * { @**.facebook.react.uimanager.ReactPropGroup ; }
73 |
74 | # TODO: shouldn't need these two rules
75 | -keep interface **.facebook.react.bridge.** { *; }
76 | -keep enum **.facebook.react.bridge.** { *; }
77 |
78 | ##### Versioned React Native #####
79 | -keep class **.facebook.** { *; }
80 | -keep class abi** { *; }
81 | -keep class versioned** { *; }
82 | -keep class expo.modules** { *; }
83 |
84 | ##### Butterknife #####
85 | -keep class butterknife.** { *; }
86 | -dontwarn butterknife.internal.**
87 | -keep class **$$ViewBinder { *; }
88 |
89 | -keepclasseswithmembernames class * {
90 | @butterknife.* ;
91 | }
92 |
93 | -keepclasseswithmembernames class * {
94 | @butterknife.* ;
95 | }
96 |
97 | ##### Stetho #####
98 | -keep class **.facebook.stetho.** { *; }
99 | -dontwarn **.facebook.stetho.**
100 |
101 | ##### fresco #####
102 | # Keep our interfaces so they can be used by other ProGuard rules.
103 | # See http://sourceforge.net/p/proguard/bugs/466/
104 | -keep,allowobfuscation @interface **.facebook.common.internal.DoNotStrip
105 |
106 | # Do not strip any method/class that is annotated with @DoNotStrip
107 | -keep @**.facebook.common.internal.DoNotStrip class *
108 | -keepclassmembers class * {
109 | @**.facebook.common.internal.DoNotStrip *;
110 | }
111 |
112 | # Keep native methods
113 | -keepclassmembers class * {
114 | native ;
115 | }
116 |
117 | -dontwarn okio.**
118 | -dontwarn javax.annotation.**
119 | -dontwarn com.android.volley.toolbox.**
120 |
121 | ##### okhttp #####
122 | -keepattributes Signature
123 | -keepattributes *Annotation*
124 | -keep class com.squareup.okhttp.** { *; }
125 | -keep interface com.squareup.okhttp.** { *; }
126 | # This is also needed by Picasso
127 | -dontwarn com.squareup.okhttp.**
128 |
129 | -keep class okhttp3.** { *; }
130 | -keep interface okhttp3.** { *; }
131 | # This is also needed by Picasso
132 | -dontwarn okhttp3.**
133 |
134 | ##### okio #####
135 | -keep class sun.misc.Unsafe { *; }
136 | -dontwarn java.nio.file.*
137 | -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
138 | -dontwarn okio.**
139 |
140 | ##### EventBus #####
141 | -keepclassmembers class ** {
142 | public void onEvent*(***);
143 | }
144 |
145 | # Only required if you use AsyncExecutor
146 | -keepclassmembers class * extends de.greenrobot.event.util.ThrowableFailureEvent {
147 | (java.lang.Throwable);
148 | }
149 |
150 | ##### Amplitude #####
151 | -keep class com.amplitude.api.** {*;}
152 |
153 | ##### DBFlow #####
154 | -keep class com.raizlabs.android.dbflow.config.GeneratedDatabaseHolder
155 |
156 | ##### SpongyCastle #####
157 | -keep class org.spongycastle.**
158 | -dontwarn org.spongycastle.jce.provider.X509LDAPCertStoreSpi
159 | -dontwarn org.spongycastle.x509.util.LDAPStoreHelper
160 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
55 |
56 |
61 |
62 |
63 |
68 |
69 |
70 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
98 |
99 |
100 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
134 |
135 |
136 |
140 |
141 |
142 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
155 |
156 |
157 |
159 |
160 |
161 |
162 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
216 |
217 |
218 |
222 |
223 |
224 |
228 |
229 |
230 |
236 |
237 |
242 |
243 |
246 |
247 |
248 |
251 |
252 |
253 |
254 |
255 |
256 |
263 |
264 |
266 |
267 |
268 |
269 |
270 |
271 |
274 |
275 |
276 |
280 |
281 |
282 |
283 |
284 |
285 |
286 |
287 |
288 |
291 |
292 |
293 |
294 |
295 |
298 |
299 |
300 |
301 |
302 |
305 |
306 |
307 |
308 |
310 |
311 |
312 |
313 |
314 |
317 |
320 |
323 |
324 |
325 |
326 |
329 |
330 |
331 |
332 |
333 |
334 |
337 |
338 |
339 |
340 |
341 |
344 |
345 |
346 |
347 |
348 |
349 |
350 |
351 |
352 |
353 |
354 |
355 |
--------------------------------------------------------------------------------
/android/app/src/main/assets/kernel-manifest.json:
--------------------------------------------------------------------------------
1 | {"android":{"package":"host.exp.exponent","publishBundlePath":"../android/app/src/main/assets/kernel.android.bundle"},"dependencies":["@expo/react-native-action-sheet","@expo/react-native-fade-in-image","@expo/react-native-touchable-native-feedback-safe","apollo-boost","apollo-cache-inmemory","dedent","es6-error","expo","expo-analytics-amplitude","expo-asset","expo-barcode-scanner","expo-camera","expo-constants","expo-font","expo-linear-gradient","expo-location","expo-permissions","expo-task-manager","expo-web-browser","graphql","graphql-tag","immutable","lodash","prop-types","querystring","react","react-apollo","react-native","react-native-infinite-scroll-view","react-native-is-iphonex","react-native-maps","react-navigation","react-navigation-material-bottom-tabs","react-redux","redux","redux-thunk","sha1","url"],"description":"","extra":{"amplitudeApiKey":"081e5ec53f869b440b225d5e40ec73f9"},"icon":"https://s3.amazonaws.com/exp-brand-assets/ExponentEmptyManifest_192.png","iconUrl":"https://s3.amazonaws.com/exp-brand-assets/ExponentEmptyManifest_192.png","ios":{"bundleIdentifier":"host.exp.exponent","publishBundlePath":"../ios/Exponent/Supporting/kernel.ios.bundle","supportsTablet":true},"isKernel":true,"kernel":{"androidManifestPath":"../android/app/src/main/assets/kernel-manifest.json","iosManifestPath":"../ios/Exponent/Supporting/kernel-manifest.json"},"locales":{},"name":"expo-home","orientation":"portrait","packagerOpts":{"config":"metro.config.js"},"platforms":["ios","android"],"primaryColor":"#cccccc","privacy":"unlisted","scheme":"exp","sdkVersion":"UNVERSIONED","slug":"home","updates":{"checkAutomatically":"ON_LOAD","fallbackToCacheTimeout":0},"version":"33.0.0","id":"@exponent/home","revisionId":"33.0.0-r.n698yDyg9D","publishedTime":"2019-06-11T07:38:00.034Z","commitTime":"2019-06-11T07:38:00.075Z","bundleUrl":"https://exp.host/@exponent/home/bundle","releaseChannel":"default","hostUri":"exp.host/@exponent/home"}
--------------------------------------------------------------------------------
/android/app/src/main/java/host/exp/exponent/MainActivity.java:
--------------------------------------------------------------------------------
1 | package host.exp.exponent;
2 |
3 | import android.os.Bundle;
4 |
5 | import com.facebook.react.ReactPackage;
6 |
7 | import org.unimodules.core.interfaces.Package;
8 |
9 | import java.util.List;
10 |
11 | import host.exp.exponent.experience.DetachActivity;
12 | import host.exp.exponent.generated.DetachBuildConstants;
13 |
14 | public class MainActivity extends DetachActivity {
15 |
16 | @Override
17 | public String publishedUrl() {
18 | return "exp://exp.host/@bitcs/nfc";
19 | }
20 |
21 | @Override
22 | public String developmentUrl() {
23 | return DetachBuildConstants.DEVELOPMENT_URL;
24 | }
25 |
26 | @Override
27 | public List reactPackages() {
28 | return ((MainApplication) getApplication()).getPackages();
29 | }
30 |
31 | @Override
32 | public List expoPackages() {
33 | return ((MainApplication) getApplication()).getExpoPackages();
34 | }
35 |
36 | @Override
37 | public boolean isDebug() {
38 | return BuildConfig.DEBUG;
39 | }
40 |
41 | @Override
42 | public Bundle initialProps(Bundle expBundle) {
43 | // Add extra initialProps here
44 | return expBundle;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/android/app/src/main/java/host/exp/exponent/MainApplication.java:
--------------------------------------------------------------------------------
1 | package host.exp.exponent;
2 |
3 | import com.facebook.react.ReactPackage;
4 |
5 | import org.unimodules.core.interfaces.Package;
6 |
7 | import java.util.Arrays;
8 | import java.util.List;
9 |
10 | import expo.loaders.provider.interfaces.AppLoaderPackagesProviderInterface;
11 | import host.exp.exponent.generated.BasePackageList;
12 | import okhttp3.OkHttpClient;
13 |
14 | // Needed for `react-native link`
15 | // import com.facebook.react.ReactApplication;
16 | import community.revteltech.nfc.NfcManagerPackage;
17 |
18 | public class MainApplication extends ExpoApplication implements AppLoaderPackagesProviderInterface {
19 |
20 | @Override
21 | public boolean isDebug() {
22 | return BuildConfig.DEBUG;
23 | }
24 |
25 | // Needed for `react-native link`
26 | public List getPackages() {
27 | return Arrays.asList(
28 | // Add your own packages here!
29 | // TODO: add native modules!
30 |
31 | // Needed for `react-native link`
32 | // new MainReactPackage(),
33 | new NfcManagerPackage()
34 | );
35 | }
36 |
37 | public List getExpoPackages() {
38 | return new BasePackageList().getPackageList();
39 | }
40 |
41 | @Override
42 | public String gcmSenderId() {
43 | return getString(R.string.gcm_defaultSenderId);
44 | }
45 |
46 | public static OkHttpClient.Builder okHttpClientBuilder(OkHttpClient.Builder builder) {
47 | // Customize/override OkHttp client here
48 | return builder;
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/android/app/src/main/java/host/exp/exponent/generated/AppConstants.java:
--------------------------------------------------------------------------------
1 | package host.exp.exponent.generated;
2 |
3 | import com.facebook.common.internal.DoNotStrip;
4 |
5 | import java.util.ArrayList;
6 | import java.util.List;
7 |
8 | import host.exp.exponent.BuildConfig;
9 | import host.exp.exponent.Constants;
10 |
11 | @DoNotStrip
12 | public class AppConstants {
13 |
14 | public static final String VERSION_NAME = "2.11.4";
15 | public static String INITIAL_URL = "exp://exp.host/@bitcs/nfc";
16 | public static final String SHELL_APP_SCHEME = "exp5a9e8e27c6444abebcda9249f5f0fd44";
17 | public static final String RELEASE_CHANNEL = "default";
18 | public static boolean SHOW_LOADING_VIEW_IN_SHELL_APP = true;
19 | public static boolean ARE_REMOTE_UPDATES_ENABLED = true;
20 | public static final List EMBEDDED_RESPONSES;
21 | public static boolean FCM_ENABLED = false;
22 |
23 | static {
24 | List embeddedResponses = new ArrayList<>();
25 |
26 | // ADD EMBEDDED RESPONSES HERE
27 | // START EMBEDDED RESPONSES
28 | // END EMBEDDED RESPONSES
29 | EMBEDDED_RESPONSES = embeddedResponses;
30 | }
31 |
32 | // Called from expoview/Constants
33 | public static Constants.ExpoViewAppConstants get() {
34 | Constants.ExpoViewAppConstants constants = new Constants.ExpoViewAppConstants();
35 | constants.VERSION_NAME = VERSION_NAME;
36 | constants.INITIAL_URL = INITIAL_URL;
37 | constants.SHELL_APP_SCHEME = SHELL_APP_SCHEME;
38 | constants.RELEASE_CHANNEL = RELEASE_CHANNEL;
39 | constants.SHOW_LOADING_VIEW_IN_SHELL_APP = SHOW_LOADING_VIEW_IN_SHELL_APP;
40 | constants.ARE_REMOTE_UPDATES_ENABLED = ARE_REMOTE_UPDATES_ENABLED;
41 | constants.EMBEDDED_RESPONSES = EMBEDDED_RESPONSES;
42 | constants.ANDROID_VERSION_CODE = BuildConfig.VERSION_CODE;
43 | constants.FCM_ENABLED = FCM_ENABLED;
44 | return constants;
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/android/app/src/main/java/host/exp/exponent/generated/BasePackageList.java:
--------------------------------------------------------------------------------
1 | package host.exp.exponent.generated;
2 |
3 | import java.util.Arrays;
4 | import java.util.List;
5 | import org.unimodules.core.interfaces.Package;
6 |
7 | public class BasePackageList {
8 | public List getPackageList() {
9 | return Arrays.asList(
10 | new expo.modules.av.AVPackage(),
11 | new expo.modules.constants.ConstantsPackage(),
12 | new expo.modules.filesystem.FileSystemPackage(),
13 | new expo.modules.font.FontLoaderPackage(),
14 | new expo.modules.keepawake.KeepAwakePackage(),
15 | new expo.modules.lineargradient.LinearGradientPackage(),
16 | new expo.modules.location.LocationPackage(),
17 | new expo.modules.permissions.PermissionsPackage(),
18 | new expo.modules.sqlite.SQLitePackage(),
19 | new expo.modules.webbrowser.WebBrowserPackage()
20 | );
21 | }
22 | }
23 |
--------------------------------------------------------------------------------
/android/app/src/main/java/host/exp/exponent/generated/DetachBuildConstants.java:
--------------------------------------------------------------------------------
1 | package host.exp.exponent.generated;
2 |
3 | // This file is auto-generated. Please don't rename!
4 | public class DetachBuildConstants {
5 |
6 | public static final String DEVELOPMENT_URL = "";
7 |
8 | }
9 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_arrow_back_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-hdpi/ic_arrow_back_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_home_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-hdpi/ic_home_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_logo_white_32dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-hdpi/ic_logo_white_32dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_refresh_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-hdpi/ic_refresh_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-hdpi/ic_share_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-hdpi/ic_share_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_arrow_back_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/ic_arrow_back_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_home_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/ic_home_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_logo_white_32dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/ic_logo_white_32dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_refresh_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/ic_refresh_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/ic_share_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/ic_share_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-mdpi/shell_launch_background_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-mdpi/shell_launch_background_image.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xhdpi/ic_arrow_back_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_home_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xhdpi/ic_home_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_logo_white_32dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xhdpi/ic_logo_white_32dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_refresh_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xhdpi/ic_refresh_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xhdpi/ic_share_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xhdpi/ic_share_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxhdpi/ic_arrow_back_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_home_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxhdpi/ic_home_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_logo_white_32dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxhdpi/ic_logo_white_32dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_refresh_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxhdpi/ic_refresh_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxhdpi/ic_share_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxhdpi/ic_share_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark_filled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/big_logo_dark_filled.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/big_logo_filled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/big_logo_filled.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/big_logo_new_filled.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/big_logo_new_filled.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/ic_arrow_back_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_home_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/ic_home_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_logo_white_32dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/ic_logo_white_32dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_refresh_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/ic_refresh_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/ic_share_white_36dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/ic_share_white_36dp.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/notification_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/notification_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/pin_white.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/pin_white.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/pin_white_fade.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/pin_white_fade.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable-xxxhdpi/shell_notification_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/drawable-xxxhdpi/shell_notification_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/splash_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/error_activity_new.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/error_console_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
24 |
25 |
34 |
35 |
44 |
45 |
46 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/error_console_list_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
19 |
20 |
25 |
26 |
31 |
32 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/error_fragment.xml:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
21 |
22 |
31 |
32 |
44 |
45 |
56 |
57 |
66 |
67 |
76 |
77 |
78 |
79 |
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/exponent_button.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/exponent_check_box.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/exponent_dev_activity.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
18 |
19 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/notification.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
19 |
20 |
36 |
37 |
46 |
47 |
56 |
57 |
66 |
67 |
68 |
--------------------------------------------------------------------------------
/android/app/src/main/res/layout/notification_shell_app.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
17 |
18 |
35 |
36 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/dev_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-hdpi/dev_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/dev_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-mdpi/dev_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/dev_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xhdpi/dev_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/dev_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xxhdpi/dev_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/dev_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xxxhdpi/dev_icon.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values-w820dp/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 | 64dp
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #1b73b4
4 | #011A2D
5 | #1b73b4
6 | #FFFFFF
7 | #FFFFFF
8 | #FFFFFF
9 | #FF0000
10 | #66FFFFFF
11 | #F6F6F7
12 | #ffffff
13 | #FFFFFF
14 |
15 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/dimens.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 16dp
4 | 16dp
5 | 16dp
6 |
7 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | test.expo.nfc
3 | Exponent Dev
4 | host.exp.exponent.SharedPreferences
5 | Something went wrong.
6 | Sorry about that. You can go back to Expo home or try to reload the Experience.
7 | Sorry about that. Press the reload button to try again.
8 | Unable to load Experience.
9 | Uncaught Error: %s
10 | View error log
11 | Default
12 | Experience notifications
13 | Persistent notifications that provide debug info about open experiences
14 |
15 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
18 |
19 |
22 |
23 |
29 |
30 |
35 |
36 |
47 |
48 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | // Top-level build file where you can add configuration options common to all sub-projects/modules.
2 |
3 | buildscript {
4 | ext {
5 | minSdkVersion = 21
6 | targetSdkVersion = 28
7 | compileSdkVersion = 28
8 |
9 | buildToolsVersion = '28.0.0'
10 | supportLibVersion = '28.0.0'
11 | kotlinVersion = '1.3.21'
12 | repositoryUrl = "file:${System.env.HOME}/.m2/repository/"
13 | }
14 | repositories {
15 | google()
16 | jcenter()
17 | maven { url 'https://dl.bintray.com/android/android-tools/' }
18 | }
19 | dependencies {
20 | classpath 'com.android.tools.build:gradle:3.3.2'
21 | classpath 'com.google.gms:google-services:3.2.1'
22 | classpath 'de.undercouch:gradle-download-task:2.0.0'
23 |
24 | // https://github.com/awslabs/aws-device-farm-gradle-plugin/releases
25 | classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.3'
26 |
27 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
28 | }
29 | }
30 |
31 | allprojects {
32 | repositories {
33 | // For non-detach
34 | maven {
35 | url "$rootDir/maven"
36 | }
37 | // For old expoviews to work
38 | maven {
39 | url "$rootDir/versioned-abis/expoview-abi31_0_0/maven"
40 | }
41 | maven {
42 | url "$rootDir/versioned-abis/expoview-abi32_0_0/maven"
43 | }
44 | maven {
45 | url "$rootDir/versioned-abis/expoview-abi33_0_0/maven"
46 | }
47 | maven {
48 | url "$rootDir/versioned-abis/maven"
49 | }
50 | // For detach
51 | maven {
52 | url "$rootDir/../node_modules/expokit/maven"
53 | }
54 | maven {
55 | // We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
56 | url "$rootDir/maven-test"
57 | }
58 | google()
59 | jcenter()
60 | maven {
61 | // Local Maven repo containing AARs with JSC built for Android
62 | url "$rootDir/../node_modules/jsc-android/dist"
63 | }
64 | flatDir {
65 | dirs 'libs'
66 | // dirs project(':expoview').file('libs')
67 | }
68 | // https://github.com/google/ExoPlayer/issues/5225#issuecomment-445739013
69 | maven { url 'https://google.bintray.com/exoplayer' }
70 | maven { url "https://jitpack.io" }
71 |
72 | // Want this last so that we never end up with a stale cache
73 | mavenLocal()
74 | }
75 | }
76 |
77 | task clean(type: Delete) {
78 | delete rootProject.buildDir
79 | }
80 |
--------------------------------------------------------------------------------
/android/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/debug.keystore
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | android.useDeprecatedNdk=true
2 | org.gradle.parallel=true
3 | org.gradle.daemon=true
4 | org.gradle.jvmargs=-Xmx9216M -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
5 | org.gradle.configureondemand=true
6 | org.gradle.internal.repository.initial.backoff=1000
7 | android.useAndroidX=true
8 | android.enableJetifier=true
9 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Thu Nov 15 09:24:08 CET 2018
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
7 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | ##############################################################################
4 | ##
5 | ## Gradle start up script for UN*X
6 | ##
7 | ##############################################################################
8 |
9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
10 | DEFAULT_JVM_OPTS=""
11 |
12 | APP_NAME="Gradle"
13 | APP_BASE_NAME=`basename "$0"`
14 |
15 | # Use the maximum available, or set MAX_FD != -1 to use that value.
16 | MAX_FD="maximum"
17 |
18 | warn ( ) {
19 | echo "$*"
20 | }
21 |
22 | die ( ) {
23 | echo
24 | echo "$*"
25 | echo
26 | exit 1
27 | }
28 |
29 | # OS specific support (must be 'true' or 'false').
30 | cygwin=false
31 | msys=false
32 | darwin=false
33 | case "`uname`" in
34 | CYGWIN* )
35 | cygwin=true
36 | ;;
37 | Darwin* )
38 | darwin=true
39 | ;;
40 | MINGW* )
41 | msys=true
42 | ;;
43 | esac
44 |
45 | # Attempt to set APP_HOME
46 | # Resolve links: $0 may be a link
47 | PRG="$0"
48 | # Need this for relative symlinks.
49 | while [ -h "$PRG" ] ; do
50 | ls=`ls -ld "$PRG"`
51 | link=`expr "$ls" : '.*-> \(.*\)$'`
52 | if expr "$link" : '/.*' > /dev/null; then
53 | PRG="$link"
54 | else
55 | PRG=`dirname "$PRG"`"/$link"
56 | fi
57 | done
58 | SAVED="`pwd`"
59 | cd "`dirname \"$PRG\"`/" >/dev/null
60 | APP_HOME="`pwd -P`"
61 | cd "$SAVED" >/dev/null
62 |
63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
64 |
65 | # Determine the Java command to use to start the JVM.
66 | if [ -n "$JAVA_HOME" ] ; then
67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
68 | # IBM's JDK on AIX uses strange locations for the executables
69 | JAVACMD="$JAVA_HOME/jre/sh/java"
70 | else
71 | JAVACMD="$JAVA_HOME/bin/java"
72 | fi
73 | if [ ! -x "$JAVACMD" ] ; then
74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
75 |
76 | Please set the JAVA_HOME variable in your environment to match the
77 | location of your Java installation."
78 | fi
79 | else
80 | JAVACMD="java"
81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
82 |
83 | Please set the JAVA_HOME variable in your environment to match the
84 | location of your Java installation."
85 | fi
86 |
87 | # Increase the maximum file descriptors if we can.
88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
89 | MAX_FD_LIMIT=`ulimit -H -n`
90 | if [ $? -eq 0 ] ; then
91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
92 | MAX_FD="$MAX_FD_LIMIT"
93 | fi
94 | ulimit -n $MAX_FD
95 | if [ $? -ne 0 ] ; then
96 | warn "Could not set maximum file descriptor limit: $MAX_FD"
97 | fi
98 | else
99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
100 | fi
101 | fi
102 |
103 | # For Darwin, add options to specify how the application appears in the dock
104 | if $darwin; then
105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
106 | fi
107 |
108 | # For Cygwin, switch paths to Windows format before running java
109 | if $cygwin ; then
110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"`
111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
112 | JAVACMD=`cygpath --unix "$JAVACMD"`
113 |
114 | # We build the pattern for arguments to be converted via cygpath
115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
116 | SEP=""
117 | for dir in $ROOTDIRSRAW ; do
118 | ROOTDIRS="$ROOTDIRS$SEP$dir"
119 | SEP="|"
120 | done
121 | OURCYGPATTERN="(^($ROOTDIRS))"
122 | # Add a user-defined pattern to the cygpath arguments
123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then
124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
125 | fi
126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
127 | i=0
128 | for arg in "$@" ; do
129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
131 |
132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
134 | else
135 | eval `echo args$i`="\"$arg\""
136 | fi
137 | i=$((i+1))
138 | done
139 | case $i in
140 | (0) set -- ;;
141 | (1) set -- "$args0" ;;
142 | (2) set -- "$args0" "$args1" ;;
143 | (3) set -- "$args0" "$args1" "$args2" ;;
144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
150 | esac
151 | fi
152 |
153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
154 | function splitJvmOpts() {
155 | JVM_OPTS=("$@")
156 | }
157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
159 |
160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
161 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 | include ':react-native-nfc-manager'
3 | project(':react-native-nfc-manager').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-nfc-manager/android')
4 |
5 |
6 | // Import gradle helpers for unimodules.
7 | apply from: '../node_modules/react-native-unimodules/gradle.groovy'
8 |
9 | // Include unimodules.
10 | includeUnimodulesProjects()
11 |
--------------------------------------------------------------------------------
/assets/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/assets/icon.png
--------------------------------------------------------------------------------
/assets/splash.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/assets/splash.png
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | let config = {}
2 | try {
3 | config = require('./config.json')
4 | } catch {}
5 |
6 | module.exports = function (api) {
7 | api.cache(true)
8 | return {
9 | presets: ['babel-preset-expo'],
10 | plugins: [
11 | [
12 | 'module-resolver',
13 | {
14 | // "root": ["./assets"],
15 | alias: {
16 | ...(config.isEjected ? {} : {
17 | // Add your own stub files here!
18 | // These files will be loaded in replacement of libraries when running in unejected (i.e. expo) configuration
19 |
20 | 'react-native-mifare-classic-wrapper$': './stubs/MifareClassicWrapperStub'
21 | })
22 | },
23 | extensions: ['.ios.js', '.android.js', '.js', '.json']
24 | }
25 | ]
26 | ]
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/ejected.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "test.expo.nfc",
4 | "slug": "nfc",
5 | "privacy": "public",
6 | "sdkVersion": "35.0.0",
7 | "platforms": [
8 | "ios",
9 | "android",
10 | "web"
11 | ],
12 | "version": "1.0.0",
13 | "orientation": "portrait",
14 | "icon": "./assets/icon.png",
15 | "splash": {
16 | "image": "./assets/splash.png",
17 | "resizeMode": "contain",
18 | "backgroundColor": "#ffffff"
19 | },
20 | "updates": {
21 | "fallbackToCacheTimeout": 0
22 | },
23 | "assetBundlePatterns": [
24 | "**/*"
25 | ],
26 | "ios": {
27 | "supportsTablet": true,
28 | "bundleIdentifier": "test.expo.nfc",
29 | "publishBundlePath": "ios/test.expo.nfc/Supporting/shell-app.bundle",
30 | "publishManifestPath": "ios/test.expo.nfc/Supporting/shell-app-manifest.json"
31 | },
32 | "isDetached": true,
33 | "detach": {
34 | "iosExpoViewUrl": "https://s3.amazonaws.com/exp-exponent-view-code/ios-v2.11.0-sdk33.0.0-4b05019b-b5d6-454b-8350-09c2187b9f91.tar.gz",
35 | "androidExpoViewUrl": "https://s3.amazonaws.com/exp-exponent-view-code/android-v2.11.4-sdk33.0.0-6a4f0f3e-1f1b-4c33-9155-d0237f6d7c34.tar.gz"
36 | },
37 | "scheme": "exp5a9e8e27c6444abebcda9249f5f0fd44",
38 | "android": {
39 | "package": "com.test.expo.nfc",
40 | "publishBundlePath": "android/app/src/main/assets/shell-app.bundle",
41 | "publishManifestPath": "android/app/src/main/assets/kernel-manifest.json"
42 | }
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/ios/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 | gem 'cocoapods'
--------------------------------------------------------------------------------
/ios/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | CFPropertyList (3.0.0)
5 | activesupport (4.2.11.1)
6 | i18n (~> 0.7)
7 | minitest (~> 5.1)
8 | thread_safe (~> 0.3, >= 0.3.4)
9 | tzinfo (~> 1.1)
10 | atomos (0.1.3)
11 | claide (1.0.2)
12 | cocoapods (1.7.2)
13 | activesupport (>= 4.0.2, < 5)
14 | claide (>= 1.0.2, < 2.0)
15 | cocoapods-core (= 1.7.2)
16 | cocoapods-deintegrate (>= 1.0.3, < 2.0)
17 | cocoapods-downloader (>= 1.2.2, < 2.0)
18 | cocoapods-plugins (>= 1.0.0, < 2.0)
19 | cocoapods-search (>= 1.0.0, < 2.0)
20 | cocoapods-stats (>= 1.0.0, < 2.0)
21 | cocoapods-trunk (>= 1.3.1, < 2.0)
22 | cocoapods-try (>= 1.1.0, < 2.0)
23 | colored2 (~> 3.1)
24 | escape (~> 0.0.4)
25 | fourflusher (>= 2.3.0, < 3.0)
26 | gh_inspector (~> 1.0)
27 | molinillo (~> 0.6.6)
28 | nap (~> 1.0)
29 | ruby-macho (~> 1.4)
30 | xcodeproj (>= 1.10.0, < 2.0)
31 | cocoapods-core (1.7.2)
32 | activesupport (>= 4.0.2, < 6)
33 | fuzzy_match (~> 2.0.4)
34 | nap (~> 1.0)
35 | cocoapods-deintegrate (1.0.4)
36 | cocoapods-downloader (1.2.2)
37 | cocoapods-plugins (1.0.0)
38 | nap
39 | cocoapods-search (1.0.0)
40 | cocoapods-stats (1.1.0)
41 | cocoapods-trunk (1.3.1)
42 | nap (>= 0.8, < 2.0)
43 | netrc (~> 0.11)
44 | cocoapods-try (1.1.0)
45 | colored2 (3.1.2)
46 | concurrent-ruby (1.1.5)
47 | escape (0.0.4)
48 | fourflusher (2.3.1)
49 | fuzzy_match (2.0.4)
50 | gh_inspector (1.1.3)
51 | i18n (0.9.5)
52 | concurrent-ruby (~> 1.0)
53 | minitest (5.11.3)
54 | molinillo (0.6.6)
55 | nanaimo (0.2.6)
56 | nap (1.1.0)
57 | netrc (0.11.0)
58 | ruby-macho (1.4.0)
59 | thread_safe (0.3.6)
60 | tzinfo (1.2.5)
61 | thread_safe (~> 0.1)
62 | xcodeproj (1.10.0)
63 | CFPropertyList (>= 2.3.3, < 4.0)
64 | atomos (~> 0.1.3)
65 | claide (>= 1.0.2, < 2.0)
66 | colored2 (~> 3.1)
67 | nanaimo (~> 0.2.6)
68 |
69 | PLATFORMS
70 | ruby
71 |
72 | DEPENDENCIES
73 | cocoapods
74 |
75 | BUNDLED WITH
76 | 2.0.2
77 |
--------------------------------------------------------------------------------
/ios/PodFile:
--------------------------------------------------------------------------------
1 | source 'https://github.com/CocoaPods/Specs.git'
2 | platform :ios, '10.0'
3 |
4 | target 'test.expo.nfc' do
5 | pod 'ExpoKit',
6 | :git => "http://github.com/expo/expo.git",
7 | :tag => "ios/2.11.0",
8 | :subspecs => [
9 | "Core"
10 | ],
11 | :inhibit_warnings => true
12 |
13 | # Install unimodules
14 | require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
15 | use_unimodules!(
16 | exclude: [
17 | 'expo-face-detector',
18 | 'expo-payments-stripe',
19 | ],
20 | )
21 |
22 | pod 'React',
23 | :path => "../node_modules/react-native",
24 | :inhibit_warnings => true,
25 | :subspecs => [
26 | "Core",
27 | "ART",
28 | "RCTActionSheet",
29 | "RCTAnimation",
30 | "RCTCameraRoll",
31 | "RCTGeolocation",
32 | "RCTImage",
33 | "RCTNetwork",
34 | "RCTText",
35 | "RCTVibration",
36 | "RCTWebSocket",
37 | "DevSupport",
38 | "CxxBridge"
39 | ]
40 | pod 'yoga',
41 | :path => "../node_modules/react-native/ReactCommon/yoga",
42 | :inhibit_warnings => true
43 | pod 'DoubleConversion',
44 | :podspec => "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec",
45 | :inhibit_warnings => true
46 | pod 'Folly',
47 | :podspec => "../node_modules/react-native/third-party-podspecs/Folly.podspec",
48 | :inhibit_warnings => true
49 | pod 'glog',
50 | :podspec => "../node_modules/react-native/third-party-podspecs/glog.podspec",
51 | :inhibit_warnings => true
52 |
53 |
54 | post_install do |installer|
55 | installer.pods_project.main_group.tab_width = '2';
56 | installer.pods_project.main_group.indent_width = '2';
57 |
58 | installer.target_installation_results.pod_target_installation_results
59 | .each do |pod_name, target_installation_result|
60 |
61 | if pod_name == 'ExpoKit'
62 | target_installation_result.native_target.build_configurations.each do |config|
63 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
64 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'EX_DETACHED=1'
65 |
66 | # Enable Google Maps support
67 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'HAVE_GOOGLE_MAPS=1'
68 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'HAVE_GOOGLE_MAPS_UTILS=1'
69 |
70 | end
71 | end
72 |
73 |
74 | if ['Amplitude-iOS','Analytics','AppAuth','Branch','CocoaLumberjack','FBSDKCoreKit','FBSDKLoginKit','FBSDKShareKit','GPUImage','JKBigInteger2'].include? pod_name
75 | target_installation_result.native_target.build_configurations.each do |config|
76 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
77 | end
78 | end
79 |
80 | # Can't specify this in the React podspec because we need to use those podspecs for detached
81 | # projects which don't reference ExponentCPP.
82 | if pod_name.start_with?('React')
83 | target_installation_result.native_target.build_configurations.each do |config|
84 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
85 | config.build_settings['HEADER_SEARCH_PATHS'] ||= ['$(inherited)']
86 | end
87 | end
88 |
89 | # Build React Native with RCT_DEV enabled and RCT_ENABLE_INSPECTOR and
90 | # RCT_ENABLE_PACKAGER_CONNECTION disabled
91 | next unless pod_name == 'React'
92 | target_installation_result.native_target.build_configurations.each do |config|
93 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)']
94 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_DEV=1'
95 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'RCT_ENABLE_INSPECTOR=0'
96 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] << 'ENABLE_PACKAGER_CONNECTION=0'
97 | end
98 |
99 | end
100 | end
101 | end
102 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Amplitude-iOS (3.14.1)
3 | - Analytics (3.6.10)
4 | - AppAuth (0.95.1)
5 | - Bolts (1.9.0):
6 | - Bolts/AppLinks (= 1.9.0)
7 | - Bolts/Tasks (= 1.9.0)
8 | - Bolts/AppLinks (1.9.0):
9 | - Bolts/Tasks
10 | - Bolts/Tasks (1.9.0)
11 | - boost-for-react-native (1.63.0)
12 | - Branch (0.24.2):
13 | - Branch/Core (= 0.24.2)
14 | - Branch/Core (0.24.2)
15 | - CocoaLumberjack (3.2.1):
16 | - CocoaLumberjack/Default (= 3.2.1)
17 | - CocoaLumberjack/Extensions (= 3.2.1)
18 | - CocoaLumberjack/Default (3.2.1)
19 | - CocoaLumberjack/Extensions (3.2.1):
20 | - CocoaLumberjack/Default
21 | - Crashlytics (3.13.2):
22 | - Fabric (~> 1.10.2)
23 | - DoubleConversion (1.1.6)
24 | - EXAppLoaderProvider (7.0.0)
25 | - EXAV (7.0.1):
26 | - UMCore
27 | - UMPermissionsInterface
28 | - EXConstants (7.0.1):
29 | - UMConstantsInterface
30 | - UMCore
31 | - EXFileSystem (7.0.0):
32 | - UMCore
33 | - UMFileSystemInterface
34 | - EXFont (7.0.0):
35 | - UMCore
36 | - UMFontInterface
37 | - EXKeepAwake (7.0.0):
38 | - UMCore
39 | - EXLinearGradient (7.0.1):
40 | - UMCore
41 | - EXLocation (7.0.0):
42 | - UMCore
43 | - UMPermissionsInterface
44 | - UMTaskManagerInterface
45 | - EXPermissions (7.0.0):
46 | - UMCore
47 | - UMPermissionsInterface
48 | - ExpoKit/Core (33.0.0):
49 | - Amplitude-iOS (~> 3.8)
50 | - Analytics (~> 3.5)
51 | - AppAuth (~> 0.4)
52 | - Branch (~> 0.24.2)
53 | - CocoaLumberjack (~> 3.2.1)
54 | - Crashlytics (~> 3.8)
55 | - Fabric (~> 1.6)
56 | - FBAudienceNetwork (= 5.1.1)
57 | - FBSDKCoreKit (= 4.40.0)
58 | - FBSDKLoginKit (= 4.40.0)
59 | - Google-Maps-iOS-Utils (~> 2.1.0)
60 | - Google-Mobile-Ads-SDK (~> 7.22.0)
61 | - GoogleMaps (~> 2.5.0)
62 | - GoogleSignIn (~> 4.1)
63 | - JKBigInteger2 (= 0.0.5)
64 | - lottie-ios (~> 2.5.0)
65 | - React
66 | - UMCameraInterface
67 | - UMConstantsInterface
68 | - UMCore
69 | - UMFileSystemInterface
70 | - UMPermissionsInterface
71 | - UMReactNativeAdapter
72 | - UMSensorsInterface
73 | - EXSQLite (7.0.0):
74 | - UMCore
75 | - UMFileSystemInterface
76 | - EXWebBrowser (7.0.1):
77 | - UMCore
78 | - Fabric (1.10.2)
79 | - FBAudienceNetwork (5.1.1)
80 | - FBSDKCoreKit (4.40.0):
81 | - Bolts (~> 1.9)
82 | - FBSDKLoginKit (4.40.0):
83 | - FBSDKCoreKit
84 | - Folly (2018.10.22.00):
85 | - boost-for-react-native
86 | - DoubleConversion
87 | - glog
88 | - glog (0.3.5)
89 | - Google-Maps-iOS-Utils (2.1.0):
90 | - Google-Maps-iOS-Utils/Clustering (= 2.1.0)
91 | - Google-Maps-iOS-Utils/Geometry (= 2.1.0)
92 | - Google-Maps-iOS-Utils/Heatmap (= 2.1.0)
93 | - Google-Maps-iOS-Utils/QuadTree (= 2.1.0)
94 | - GoogleMaps
95 | - Google-Maps-iOS-Utils/Clustering (2.1.0):
96 | - Google-Maps-iOS-Utils/QuadTree
97 | - GoogleMaps
98 | - Google-Maps-iOS-Utils/Geometry (2.1.0):
99 | - GoogleMaps
100 | - Google-Maps-iOS-Utils/Heatmap (2.1.0):
101 | - Google-Maps-iOS-Utils/QuadTree
102 | - GoogleMaps
103 | - Google-Maps-iOS-Utils/QuadTree (2.1.0):
104 | - GoogleMaps
105 | - Google-Mobile-Ads-SDK (7.22.0)
106 | - GoogleMaps (2.5.0):
107 | - GoogleMaps/Maps (= 2.5.0)
108 | - GoogleMaps/Base (2.5.0)
109 | - GoogleMaps/Maps (2.5.0):
110 | - GoogleMaps/Base
111 | - GoogleSignIn (4.4.0):
112 | - "GoogleToolboxForMac/NSDictionary+URLArguments (~> 2.1)"
113 | - "GoogleToolboxForMac/NSString+URLArguments (~> 2.1)"
114 | - GTMSessionFetcher/Core (~> 1.1)
115 | - GoogleToolboxForMac/DebugUtils (2.2.1):
116 | - GoogleToolboxForMac/Defines (= 2.2.1)
117 | - GoogleToolboxForMac/Defines (2.2.1)
118 | - "GoogleToolboxForMac/NSDictionary+URLArguments (2.2.1)":
119 | - GoogleToolboxForMac/DebugUtils (= 2.2.1)
120 | - GoogleToolboxForMac/Defines (= 2.2.1)
121 | - "GoogleToolboxForMac/NSString+URLArguments (= 2.2.1)"
122 | - "GoogleToolboxForMac/NSString+URLArguments (2.2.1)"
123 | - GTMSessionFetcher/Core (1.2.2)
124 | - JKBigInteger2 (0.0.5)
125 | - lottie-ios (2.5.3)
126 | - React (0.59.8):
127 | - React/Core (= 0.59.8)
128 | - React/ART (0.59.8):
129 | - React/Core
130 | - React/Core (0.59.8):
131 | - yoga (= 0.59.8.React)
132 | - React/CxxBridge (0.59.8):
133 | - Folly (= 2018.10.22.00)
134 | - React/Core
135 | - React/cxxreact
136 | - React/jsiexecutor
137 | - React/cxxreact (0.59.8):
138 | - boost-for-react-native (= 1.63.0)
139 | - DoubleConversion
140 | - Folly (= 2018.10.22.00)
141 | - glog
142 | - React/jsinspector
143 | - React/DevSupport (0.59.8):
144 | - React/Core
145 | - React/RCTWebSocket
146 | - React/jsi (0.59.8):
147 | - DoubleConversion
148 | - Folly (= 2018.10.22.00)
149 | - glog
150 | - React/jsiexecutor (0.59.8):
151 | - DoubleConversion
152 | - Folly (= 2018.10.22.00)
153 | - glog
154 | - React/cxxreact
155 | - React/jsi
156 | - React/jsinspector (0.59.8)
157 | - React/RCTActionSheet (0.59.8):
158 | - React/Core
159 | - React/RCTAnimation (0.59.8):
160 | - React/Core
161 | - React/RCTBlob (0.59.8):
162 | - React/Core
163 | - React/RCTCameraRoll (0.59.8):
164 | - React/Core
165 | - React/RCTImage
166 | - React/RCTGeolocation (0.59.8):
167 | - React/Core
168 | - React/RCTImage (0.59.8):
169 | - React/Core
170 | - React/RCTNetwork
171 | - React/RCTNetwork (0.59.8):
172 | - React/Core
173 | - React/RCTText (0.59.8):
174 | - React/Core
175 | - React/RCTVibration (0.59.8):
176 | - React/Core
177 | - React/RCTWebSocket (0.59.8):
178 | - React/Core
179 | - React/RCTBlob
180 | - UMBarCodeScannerInterface (4.0.0)
181 | - UMCameraInterface (4.0.0)
182 | - UMConstantsInterface (4.0.0)
183 | - UMCore (4.0.0)
184 | - UMFaceDetectorInterface (4.0.0)
185 | - UMFileSystemInterface (4.0.0)
186 | - UMFontInterface (4.0.0)
187 | - UMImageLoaderInterface (4.0.0)
188 | - UMPermissionsInterface (4.0.0)
189 | - UMReactNativeAdapter (4.0.0):
190 | - React
191 | - UMCore
192 | - UMFontInterface
193 | - UMSensorsInterface (4.0.0)
194 | - UMTaskManagerInterface (4.0.0)
195 | - yoga (0.59.8.React)
196 |
197 | DEPENDENCIES:
198 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
199 | - EXAppLoaderProvider (from `../node_modules/expo-app-loader-provider/ios`)
200 | - EXAV (from `../node_modules/expo-av/ios`)
201 | - EXConstants (from `../node_modules/expo-constants/ios`)
202 | - EXFileSystem (from `../node_modules/expo-file-system/ios`)
203 | - EXFont (from `../node_modules/expo-font/ios`)
204 | - EXKeepAwake (from `../node_modules/expo-keep-awake/ios`)
205 | - EXLinearGradient (from `../node_modules/expo-linear-gradient/ios`)
206 | - EXLocation (from `../node_modules/expo-location/ios`)
207 | - EXPermissions (from `../node_modules/expo-permissions/ios`)
208 | - ExpoKit/Core (from `http://github.com/expo/expo.git`, tag `ios/2.11.0`)
209 | - EXSQLite (from `../node_modules/expo-sqlite/ios`)
210 | - EXWebBrowser (from `../node_modules/expo-web-browser/ios`)
211 | - Folly (from `../node_modules/react-native/third-party-podspecs/Folly.podspec`)
212 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
213 | - React/ART (from `../node_modules/react-native`)
214 | - React/Core (from `../node_modules/react-native`)
215 | - React/CxxBridge (from `../node_modules/react-native`)
216 | - React/DevSupport (from `../node_modules/react-native`)
217 | - React/RCTActionSheet (from `../node_modules/react-native`)
218 | - React/RCTAnimation (from `../node_modules/react-native`)
219 | - React/RCTCameraRoll (from `../node_modules/react-native`)
220 | - React/RCTGeolocation (from `../node_modules/react-native`)
221 | - React/RCTImage (from `../node_modules/react-native`)
222 | - React/RCTNetwork (from `../node_modules/react-native`)
223 | - React/RCTText (from `../node_modules/react-native`)
224 | - React/RCTVibration (from `../node_modules/react-native`)
225 | - React/RCTWebSocket (from `../node_modules/react-native`)
226 | - UMBarCodeScannerInterface (from `../node_modules/unimodules-barcode-scanner-interface/ios`)
227 | - UMCameraInterface (from `../node_modules/unimodules-camera-interface/ios`)
228 | - UMConstantsInterface (from `../node_modules/unimodules-constants-interface/ios`)
229 | - "UMCore (from `../node_modules/@unimodules/core/ios`)"
230 | - UMFaceDetectorInterface (from `../node_modules/unimodules-face-detector-interface/ios`)
231 | - UMFileSystemInterface (from `../node_modules/unimodules-file-system-interface/ios`)
232 | - UMFontInterface (from `../node_modules/unimodules-font-interface/ios`)
233 | - UMImageLoaderInterface (from `../node_modules/unimodules-image-loader-interface/ios`)
234 | - UMPermissionsInterface (from `../node_modules/unimodules-permissions-interface/ios`)
235 | - "UMReactNativeAdapter (from `../node_modules/@unimodules/react-native-adapter/ios`)"
236 | - UMSensorsInterface (from `../node_modules/unimodules-sensors-interface/ios`)
237 | - UMTaskManagerInterface (from `../node_modules/unimodules-task-manager-interface/ios`)
238 | - yoga (from `../node_modules/react-native/ReactCommon/yoga`)
239 |
240 | SPEC REPOS:
241 | https://github.com/CocoaPods/Specs.git:
242 | - Amplitude-iOS
243 | - Analytics
244 | - AppAuth
245 | - Bolts
246 | - boost-for-react-native
247 | - Branch
248 | - CocoaLumberjack
249 | - Crashlytics
250 | - Fabric
251 | - FBAudienceNetwork
252 | - FBSDKCoreKit
253 | - FBSDKLoginKit
254 | - Google-Maps-iOS-Utils
255 | - Google-Mobile-Ads-SDK
256 | - GoogleMaps
257 | - GoogleSignIn
258 | - GoogleToolboxForMac
259 | - GTMSessionFetcher
260 | - JKBigInteger2
261 | - lottie-ios
262 |
263 | EXTERNAL SOURCES:
264 | DoubleConversion:
265 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
266 | EXAppLoaderProvider:
267 | :path: !ruby/object:Pathname
268 | path: "../node_modules/expo-app-loader-provider/ios"
269 | EXAV:
270 | :path: !ruby/object:Pathname
271 | path: "../node_modules/expo-av/ios"
272 | EXConstants:
273 | :path: !ruby/object:Pathname
274 | path: "../node_modules/expo-constants/ios"
275 | EXFileSystem:
276 | :path: !ruby/object:Pathname
277 | path: "../node_modules/expo-file-system/ios"
278 | EXFont:
279 | :path: !ruby/object:Pathname
280 | path: "../node_modules/expo-font/ios"
281 | EXKeepAwake:
282 | :path: !ruby/object:Pathname
283 | path: "../node_modules/expo-keep-awake/ios"
284 | EXLinearGradient:
285 | :path: !ruby/object:Pathname
286 | path: "../node_modules/expo-linear-gradient/ios"
287 | EXLocation:
288 | :path: !ruby/object:Pathname
289 | path: "../node_modules/expo-location/ios"
290 | EXPermissions:
291 | :path: !ruby/object:Pathname
292 | path: "../node_modules/expo-permissions/ios"
293 | ExpoKit:
294 | :git: http://github.com/expo/expo.git
295 | :tag: ios/2.11.0
296 | EXSQLite:
297 | :path: !ruby/object:Pathname
298 | path: "../node_modules/expo-sqlite/ios"
299 | EXWebBrowser:
300 | :path: !ruby/object:Pathname
301 | path: "../node_modules/expo-web-browser/ios"
302 | Folly:
303 | :podspec: "../node_modules/react-native/third-party-podspecs/Folly.podspec"
304 | glog:
305 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
306 | React:
307 | :path: "../node_modules/react-native"
308 | UMBarCodeScannerInterface:
309 | :path: !ruby/object:Pathname
310 | path: "../node_modules/unimodules-barcode-scanner-interface/ios"
311 | UMCameraInterface:
312 | :path: !ruby/object:Pathname
313 | path: "../node_modules/unimodules-camera-interface/ios"
314 | UMConstantsInterface:
315 | :path: !ruby/object:Pathname
316 | path: "../node_modules/unimodules-constants-interface/ios"
317 | UMCore:
318 | :path: !ruby/object:Pathname
319 | path: "../node_modules/@unimodules/core/ios"
320 | UMFaceDetectorInterface:
321 | :path: !ruby/object:Pathname
322 | path: "../node_modules/unimodules-face-detector-interface/ios"
323 | UMFileSystemInterface:
324 | :path: !ruby/object:Pathname
325 | path: "../node_modules/unimodules-file-system-interface/ios"
326 | UMFontInterface:
327 | :path: !ruby/object:Pathname
328 | path: "../node_modules/unimodules-font-interface/ios"
329 | UMImageLoaderInterface:
330 | :path: !ruby/object:Pathname
331 | path: "../node_modules/unimodules-image-loader-interface/ios"
332 | UMPermissionsInterface:
333 | :path: !ruby/object:Pathname
334 | path: "../node_modules/unimodules-permissions-interface/ios"
335 | UMReactNativeAdapter:
336 | :path: !ruby/object:Pathname
337 | path: "../node_modules/@unimodules/react-native-adapter/ios"
338 | UMSensorsInterface:
339 | :path: !ruby/object:Pathname
340 | path: "../node_modules/unimodules-sensors-interface/ios"
341 | UMTaskManagerInterface:
342 | :path: !ruby/object:Pathname
343 | path: "../node_modules/unimodules-task-manager-interface/ios"
344 | yoga:
345 | :path: "../node_modules/react-native/ReactCommon/yoga"
346 |
347 | CHECKOUT OPTIONS:
348 | ExpoKit:
349 | :git: http://github.com/expo/expo.git
350 | :tag: ios/2.11.0
351 |
352 | SPEC CHECKSUMS:
353 | Amplitude-iOS: 4a3c8807b2ea5369dc11e87e23825bff01e5a922
354 | Analytics: 63744ad4afa65c3bcdcdb7a94b62515bde5b3900
355 | AppAuth: cd34aac431e5c77c46ec7f03935377faa8c5808b
356 | Bolts: ac6567323eac61e203f6a9763667d0f711be34c8
357 | boost-for-react-native: 39c7adb57c4e60d6c5479dd8623128eb5b3f0f2c
358 | Branch: 0d98d22745a9b68bcb4fa6dc1c6a92b64d4fdd7b
359 | CocoaLumberjack: 2800c03334042fe80589423c8d80e582dcaec482
360 | Crashlytics: 611738c7847f8291a1a51084e35987b86ba6b3ee
361 | DoubleConversion: bb338842f62ab1d708ceb63ec3d999f0f3d98ecd
362 | EXAppLoaderProvider: 98f3e889fa48b441b19c64f19193c82ebb1c15ca
363 | EXAV: 290cae61e5a2000848d9399a651d6974bb33df61
364 | EXConstants: db705745139c4c674b1a54ddce94766d9ddf8387
365 | EXFileSystem: 217d1480b63c595d0620e64d6a6845dc52229bbd
366 | EXFont: ce93c38bb43624eac43d283ca42e6e09496342b6
367 | EXKeepAwake: 97c48386fa562a57956c99a1b66b422de1fa3a19
368 | EXLinearGradient: ac8c71b16c1996624f1c41475bb987221574f830
369 | EXLocation: 89ec75877fcf40b3dfeca428c898d25fce299fb3
370 | EXPermissions: b4e5d6e134317bfb29bed37998b7c0deab318e6d
371 | ExpoKit: bdec1ac1b8ed550cb95c434d0c5e443e73e17382
372 | EXSQLite: 62f542b96081e28e239317a6dbd759aa6e7200f7
373 | EXWebBrowser: 52ce377fa8fc0f4832e233d625d5a5ebb2801b64
374 | Fabric: 706c8b8098fff96c33c0db69cbf81f9c551d0d74
375 | FBAudienceNetwork: 56c2dc9b5f075f4a9757d7dc8a83d3972270f645
376 | FBSDKCoreKit: ae214474b25033399c131dc81d258e412582a2ba
377 | FBSDKLoginKit: 7a1e411d46acc8834588eca437daf34de42e1d52
378 | Folly: de497beb10f102453a1afa9edbf8cf8a251890de
379 | glog: aefd1eb5dda2ab95ba0938556f34b98e2da3a60d
380 | Google-Maps-iOS-Utils: c32891ff472eaaa1fca032beedafa1a013af7875
381 | Google-Mobile-Ads-SDK: 1bdf1a4244d0553b1840239874c209c01aef055f
382 | GoogleMaps: c087b8e5dfe87ca6ebf59adb9b4894a4146bec4f
383 | GoogleSignIn: 7ff245e1a7b26d379099d3243a562f5747e23d39
384 | GoogleToolboxForMac: b3553629623a3b1bff17f555e736cd5a6d95ad55
385 | GTMSessionFetcher: 61bb0f61a4cb560030f1222021178008a5727a23
386 | JKBigInteger2: e91672035c42328c48b7dd015b66812ddf40ca9b
387 | lottie-ios: a50d5c0160425cd4b01b852bb9578963e6d92d31
388 | React: 841af16feb8e7936838a626bfa1b8faaa07d9e6c
389 | UMBarCodeScannerInterface: 07047b4faa779e7963efa3d2c5951a71a0a807bf
390 | UMCameraInterface: f6a3e71ddd928617637084bfd67db2daec3b1927
391 | UMConstantsInterface: 20e6caaba4ddac70d0b50827d6cf35a202ac988f
392 | UMCore: 01d7ed248e2d4789105292a71ce1385ff4315c53
393 | UMFaceDetectorInterface: 623ca9703dc664d13edf315ec930df9d2246b7d0
394 | UMFileSystemInterface: c7dc550ff72d2b38258f218b086b32b3de536957
395 | UMFontInterface: a1ec983801daad298617d00dabbfdb609325665c
396 | UMImageLoaderInterface: f7b69ad8dfcae00c87d70a2081af78293e445fee
397 | UMPermissionsInterface: 0d060960ebb35d905d74a52461a3e6ab2d43b53b
398 | UMReactNativeAdapter: 619f5e9769977caf4a862e8e232ce1ef5c74ac01
399 | UMSensorsInterface: 1d276f7fdf781a09715091bad7873c27da271e9b
400 | UMTaskManagerInterface: 8f2117979aacb688fe304f834ff8800fadc320bb
401 | yoga: 92b2102c3d373d1a790db4ab761d2b0ffc634f64
402 |
403 | PODFILE CHECKSUM: 55a253f9aa1d173fa2912afb5a2523cdc2061658
404 |
405 | COCOAPODS: 1.8.4
406 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | B501732B1DC01252003445D9 /* EXShell.plist in Resources */ = {isa = PBXBuildFile; fileRef = B501732A1DC01252003445D9 /* EXShell.plist */; };
11 | B56386491DB9693800A0598C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B56386481DB9693800A0598C /* AppDelegate.m */; };
12 | B56386511DB9693800A0598C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B56386501DB9693800A0598C /* Assets.xcassets */; };
13 | B56386611DB96A5E00A0598C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = B563865E1DB96A5E00A0598C /* main.m */; };
14 | B56386671DB9994300A0598C /* EXSDKVersions.plist in Resources */ = {isa = PBXBuildFile; fileRef = B56386661DB9994300A0598C /* EXSDKVersions.plist */; };
15 | B5693E8E1FABD16A00307FA4 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = B5693E8D1FABD16A00307FA4 /* LaunchScreen.xib */; };
16 | B5693E911FABD46800307FA4 /* launch_background_image.png in Resources */ = {isa = PBXBuildFile; fileRef = B5693E8F1FABD46800307FA4 /* launch_background_image.png */; };
17 | B5693E921FABD46800307FA4 /* launch_icon.png in Resources */ = {isa = PBXBuildFile; fileRef = B5693E901FABD46800307FA4 /* launch_icon.png */; };
18 | B5CFBF4F1EDE419400B4BE24 /* EXBuildConstants.plist in Resources */ = {isa = PBXBuildFile; fileRef = B5CFBF4E1EDE419400B4BE24 /* EXBuildConstants.plist */; };
19 | B5DB04801F3A684600E91581 /* shell-app-manifest.json in Resources */ = {isa = PBXBuildFile; fileRef = B5DB047E1F3A684600E91581 /* shell-app-manifest.json */; };
20 | B5DB04811F3A684600E91581 /* shell-app.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B5DB047F1F3A684600E91581 /* shell-app.bundle */; };
21 | EBB8117C1BFA0514F79CAF74 /* libPods-test.expo.nfc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C4A88D15726AD99E8A257BC7 /* libPods-test.expo.nfc.a */; };
22 | C63C520A2A754322833BAF41 /* libNfcManager.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C994C96B840F4E95A4DB6E79 /* libNfcManager.a */; };
23 | /* End PBXBuildFile section */
24 |
25 | /* Begin PBXFileReference section */
26 | 2C1548D9E4CB1AEFA5CCAE6D /* Pods-test.expo.nfc.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-test.expo.nfc.debug.xcconfig"; path = "Pods/Target Support Files/Pods-test.expo.nfc/Pods-test.expo.nfc.debug.xcconfig"; sourceTree = ""; };
27 | A47FE4D7F70906B7DC8CE39B /* Pods-test.expo.nfc.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-test.expo.nfc.release.xcconfig"; path = "Pods/Target Support Files/Pods-test.expo.nfc/Pods-test.expo.nfc.release.xcconfig"; sourceTree = ""; };
28 | B501732A1DC01252003445D9 /* EXShell.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = EXShell.plist; sourceTree = ""; };
29 | B56386411DB9693800A0598C /* test.expo.nfc.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = test.expo.nfc.app; sourceTree = BUILT_PRODUCTS_DIR; };
30 | B56386471DB9693800A0598C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
31 | B56386481DB9693800A0598C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
32 | B56386501DB9693800A0598C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
33 | B563865C1DB96A5E00A0598C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
34 | B563865E1DB96A5E00A0598C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
35 | B56386661DB9994300A0598C /* EXSDKVersions.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = EXSDKVersions.plist; sourceTree = ""; };
36 | B5693E8D1FABD16A00307FA4 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = ""; };
37 | B5693E8F1FABD46800307FA4 /* launch_background_image.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_background_image.png; sourceTree = ""; };
38 | B5693E901FABD46800307FA4 /* launch_icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = launch_icon.png; sourceTree = ""; };
39 | B5CFBF4E1EDE419400B4BE24 /* EXBuildConstants.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = EXBuildConstants.plist; sourceTree = ""; };
40 | B5DB047E1F3A684600E91581 /* shell-app-manifest.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "shell-app-manifest.json"; sourceTree = ""; };
41 | B5DB047F1F3A684600E91581 /* shell-app.bundle */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "shell-app.bundle"; sourceTree = ""; };
42 | C4A88D15726AD99E8A257BC7 /* libPods-test.expo.nfc.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-test.expo.nfc.a"; sourceTree = BUILT_PRODUCTS_DIR; };
43 | 7FA5641A55744682B4578E72 /* NfcManager.xcodeproj */ = {isa = PBXFileReference; name = "NfcManager.xcodeproj"; path = "../node_modules/react-native-nfc-manager/ios/NfcManager.xcodeproj"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = wrapper.pb-project; explicitFileType = undefined; includeInIndex = 0; };
44 | C994C96B840F4E95A4DB6E79 /* libNfcManager.a */ = {isa = PBXFileReference; name = "libNfcManager.a"; path = "libNfcManager.a"; sourceTree = ""; fileEncoding = undefined; lastKnownFileType = archive.ar; explicitFileType = undefined; includeInIndex = 0; };
45 | /* End PBXFileReference section */
46 |
47 | /* Begin PBXFrameworksBuildPhase section */
48 | B563863E1DB9693800A0598C /* Frameworks */ = {
49 | isa = PBXFrameworksBuildPhase;
50 | buildActionMask = 2147483647;
51 | files = (
52 | EBB8117C1BFA0514F79CAF74 /* libPods-test.expo.nfc.a in Frameworks */,
53 | C63C520A2A754322833BAF41 /* libNfcManager.a in Frameworks */,
54 | );
55 | runOnlyForDeploymentPostprocessing = 0;
56 | };
57 | /* End PBXFrameworksBuildPhase section */
58 |
59 | /* Begin PBXGroup section */
60 | 1A42804E64B7E9E0AB8B6799 /* Frameworks */ = {
61 | isa = PBXGroup;
62 | children = (
63 | C4A88D15726AD99E8A257BC7 /* libPods-test.expo.nfc.a */,
64 | );
65 | name = Frameworks;
66 | sourceTree = "";
67 | };
68 | 5B29BC350A332C58878A9F13 /* Pods */ = {
69 | isa = PBXGroup;
70 | children = (
71 | 2C1548D9E4CB1AEFA5CCAE6D /* Pods-test.expo.nfc.debug.xcconfig */,
72 | A47FE4D7F70906B7DC8CE39B /* Pods-test.expo.nfc.release.xcconfig */,
73 | );
74 | name = Pods;
75 | sourceTree = "";
76 | };
77 | B56386381DB9693800A0598C = {
78 | isa = PBXGroup;
79 | children = (
80 | B56386431DB9693800A0598C /* test.expo.nfc */,
81 | B56386421DB9693800A0598C /* Products */,
82 | 5B29BC350A332C58878A9F13 /* Pods */,
83 | 1A42804E64B7E9E0AB8B6799 /* Frameworks */,
84 | B8BA25934DC74DDA9261F87B /* Libraries */,
85 | );
86 | sourceTree = "";
87 | };
88 | B56386421DB9693800A0598C /* Products */ = {
89 | isa = PBXGroup;
90 | children = (
91 | B56386411DB9693800A0598C /* test.expo.nfc.app */,
92 | );
93 | name = Products;
94 | sourceTree = "";
95 | };
96 | B56386431DB9693800A0598C /* test.expo.nfc */ = {
97 | isa = PBXGroup;
98 | children = (
99 | B56386471DB9693800A0598C /* AppDelegate.h */,
100 | B56386481DB9693800A0598C /* AppDelegate.m */,
101 | B56386501DB9693800A0598C /* Assets.xcassets */,
102 | B563865B1DB96A5E00A0598C /* Supporting */,
103 | );
104 | path = test.expo.nfc;
105 | sourceTree = "";
106 | };
107 | B563865B1DB96A5E00A0598C /* Supporting */ = {
108 | isa = PBXGroup;
109 | children = (
110 | B5693E8F1FABD46800307FA4 /* launch_background_image.png */,
111 | B5693E901FABD46800307FA4 /* launch_icon.png */,
112 | B5693E8D1FABD16A00307FA4 /* LaunchScreen.xib */,
113 | B5DB047E1F3A684600E91581 /* shell-app-manifest.json */,
114 | B5DB047F1F3A684600E91581 /* shell-app.bundle */,
115 | B5CFBF4E1EDE419400B4BE24 /* EXBuildConstants.plist */,
116 | B501732A1DC01252003445D9 /* EXShell.plist */,
117 | B56386661DB9994300A0598C /* EXSDKVersions.plist */,
118 | B563865C1DB96A5E00A0598C /* Info.plist */,
119 | B563865E1DB96A5E00A0598C /* main.m */,
120 | );
121 | path = Supporting;
122 | sourceTree = "";
123 | };
124 | B8BA25934DC74DDA9261F87B /* Libraries */ = {
125 | isa = "PBXGroup";
126 | children = (
127 | 7FA5641A55744682B4578E72 /* NfcManager.xcodeproj */,
128 | );
129 | name = Libraries;
130 | sourceTree = "";
131 | path = "";
132 | };
133 | /* End PBXGroup section */
134 |
135 | /* Begin PBXNativeTarget section */
136 | B56386401DB9693800A0598C /* test.expo.nfc */ = {
137 | isa = PBXNativeTarget;
138 | buildConfigurationList = B56386581DB9693800A0598C /* Build configuration list for PBXNativeTarget "test.expo.nfc" */;
139 | buildPhases = (
140 | 23539343DCC44EF8449429EE /* [CP] Check Pods Manifest.lock */,
141 | B5722AD01DFB7E3F0084848F /* Prepare Expo */,
142 | B563863D1DB9693800A0598C /* Sources */,
143 | B563863E1DB9693800A0598C /* Frameworks */,
144 | B563863F1DB9693800A0598C /* Resources */,
145 | AA38385B7D8D0854176B72FC /* [CP] Copy Pods Resources */,
146 | 19D233B7204FDD7D0087ED51 /* Bundle Expo Assets */,
147 | );
148 | buildRules = (
149 | );
150 | dependencies = (
151 | );
152 | name = test.expo.nfc;
153 | productName = test.expo.nfc;
154 | productReference = B56386411DB9693800A0598C /* test.expo.nfc.app */;
155 | productType = "com.apple.product-type.application";
156 | };
157 | /* End PBXNativeTarget section */
158 |
159 | /* Begin PBXProject section */
160 | B56386391DB9693800A0598C /* Project object */ = {
161 | isa = PBXProject;
162 | attributes = {
163 | LastUpgradeCheck = 900;
164 | ORGANIZATIONNAME = "650 Industries, Inc.";
165 | TargetAttributes = {
166 | B56386401DB9693800A0598C = {
167 | CreatedOnToolsVersion = 8.0;
168 | DevelopmentTeam = C8D8QTF339;
169 | ProvisioningStyle = Automatic;
170 | };
171 | };
172 | };
173 | buildConfigurationList = B563863C1DB9693800A0598C /* Build configuration list for PBXProject "test.expo.nfc" */;
174 | compatibilityVersion = "Xcode 3.2";
175 | developmentRegion = English;
176 | hasScannedForEncodings = 0;
177 | knownRegions = (
178 | en,
179 | Base,
180 | );
181 | mainGroup = B56386381DB9693800A0598C;
182 | productRefGroup = B56386421DB9693800A0598C /* Products */;
183 | projectDirPath = "";
184 | projectRoot = "";
185 | targets = (
186 | B56386401DB9693800A0598C /* test.expo.nfc */,
187 | );
188 | };
189 | /* End PBXProject section */
190 |
191 | /* Begin PBXResourcesBuildPhase section */
192 | B563863F1DB9693800A0598C /* Resources */ = {
193 | isa = PBXResourcesBuildPhase;
194 | buildActionMask = 2147483647;
195 | files = (
196 | B5693E911FABD46800307FA4 /* launch_background_image.png in Resources */,
197 | B501732B1DC01252003445D9 /* EXShell.plist in Resources */,
198 | B5CFBF4F1EDE419400B4BE24 /* EXBuildConstants.plist in Resources */,
199 | B56386671DB9994300A0598C /* EXSDKVersions.plist in Resources */,
200 | B5693E921FABD46800307FA4 /* launch_icon.png in Resources */,
201 | B5693E8E1FABD16A00307FA4 /* LaunchScreen.xib in Resources */,
202 | B5DB04801F3A684600E91581 /* shell-app-manifest.json in Resources */,
203 | B5DB04811F3A684600E91581 /* shell-app.bundle in Resources */,
204 | B56386511DB9693800A0598C /* Assets.xcassets in Resources */,
205 | );
206 | runOnlyForDeploymentPostprocessing = 0;
207 | };
208 | /* End PBXResourcesBuildPhase section */
209 |
210 | /* Begin PBXShellScriptBuildPhase section */
211 | 19D233B7204FDD7D0087ED51 /* Bundle Expo Assets */ = {
212 | isa = PBXShellScriptBuildPhase;
213 | buildActionMask = 2147483647;
214 | files = (
215 | );
216 | inputPaths = (
217 | );
218 | name = "Bundle Expo Assets";
219 | outputPaths = (
220 | );
221 | runOnlyForDeploymentPostprocessing = 0;
222 | shellPath = /bin/sh;
223 | shellScript = "set -eo pipefail\n\nif [ \"$CONFIGURATION\" == \"Debug\" ]; then\n echo \"Skipping asset bundling in debug mode.\"\n exit 0\nfi\n\npushd \"${SRCROOT}/..\"\nexport PATH=\"$(if [ -f ~/.expo/PATH ]; then echo $PATH:$(cat ~/.expo/PATH); else echo $PATH; fi)\"\ndest=\"$CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH\"\nexpo bundle-assets --platform ios --dest \"$dest\"\npopd\n";
224 | };
225 | 23539343DCC44EF8449429EE /* [CP] Check Pods Manifest.lock */ = {
226 | isa = PBXShellScriptBuildPhase;
227 | buildActionMask = 2147483647;
228 | files = (
229 | );
230 | inputPaths = (
231 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
232 | "${PODS_ROOT}/Manifest.lock",
233 | );
234 | name = "[CP] Check Pods Manifest.lock";
235 | outputPaths = (
236 | "$(DERIVED_FILE_DIR)/Pods-test.expo.nfc-checkManifestLockResult.txt",
237 | );
238 | runOnlyForDeploymentPostprocessing = 0;
239 | shellPath = /bin/sh;
240 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
241 | showEnvVarsInLog = 0;
242 | };
243 | AA38385B7D8D0854176B72FC /* [CP] Copy Pods Resources */ = {
244 | isa = PBXShellScriptBuildPhase;
245 | buildActionMask = 2147483647;
246 | files = (
247 | );
248 | inputPaths = (
249 | "${PODS_ROOT}/Target Support Files/Pods-test.expo.nfc/Pods-test.expo.nfc-resources.sh",
250 | "${PODS_ROOT}/Amplitude-iOS/Amplitude/api.amplitude.com.der",
251 | "${PODS_ROOT}/Amplitude-iOS/Amplitude/ComodoCaLimitedRsaCertificationAuthority.der",
252 | "${PODS_ROOT}/Amplitude-iOS/Amplitude/ComodoRsaCA.der",
253 | "${PODS_ROOT}/Amplitude-iOS/Amplitude/ComodoRsaDomainValidationCA.der",
254 | "${PODS_ROOT}/FBSDKCoreKit/FacebookSDKStrings.bundle",
255 | "${PODS_ROOT}/GoogleMaps/Maps/Frameworks/GoogleMaps.framework/Resources/GoogleMaps.bundle",
256 | "${PODS_ROOT}/GoogleSignIn/Resources/GoogleSignIn.bundle",
257 | );
258 | name = "[CP] Copy Pods Resources";
259 | outputPaths = (
260 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/api.amplitude.com.der",
261 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ComodoCaLimitedRsaCertificationAuthority.der",
262 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ComodoRsaCA.der",
263 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ComodoRsaDomainValidationCA.der",
264 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FacebookSDKStrings.bundle",
265 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleMaps.bundle",
266 | "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/GoogleSignIn.bundle",
267 | );
268 | runOnlyForDeploymentPostprocessing = 0;
269 | shellPath = /bin/sh;
270 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-test.expo.nfc/Pods-test.expo.nfc-resources.sh\"\n";
271 | showEnvVarsInLog = 0;
272 | };
273 | B5722AD01DFB7E3F0084848F /* Prepare Expo */ = {
274 | isa = PBXShellScriptBuildPhase;
275 | buildActionMask = 2147483647;
276 | files = (
277 | );
278 | inputPaths = (
279 | );
280 | name = "Prepare Expo";
281 | outputPaths = (
282 | );
283 | runOnlyForDeploymentPostprocessing = 0;
284 | shellPath = /bin/bash;
285 | shellScript = "set -eo pipefail\n\nexport PATH=\"$(if [ -f ~/.expo/PATH ]; then echo $PATH:$(cat ~/.expo/PATH); else echo $PATH; fi)\"\nexpo prepare-detached-build --platform ios \"${SRCROOT}/..\"\n";
286 | };
287 | /* End PBXShellScriptBuildPhase section */
288 |
289 | /* Begin PBXSourcesBuildPhase section */
290 | B563863D1DB9693800A0598C /* Sources */ = {
291 | isa = PBXSourcesBuildPhase;
292 | buildActionMask = 2147483647;
293 | files = (
294 | B56386611DB96A5E00A0598C /* main.m in Sources */,
295 | B56386491DB9693800A0598C /* AppDelegate.m in Sources */,
296 | );
297 | runOnlyForDeploymentPostprocessing = 0;
298 | };
299 | /* End PBXSourcesBuildPhase section */
300 |
301 | /* Begin XCBuildConfiguration section */
302 | B56386561DB9693800A0598C /* Debug */ = {
303 | isa = XCBuildConfiguration;
304 | buildSettings = {
305 | ALWAYS_SEARCH_USER_PATHS = NO;
306 | CLANG_ANALYZER_NONNULL = YES;
307 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
308 | CLANG_CXX_LIBRARY = "libc++";
309 | CLANG_ENABLE_MODULES = YES;
310 | CLANG_ENABLE_OBJC_ARC = YES;
311 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
312 | CLANG_WARN_BOOL_CONVERSION = YES;
313 | CLANG_WARN_COMMA = YES;
314 | CLANG_WARN_CONSTANT_CONVERSION = YES;
315 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
316 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
317 | CLANG_WARN_EMPTY_BODY = YES;
318 | CLANG_WARN_ENUM_CONVERSION = YES;
319 | CLANG_WARN_INFINITE_RECURSION = YES;
320 | CLANG_WARN_INT_CONVERSION = YES;
321 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
322 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
323 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
324 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
325 | CLANG_WARN_STRICT_PROTOTYPES = YES;
326 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
327 | CLANG_WARN_SUSPICIOUS_MOVES = YES;
328 | CLANG_WARN_UNREACHABLE_CODE = YES;
329 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
330 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
331 | COPY_PHASE_STRIP = NO;
332 | DEBUG_INFORMATION_FORMAT = dwarf;
333 | ENABLE_STRICT_OBJC_MSGSEND = YES;
334 | ENABLE_TESTABILITY = YES;
335 | GCC_C_LANGUAGE_STANDARD = gnu99;
336 | GCC_DYNAMIC_NO_PIC = NO;
337 | GCC_NO_COMMON_BLOCKS = YES;
338 | GCC_OPTIMIZATION_LEVEL = 0;
339 | GCC_PREPROCESSOR_DEFINITIONS = (
340 | "DEBUG=1",
341 | "$(inherited)",
342 | );
343 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
344 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
345 | GCC_WARN_UNDECLARED_SELECTOR = YES;
346 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
347 | GCC_WARN_UNUSED_FUNCTION = YES;
348 | GCC_WARN_UNUSED_VARIABLE = YES;
349 | IPHONEOS_DEPLOYMENT_TARGET = 10.0;
350 | MTL_ENABLE_DEBUG_INFO = YES;
351 | ONLY_ACTIVE_ARCH = YES;
352 | SDKROOT = iphoneos;
353 | };
354 | name = Debug;
355 | };
356 | B56386571DB9693800A0598C /* Release */ = {
357 | isa = XCBuildConfiguration;
358 | buildSettings = {
359 | ALWAYS_SEARCH_USER_PATHS = NO;
360 | CLANG_ANALYZER_NONNULL = YES;
361 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
362 | CLANG_CXX_LIBRARY = "libc++";
363 | CLANG_ENABLE_MODULES = YES;
364 | CLANG_ENABLE_OBJC_ARC = YES;
365 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
366 | CLANG_WARN_BOOL_CONVERSION = YES;
367 | CLANG_WARN_COMMA = YES;
368 | CLANG_WARN_CONSTANT_CONVERSION = YES;
369 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
370 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
371 | CLANG_WARN_EMPTY_BODY = YES;
372 | CLANG_WARN_ENUM_CONVERSION = YES;
373 | CLANG_WARN_INFINITE_RECURSION = YES;
374 | CLANG_WARN_INT_CONVERSION = YES;
375 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
376 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
377 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
378 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
379 | CLANG_WARN_STRICT_PROTOTYPES = YES;
380 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
381 | CLANG_WARN_SUSPICIOUS_MOVES = YES;
382 | CLANG_WARN_UNREACHABLE_CODE = YES;
383 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
384 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
385 | COPY_PHASE_STRIP = NO;
386 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
387 | ENABLE_NS_ASSERTIONS = NO;
388 | ENABLE_STRICT_OBJC_MSGSEND = YES;
389 | GCC_C_LANGUAGE_STANDARD = gnu99;
390 | GCC_NO_COMMON_BLOCKS = YES;
391 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
392 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
393 | GCC_WARN_UNDECLARED_SELECTOR = YES;
394 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
395 | GCC_WARN_UNUSED_FUNCTION = YES;
396 | GCC_WARN_UNUSED_VARIABLE = YES;
397 | IPHONEOS_DEPLOYMENT_TARGET = 10.0;
398 | MTL_ENABLE_DEBUG_INFO = NO;
399 | SDKROOT = iphoneos;
400 | VALIDATE_PRODUCT = YES;
401 | };
402 | name = Release;
403 | };
404 | B56386591DB9693800A0598C /* Debug */ = {
405 | isa = XCBuildConfiguration;
406 | baseConfigurationReference = 2C1548D9E4CB1AEFA5CCAE6D /* Pods-test.expo.nfc.debug.xcconfig */;
407 | buildSettings = {
408 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
409 | DEVELOPMENT_TEAM = C8D8QTF339;
410 | INFOPLIST_FILE = "$(SRCROOT)/test.expo.nfc/Supporting/Info.plist";
411 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
412 | PRODUCT_BUNDLE_IDENTIFIER = test.expo.nfc;
413 | PRODUCT_NAME = "$(TARGET_NAME)";
414 | TARGETED_DEVICE_FAMILY = "1,2";
415 | LIBRARY_SEARCH_PATHS = (
416 | "$(inherited)",
417 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
418 | );
419 | };
420 | name = Debug;
421 | };
422 | B563865A1DB9693800A0598C /* Release */ = {
423 | isa = XCBuildConfiguration;
424 | baseConfigurationReference = A47FE4D7F70906B7DC8CE39B /* Pods-test.expo.nfc.release.xcconfig */;
425 | buildSettings = {
426 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
427 | DEVELOPMENT_TEAM = C8D8QTF339;
428 | INFOPLIST_FILE = "$(SRCROOT)/test.expo.nfc/Supporting/Info.plist";
429 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
430 | PRODUCT_BUNDLE_IDENTIFIER = test.expo.nfc;
431 | PRODUCT_NAME = "$(TARGET_NAME)";
432 | TARGETED_DEVICE_FAMILY = "1,2";
433 | LIBRARY_SEARCH_PATHS = (
434 | "$(inherited)",
435 | "\"$(SRCROOT)/$(TARGET_NAME)\"",
436 | );
437 | };
438 | name = Release;
439 | };
440 | /* End XCBuildConfiguration section */
441 |
442 | /* Begin XCConfigurationList section */
443 | B563863C1DB9693800A0598C /* Build configuration list for PBXProject "test.expo.nfc" */ = {
444 | isa = XCConfigurationList;
445 | buildConfigurations = (
446 | B56386561DB9693800A0598C /* Debug */,
447 | B56386571DB9693800A0598C /* Release */,
448 | );
449 | defaultConfigurationIsVisible = 0;
450 | defaultConfigurationName = Release;
451 | };
452 | B56386581DB9693800A0598C /* Build configuration list for PBXNativeTarget "test.expo.nfc" */ = {
453 | isa = XCConfigurationList;
454 | buildConfigurations = (
455 | B56386591DB9693800A0598C /* Debug */,
456 | B563865A1DB9693800A0598C /* Release */,
457 | );
458 | defaultConfigurationIsVisible = 0;
459 | defaultConfigurationName = Release;
460 | };
461 | /* End XCConfigurationList section */
462 | };
463 | rootObject = B56386391DB9693800A0598C /* Project object */;
464 | }
465 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc.xcodeproj/xcshareddata/xcschemes/test.expo.nfc.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
40 |
41 |
42 |
43 |
44 |
45 |
56 |
58 |
64 |
65 |
66 |
67 |
71 |
72 |
73 |
74 |
75 |
76 |
82 |
84 |
90 |
91 |
92 |
93 |
95 |
96 |
99 |
100 |
101 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/AppDelegate.h:
--------------------------------------------------------------------------------
1 | // Copyright 2015-present 650 Industries. All rights reserved.
2 |
3 | #import
4 | #import
5 |
6 | @interface AppDelegate : EXStandaloneAppDelegate
7 |
8 | @end
9 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/AppDelegate.m:
--------------------------------------------------------------------------------
1 | // Copyright 2015-present 650 Industries. All rights reserved.
2 |
3 | #import "AppDelegate.h"
4 |
5 | @implementation AppDelegate
6 |
7 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
8 | {
9 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
10 | }
11 |
12 | - (void)applicationWillEnterForeground:(UIApplication *)application
13 | {
14 | [super applicationWillEnterForeground:application];
15 | }
16 |
17 | #pragma mark - Background Fetch
18 |
19 | - (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
20 | {
21 | [super application:application performFetchWithCompletionHandler:completionHandler];
22 | }
23 |
24 | #pragma mark - Handling URLs
25 |
26 | - (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options
27 | {
28 | return [super application:app openURL:url options:options];
29 | }
30 |
31 | - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler
32 | {
33 | return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
34 | }
35 |
36 | #pragma mark - Notifications
37 |
38 | - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)token
39 | {
40 | [super application:application didRegisterForRemoteNotificationsWithDeviceToken:token];
41 | }
42 |
43 | - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)err
44 | {
45 | [super application:application didFailToRegisterForRemoteNotificationsWithError:err];
46 | }
47 |
48 | - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
49 | {
50 | [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
51 | }
52 |
53 | @end
54 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon1024x1024.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@2x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon20x20@3x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@2x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon29x29@3x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@2x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon40x40@3x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@2x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon60x60@3x.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon76x76@2x~ipad.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon76x76~ipad.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/AppIcon83.5x83.5@2x~ipad.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "20x20",
5 | "idiom" : "iphone",
6 | "filename" : "AppIcon20x20@2x.png",
7 | "scale" : "2x"
8 | },
9 | {
10 | "size" : "20x20",
11 | "idiom" : "iphone",
12 | "filename" : "AppIcon20x20@3x.png",
13 | "scale" : "3x"
14 | },
15 | {
16 | "idiom" : "iphone",
17 | "size" : "29x29",
18 | "scale" : "1x"
19 | },
20 | {
21 | "size" : "29x29",
22 | "idiom" : "iphone",
23 | "filename" : "AppIcon29x29@2x.png",
24 | "scale" : "2x"
25 | },
26 | {
27 | "size" : "29x29",
28 | "idiom" : "iphone",
29 | "filename" : "AppIcon29x29@3x.png",
30 | "scale" : "3x"
31 | },
32 | {
33 | "size" : "40x40",
34 | "idiom" : "iphone",
35 | "filename" : "AppIcon40x40@2x.png",
36 | "scale" : "2x"
37 | },
38 | {
39 | "size" : "40x40",
40 | "idiom" : "iphone",
41 | "filename" : "AppIcon40x40@3x.png",
42 | "scale" : "3x"
43 | },
44 | {
45 | "idiom" : "iphone",
46 | "size" : "57x57",
47 | "scale" : "1x"
48 | },
49 | {
50 | "idiom" : "iphone",
51 | "size" : "57x57",
52 | "scale" : "2x"
53 | },
54 | {
55 | "size" : "60x60",
56 | "idiom" : "iphone",
57 | "filename" : "AppIcon60x60@2x.png",
58 | "scale" : "2x"
59 | },
60 | {
61 | "size" : "60x60",
62 | "idiom" : "iphone",
63 | "filename" : "AppIcon60x60@3x.png",
64 | "scale" : "3x"
65 | },
66 | {
67 | "idiom" : "ipad",
68 | "size" : "20x20",
69 | "scale" : "1x"
70 | },
71 | {
72 | "idiom" : "ipad",
73 | "size" : "20x20",
74 | "scale" : "2x"
75 | },
76 | {
77 | "idiom" : "ipad",
78 | "size" : "29x29",
79 | "scale" : "1x"
80 | },
81 | {
82 | "idiom" : "ipad",
83 | "size" : "29x29",
84 | "scale" : "2x"
85 | },
86 | {
87 | "idiom" : "ipad",
88 | "size" : "40x40",
89 | "scale" : "1x"
90 | },
91 | {
92 | "idiom" : "ipad",
93 | "size" : "40x40",
94 | "scale" : "2x"
95 | },
96 | {
97 | "idiom" : "ipad",
98 | "size" : "50x50",
99 | "scale" : "1x"
100 | },
101 | {
102 | "idiom" : "ipad",
103 | "size" : "50x50",
104 | "scale" : "2x"
105 | },
106 | {
107 | "idiom" : "ipad",
108 | "size" : "72x72",
109 | "scale" : "1x"
110 | },
111 | {
112 | "idiom" : "ipad",
113 | "size" : "72x72",
114 | "scale" : "2x"
115 | },
116 | {
117 | "size" : "76x76",
118 | "idiom" : "ipad",
119 | "filename" : "AppIcon76x76~ipad.png",
120 | "scale" : "1x"
121 | },
122 | {
123 | "size" : "76x76",
124 | "idiom" : "ipad",
125 | "filename" : "AppIcon76x76@2x~ipad.png",
126 | "scale" : "2x"
127 | },
128 | {
129 | "size" : "83.5x83.5",
130 | "idiom" : "ipad",
131 | "filename" : "AppIcon83.5x83.5@2x~ipad.png",
132 | "scale" : "2x"
133 | },
134 | {
135 | "size" : "1024x1024",
136 | "idiom" : "ios-marketing",
137 | "filename" : "AppIcon1024x1024.png",
138 | "scale" : "1x"
139 | }
140 | ],
141 | "info" : {
142 | "version" : 1,
143 | "author" : "xcode"
144 | }
145 | }
146 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/EXBuildConstants.json:
--------------------------------------------------------------------------------
1 | {"TEMPORARY_SDK_VERSION":"35.0.0","EXPO_RUNTIME_VERSION":"33.0.0","STANDALONE_CONTEXT_TYPE":"user","DEFAULT_API_KEYS":{"GOOGLE_MAPS_IOS_API_KEY":"","AMPLITUDE_KEY":"1e246ef3dacaabe8648768d7c35fceb1"},"developmentUrl":"exp5a9e8e27c6444abebcda9249f5f0fd44://192.168.0.104:19000"}
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/EXBuildConstants.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DEFAULT_API_KEYS
6 |
7 | AMPLITUDE_KEY
8 | 1e246ef3dacaabe8648768d7c35fceb1
9 | GOOGLE_MAPS_IOS_API_KEY
10 |
11 |
12 | EXPO_RUNTIME_VERSION
13 | 33.0.0
14 | STANDALONE_CONTEXT_TYPE
15 | user
16 | TEMPORARY_SDK_VERSION
17 | 35.0.0
18 | developmentUrl
19 | exp5a9e8e27c6444abebcda9249f5f0fd44://192.168.0.104:19000
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/EXBuildConstants.plist.bak:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | DEFAULT_API_KEYS
6 |
7 | AMPLITUDE_KEY
8 | 1e246ef3dacaabe8648768d7c35fceb1
9 | GOOGLE_MAPS_IOS_API_KEY
10 |
11 |
12 | EXPO_RUNTIME_VERSION
13 | 33.0.0
14 | STANDALONE_CONTEXT_TYPE
15 | user
16 | TEMPORARY_SDK_VERSION
17 | 35.0.0
18 | developmentUrl
19 | exp5a9e8e27c6444abebcda9249f5f0fd44://192.168.0.104:19000
20 |
21 |
22 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/EXSDKVersions.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | detachedNativeVersions
6 |
7 | kernel
8 | 35.0.0
9 | shell
10 | 35.0.0
11 |
12 | sdkVersions
13 |
14 | 35.0.0
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/EXShell.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | isManifestVerificationBypassed
6 |
7 | isShell
8 |
9 | manifestUrl
10 | exp://exp.host/@bitcs/nfc
11 | releaseChannel
12 | default
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | test.expo.nfc
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | test.expo.nfc
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | test.expo.nfc
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0.0
21 | CFBundleURLTypes
22 |
23 |
24 | CFBundleURLSchemes
25 |
26 | exp5a9e8e27c6444abebcda9249f5f0fd44
27 |
28 |
29 |
30 | CFBundleURLName
31 | OAuthRedirect
32 | CFBundleURLSchemes
33 |
34 | test.expo.nfc
35 |
36 |
37 |
38 | CFBundleVersion
39 | 1
40 | Fabric
41 |
42 | APIKey
43 | 81130e95ea13cd7ed9a4f455e96214902c721c99
44 | Kits
45 |
46 |
47 | KitInfo
48 |
49 | KitName
50 | Crashlytics
51 |
52 |
53 |
54 | LSRequiresIPhoneOS
55 |
56 | NSAppTransportSecurity
57 |
58 | NSAllowsArbitraryLoads
59 |
60 |
61 | NSCalendarsUsageDescription
62 | Allow test.expo.nfc to access your calendar
63 | NSCameraUsageDescription
64 | Allow test.expo.nfc to use your camera
65 | NSContactsUsageDescription
66 | Allow test.expo.nfc to access your contacts
67 | NSLocationWhenInUseUsageDescription
68 | Allow test.expo.nfc to use your location
69 | NSMicrophoneUsageDescription
70 | Allow test.expo.nfc to access your microphone
71 | NSMotionUsageDescription
72 | Allow test.expo.nfc to access your device's accelerometer
73 | NSPhotoLibraryAddUsageDescription
74 | Give test.expo.nfc permission to save photos
75 | NSPhotoLibraryUsageDescription
76 | Give test.expo.nfc permission to access your photos
77 | NSRemindersUsageDescription
78 | Allow test.expo.nfc to access your reminders
79 | UILaunchStoryboardName
80 | LaunchScreen
81 | UIRequiredDeviceCapabilities
82 |
83 | UIRequiresFullScreen
84 |
85 | UIStatusBarStyle
86 | UIStatusBarStyleLightContent
87 | UISupportedInterfaceOrientations
88 |
89 | UIInterfaceOrientationPortrait
90 | UIInterfaceOrientationLandscapeLeft
91 | UIInterfaceOrientationLandscapeRight
92 | UIInterfaceOrientationPortraitUpsideDown
93 |
94 | UIViewControllerBasedStatusBarAppearance
95 |
96 |
97 |
98 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/LaunchScreen.xib:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/launch_background_image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Supporting/launch_background_image.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/launch_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Supporting/launch_icon.png
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/main.m:
--------------------------------------------------------------------------------
1 | // Copyright © 2016 650 Industries, Inc. All rights reserved.
2 |
3 | #import
4 | #import "AppDelegate.h"
5 |
6 | int main(int argc, char * argv[]) {
7 | @autoreleasepool {
8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/sdkVersions.json:
--------------------------------------------------------------------------------
1 | {"sdkVersions":["31.0.0","32.0.0","33.0.0"]}
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/shell-app-manifest.json:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Supporting/shell-app-manifest.json
--------------------------------------------------------------------------------
/ios/test.expo.nfc/Supporting/shell-app.bundle:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/featherbear/expo-nfc-react-native/8c48140e0dd638e02b4af0117b07becd48cf7845/ios/test.expo.nfc/Supporting/shell-app.bundle
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "main": "node_modules/expo/AppEntry.js",
3 | "scripts": {
4 | "start": "expo start",
5 | "init": "rm -rf ios/build && rm -rf ios/Pods && rm -rf android/build/* && node scripts/init.js && REACT_NATIVE_EJECTED='true' node scripts/switchPlatform.js",
6 | "install-ios-libs": "cd ios && bundle install && bundle exec pod install",
7 | "ios": "expo start --ios -c",
8 | "android": "expo start --android -c",
9 | "web": "expo start --web -c",
10 | "ios-native": "REACT_NATIVE_EJECTED='true' node scripts/switchPlatform.js && npm run ios",
11 | "android-native": "REACT_NATIVE_EJECTED='true' node scripts/switchPlatform.js && npm run android",
12 | "ios-expo": "REACT_NATIVE_EJECTED='false' node scripts/switchPlatform.js && npm run ios",
13 | "android-expo": "REACT_NATIVE_EJECTED='false' node scripts/switchPlatform.js && npm run android",
14 | "web-expo": "REACT_NATIVE_EJECTED='false' node scripts/switchPlatform.js && npm run web",
15 | "postinstall": "npx jetify"
16 | },
17 | "dependencies": {
18 | "child_process": "^1.0.2",
19 | "expo": "^35.0.0",
20 | "expo-av": "^7.0.1",
21 | "expo-modal": "^1.0.2",
22 | "expokit": "^35.0.4",
23 | "prompt": "^1.0.0",
24 | "react": "16.8.3",
25 | "react-dom": "^16.8.3",
26 | "react-native": "https://github.com/expo/react-native/archive/sdk-35.0.0.tar.gz",
27 | "react-native-mifare-classic-wrapper": "github:featherbear/react-native-mifare-classic-wrapper",
28 | "react-native-unimodules": "^0.5.0",
29 | "react-native-web": "^0.11.7"
30 | },
31 | "devDependencies": {
32 | "babel-eslint": "^10.0.2",
33 | "babel-preset-expo": "^5.1.1",
34 | "eslint": "^5.3.0",
35 | "eslint-config-airbnb": "^17.1.0",
36 | "eslint-plugin-import": "^2.18.0",
37 | "eslint-plugin-jsx-a11y": "^6.2.3",
38 | "eslint-plugin-react": "^7.14.2",
39 | "fs": "0.0.1-security",
40 | "jetifier": "^1.6.6",
41 | "path": "^0.12.7"
42 | },
43 | "private": true
44 | }
45 |
--------------------------------------------------------------------------------
/scripts/init.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const prompt = require('prompt');
3 | const path = require('path');
4 | const gOldName = 'expoblank';
5 | const gOldNameRegex = /expoblank/g;
6 | const gOldSlugName = 'exop-blank';
7 | const gOldSlugNameRegex = /exop-blank/g;
8 | let gName = 'empty';
9 | let gSlugName = 'empty-slug';
10 | const execSync = require('child_process').execSync;
11 |
12 | const generatedPaths = ['ios/Pods', 'ios/build']; // TODO: add android specific generated paths
13 |
14 | prompt.start();
15 |
16 |
17 | prompt.get([{
18 | name: 'name',
19 | description: 'Enter the name of your project',
20 | type: 'string',
21 | required: true
22 | }, {
23 | name: 'slugName',
24 | description: 'Enter the slug name of your expo project',
25 | type: 'string',
26 | required: true
27 | }], function(err, results) {
28 | console.log(results);
29 | gName = results['name'];
30 | gSlugName = results['slugName'];
31 | updateProjectConfigs(results);
32 | prompt.stop();
33 | console.log('executing the node fixer command');
34 | execSync('./node_modules/expokit/detach-scripts/run-exp.sh prepare-detached-build --platform android');
35 | });
36 |
37 |
38 | function replaceFileContent(fileName, oldName, oldNameRegex, newName) {
39 | console.log(`${fileName} parsing file`);
40 | let fileContent = fs.readFileSync(fileName, 'utf8');
41 |
42 | if(fileContent.includes(oldName)) {
43 | fileContent = fileContent.replace(oldNameRegex, newName);
44 | fs.writeFileSync(fileName, fileContent);
45 | console.log(`${fileName} updated successfully`);
46 | } else {
47 | console.log(`${fileName} skipped as it doesn't include ${oldName}`);
48 | }
49 | }
50 |
51 | function iterateFolderAndUpdateContent(folderPath, oldName, oldNameRegex, newName) {
52 |
53 | let isGenerated = false;
54 | for(let gpath of generatedPaths) {
55 | if(folderPath.includes(gpath)) {
56 | isGenerated = true;
57 | break;
58 | }
59 | }
60 |
61 | if(isGenerated) {
62 | return; // no need to change the content of this folder since it is generated.
63 | }
64 |
65 | const files = fs.readdirSync(folderPath);
66 | const newFolderPath = folderPath.replace(oldNameRegex, newName);
67 | fs.renameSync(folderPath, newFolderPath);
68 | console.log(`renamed ${folderPath} to ${newFolderPath}`);
69 |
70 | for(let file of files) {
71 | const newPath = path.resolve(newFolderPath, file);
72 | const stat = fs.lstatSync(newPath);
73 | const isFile = stat.isFile();
74 | if(!isFile) {
75 | iterateFolderAndUpdateContent(newPath, oldName, oldNameRegex, newName);
76 | } else if(!newPath.endsWith('.png')) {// add the files check that you don't want to modify
77 | replaceFileContent(newPath, oldName, oldNameRegex, newName);
78 | const newFilePath = newPath.replace(oldNameRegex, newName);
79 | fs.renameSync(newPath, newFilePath);
80 | }
81 | }
82 | }
83 |
84 | function updateProjectConfigs() {
85 |
86 | ['../ios', '../android'].map(item => {
87 | const nativeFolderPath = path.resolve(__dirname, item);
88 | iterateFolderAndUpdateContent(nativeFolderPath, gOldName, gOldNameRegex, gName);
89 | iterateFolderAndUpdateContent(nativeFolderPath, gOldSlugName, gOldSlugNameRegex, gSlugName);
90 | });
91 |
92 | ['../ejected.json', '../unejected.json'].map(item => {
93 | replaceFileContent(path.resolve(__dirname, item), gOldName, gOldNameRegex, gName);
94 | replaceFileContent(path.resolve(__dirname, item), gOldSlugName, gOldSlugNameRegex, gSlugName);
95 | });
96 | }
97 |
--------------------------------------------------------------------------------
/scripts/switchPlatform.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const path = require('path');
3 |
4 | const startFile = process.env.REACT_NATIVE_EJECTED === 'true' ? '../ejected.json' : '../unejected.json';
5 |
6 | fs.copyFileSync(path.resolve(__dirname, startFile), path.resolve(__dirname, '../app.json'));
7 | console.log(startFile + " copied to app.json!");
8 |
9 | const isEjected = process.env.REACT_NATIVE_EJECTED === 'true';
10 |
11 | fs.writeFileSync(path.resolve(__dirname, '../config.json'), JSON.stringify({ isEjected }, null, "\t"));
12 | console.log(`Updated config.json file with isEjected: ${isEjected}`);
--------------------------------------------------------------------------------
/stubs/MifareClassicWrapperStub.js:
--------------------------------------------------------------------------------
1 | export default new (class {
2 | get NfcManager () {
3 | return null
4 | }
5 |
6 | async isMFCsupported () {
7 | return false
8 | }
9 |
10 | async start () {
11 | throw new Error('MFC not supported')
12 | }
13 |
14 | listen (callback) {
15 | return null
16 | }
17 |
18 | onStateChanged (listener) {
19 | return null
20 | }
21 | })()
22 |
--------------------------------------------------------------------------------
/unejected.json:
--------------------------------------------------------------------------------
1 | {
2 | "expo": {
3 | "name": "test.expo.nfc",
4 | "slug": "nfc",
5 | "privacy": "public",
6 | "sdkVersion": "35.0.0",
7 | "platforms": [
8 | "ios",
9 | "android",
10 | "web"
11 | ],
12 | "version": "1.0.0",
13 | "orientation": "portrait",
14 | "icon": "./assets/icon.png",
15 | "splash": {
16 | "image": "./assets/splash.png",
17 | "resizeMode": "contain",
18 | "backgroundColor": "#ffffff"
19 | },
20 | "updates": {
21 | "fallbackToCacheTimeout": 0
22 | },
23 | "assetBundlePatterns": [
24 | "**/*"
25 | ],
26 | "ios": {
27 | "supportsTablet": true
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------