expo 49.0.0-alpha.3 → 49.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/build.gradle +9 -11
- package/android/src/main/AndroidManifest.xml +1 -1
- package/android/src/main/java/expo/modules/ReactActivityDelegateWrapper.kt +40 -3
- package/android/src/test/AndroidManifest.xml +1 -2
- package/build/environment/logging.fx.js +2 -2
- package/build/environment/logging.fx.js.map +1 -1
- package/bundledNativeModules.json +85 -85
- package/package.json +16 -16
- package/react-native.config.js +48 -4
package/android/build.gradle
CHANGED
|
@@ -33,7 +33,7 @@ def getRNVersion() {
|
|
|
33
33
|
ensureDependeciesWereEvaluated(project)
|
|
34
34
|
|
|
35
35
|
group = 'host.exp.exponent'
|
|
36
|
-
version = '49.0.0-alpha.
|
|
36
|
+
version = '49.0.0-alpha.5'
|
|
37
37
|
|
|
38
38
|
buildscript {
|
|
39
39
|
def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle")
|
|
@@ -65,19 +65,11 @@ buildscript {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
// Creating sources with comments
|
|
69
|
-
task androidSourcesJar(type: Jar) {
|
|
70
|
-
classifier = 'sources'
|
|
71
|
-
from android.sourceSets.main.java.srcDirs
|
|
72
|
-
}
|
|
73
|
-
|
|
74
68
|
afterEvaluate {
|
|
75
69
|
publishing {
|
|
76
70
|
publications {
|
|
77
71
|
release(MavenPublication) {
|
|
78
72
|
from components.release
|
|
79
|
-
// Add additional sourcesJar to artifacts
|
|
80
|
-
artifact(androidSourcesJar)
|
|
81
73
|
}
|
|
82
74
|
}
|
|
83
75
|
repositories {
|
|
@@ -100,11 +92,12 @@ android {
|
|
|
100
92
|
jvmTarget = JavaVersion.VERSION_11.majorVersion
|
|
101
93
|
}
|
|
102
94
|
|
|
95
|
+
namespace "expo.core"
|
|
103
96
|
defaultConfig {
|
|
104
97
|
minSdkVersion safeExtGet("minSdkVersion", 21)
|
|
105
98
|
targetSdkVersion safeExtGet("targetSdkVersion", 33)
|
|
106
99
|
versionCode 1
|
|
107
|
-
versionName "49.0.0-alpha.
|
|
100
|
+
versionName "49.0.0-alpha.5"
|
|
108
101
|
consumerProguardFiles("proguard-rules.pro")
|
|
109
102
|
}
|
|
110
103
|
lintOptions {
|
|
@@ -132,13 +125,18 @@ android {
|
|
|
132
125
|
}
|
|
133
126
|
}
|
|
134
127
|
}
|
|
128
|
+
publishing {
|
|
129
|
+
singleVariant("release") {
|
|
130
|
+
withSourcesJar()
|
|
131
|
+
}
|
|
132
|
+
}
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
dependencies { dependencyHandler ->
|
|
138
136
|
//noinspection GradleDynamicVersion
|
|
139
137
|
implementation 'com.facebook.react:react-native:+'
|
|
140
138
|
|
|
141
|
-
testImplementation 'junit:junit:4.13.
|
|
139
|
+
testImplementation 'junit:junit:4.13.2'
|
|
142
140
|
testImplementation 'androidx.test:core:1.4.0'
|
|
143
141
|
testImplementation "com.google.truth:truth:1.1.2"
|
|
144
142
|
testImplementation 'io.mockk:mockk:1.12.0'
|
|
@@ -34,6 +34,14 @@ class ReactActivityDelegateWrapper(
|
|
|
34
34
|
private val reactActivityHandlers = ExpoModulesPackage.packageList
|
|
35
35
|
.flatMap { it.createReactActivityHandlers(activity) }
|
|
36
36
|
private val methodMap: ArrayMap<String, Method> = ArrayMap()
|
|
37
|
+
private val host: ReactNativeHost by lazy {
|
|
38
|
+
invokeDelegateMethod("getReactNativeHost")
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* When the app delay for `loadApp`, the ReactInstanceManager's lifecycle will be disrupted.
|
|
42
|
+
* This flag indicates we should emit `onResume` after `loadApp`.
|
|
43
|
+
*/
|
|
44
|
+
private var shouldEmitPendingResume = false
|
|
37
45
|
|
|
38
46
|
//region ReactActivityDelegate
|
|
39
47
|
|
|
@@ -50,7 +58,7 @@ class ReactActivityDelegateWrapper(
|
|
|
50
58
|
}
|
|
51
59
|
|
|
52
60
|
override fun getReactNativeHost(): ReactNativeHost {
|
|
53
|
-
return
|
|
61
|
+
return host
|
|
54
62
|
}
|
|
55
63
|
|
|
56
64
|
override fun getReactInstanceManager(): ReactInstanceManager {
|
|
@@ -76,9 +84,23 @@ class ReactActivityDelegateWrapper(
|
|
|
76
84
|
reactDelegate.loadApp(appKey)
|
|
77
85
|
rootViewContainer.addView(reactDelegate.reactRootView, ViewGroup.LayoutParams.MATCH_PARENT)
|
|
78
86
|
activity.setContentView(rootViewContainer)
|
|
79
|
-
|
|
80
|
-
return invokeDelegateMethod("loadApp", arrayOf(String::class.java), arrayOf(appKey))
|
|
87
|
+
return
|
|
81
88
|
}
|
|
89
|
+
|
|
90
|
+
val delayLoadAppHandler = reactActivityHandlers.asSequence()
|
|
91
|
+
.mapNotNull { it.getDelayLoadAppHandler(activity, host) }
|
|
92
|
+
.firstOrNull()
|
|
93
|
+
if (delayLoadAppHandler != null) {
|
|
94
|
+
delayLoadAppHandler.whenReady {
|
|
95
|
+
invokeDelegateMethod<Unit, String?>("loadApp", arrayOf(String::class.java), arrayOf(appKey))
|
|
96
|
+
if (shouldEmitPendingResume) {
|
|
97
|
+
onResume()
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
return invokeDelegateMethod("loadApp", arrayOf(String::class.java), arrayOf(appKey))
|
|
82
104
|
}
|
|
83
105
|
|
|
84
106
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
@@ -123,13 +145,23 @@ class ReactActivityDelegateWrapper(
|
|
|
123
145
|
}
|
|
124
146
|
|
|
125
147
|
override fun onResume() {
|
|
148
|
+
if (!host.hasInstance()) {
|
|
149
|
+
shouldEmitPendingResume = true
|
|
150
|
+
return
|
|
151
|
+
}
|
|
126
152
|
invokeDelegateMethod<Unit>("onResume")
|
|
127
153
|
reactActivityLifecycleListeners.forEach { listener ->
|
|
128
154
|
listener.onResume(activity)
|
|
129
155
|
}
|
|
156
|
+
shouldEmitPendingResume = false
|
|
130
157
|
}
|
|
131
158
|
|
|
132
159
|
override fun onPause() {
|
|
160
|
+
// If app is stopped before delayed `loadApp`, we should cancel the pending resume
|
|
161
|
+
shouldEmitPendingResume = false
|
|
162
|
+
if (!host.hasInstance()) {
|
|
163
|
+
return
|
|
164
|
+
}
|
|
133
165
|
reactActivityLifecycleListeners.forEach { listener ->
|
|
134
166
|
listener.onPause(activity)
|
|
135
167
|
}
|
|
@@ -137,6 +169,11 @@ class ReactActivityDelegateWrapper(
|
|
|
137
169
|
}
|
|
138
170
|
|
|
139
171
|
override fun onDestroy() {
|
|
172
|
+
// If app is stopped before delayed `loadApp`, we should cancel the pending resume
|
|
173
|
+
shouldEmitPendingResume = false
|
|
174
|
+
if (!host.hasInstance()) {
|
|
175
|
+
return
|
|
176
|
+
}
|
|
140
177
|
reactActivityLifecycleListeners.forEach { listener ->
|
|
141
178
|
listener.onDestroy(activity)
|
|
142
179
|
}
|
|
@@ -15,7 +15,7 @@ if (__DEV__) {
|
|
|
15
15
|
if (devServerInfo.bundleLoadedFromServer) {
|
|
16
16
|
// url: `http://localhost:8081/`
|
|
17
17
|
const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;
|
|
18
|
-
// The standard Expo logUrl is `http://localhost:
|
|
18
|
+
// The standard Expo logUrl is `http://localhost:8081/logs`, this code assumes that the `logs` endpoint doesn't change.
|
|
19
19
|
const logUrl = url + 'logs';
|
|
20
20
|
Constants.__unsafeNoWarnManifest.logUrl = logUrl;
|
|
21
21
|
if (Constants.manifest) {
|
|
@@ -33,7 +33,7 @@ if (__DEV__) {
|
|
|
33
33
|
if (devServerInfo.bundleLoadedFromServer) {
|
|
34
34
|
// url: `http://localhost:8081/`
|
|
35
35
|
const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;
|
|
36
|
-
// The standard Expo logUrl is `http://localhost:
|
|
36
|
+
// The standard Expo logUrl is `http://localhost:8081/logs`, this code assumes that the `logs` endpoint doesn't change.
|
|
37
37
|
const logUrl = url + 'logs';
|
|
38
38
|
if (Constants.__unsafeNoWarnManifest2.extra?.expoGo) {
|
|
39
39
|
Constants.__unsafeNoWarnManifest2.extra.expoGo.logUrl = logUrl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logging.fx.js","sourceRoot":"","sources":["../../src/environment/logging.fx.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,YAAY,MAAM,mDAAmD,CAAC;AAE7E,sGAAsG;AACtG,IAAI,OAAO,EAAE;IACX,kFAAkF;IAClF,qFAAqF;IACrF;IACE,yGAAyG;IACzG,SAAS,CAAC,sBAAsB;QAChC,2FAA2F;QAC3F,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,EACxC;QACA,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;QACrC,wDAAwD;QACxD,IAAI,aAAa,CAAC,sBAAsB,EAAE;YACxC,gCAAgC;YAChC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;YAC3F,
|
|
1
|
+
{"version":3,"file":"logging.fx.js","sourceRoot":"","sources":["../../src/environment/logging.fx.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,YAAY,MAAM,mDAAmD,CAAC;AAE7E,sGAAsG;AACtG,IAAI,OAAO,EAAE;IACX,kFAAkF;IAClF,qFAAqF;IACrF;IACE,yGAAyG;IACzG,SAAS,CAAC,sBAAsB;QAChC,2FAA2F;QAC3F,CAAC,SAAS,CAAC,sBAAsB,CAAC,MAAM,EACxC;QACA,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;QACrC,wDAAwD;QACxD,IAAI,aAAa,CAAC,sBAAsB,EAAE;YACxC,gCAAgC;YAChC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;YAC3F,uHAAuH;YAEvH,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;YAC5B,SAAS,CAAC,sBAAsB,CAAC,MAAM,GAAG,MAAM,CAAC;YACjD,IAAI,SAAS,CAAC,QAAQ,EAAE;gBACtB,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;aACpC;SACF;KACF;SAAM;IACL,uHAAuH;IACvH,SAAS,CAAC,uBAAuB;QACjC,4FAA4F;QAC5F,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EACxD;QACA,MAAM,aAAa,GAAG,YAAY,EAAE,CAAC;QACrC,wDAAwD;QACxD,IAAI,aAAa,CAAC,sBAAsB,EAAE;YACxC,gCAAgC;YAChC,MAAM,GAAG,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC;YAC3F,uHAAuH;YAEvH,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;YAC5B,IAAI,SAAS,CAAC,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE;gBACnD,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;aAChE;YACD,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;gBACtC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;aAClD;SACF;KACF;IACD,6DAA6D;IAE7D,IACE,SAAS,CAAC,sBAAsB,EAAE,MAAM;QACxC,SAAS,CAAC,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EACxD;QACA,gGAAgG;QAChG,0GAA0G;QAC1G,IAAI,QAAQ,CAAC,gBAAgB,EAAE;YAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC,OAAO,CAAC;YAC/D,aAAa,CAAC,qBAAqB,CAAC,MAAM,EAAE,EAAE,EAAE;gBAC9C,uFAAuF;aACxF,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;YACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;KACF;CACF","sourcesContent":["import Constants from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\nimport getDevServer from 'react-native/Libraries/Core/Devtools/getDevServer';\n\n// Metro and terser don't seem to be capable of shaking the imports unless they're wrapped in __DEV__.\nif (__DEV__) {\n // If the app is being run outside of the Expo Go app and not using expo-dev-menu,\n // then we can attempt to polyfill the `logUrl` to enable console logging in the CLI.\n if (\n // If this is defined then we can be define Constants.manifest.logUrl without worrying about the warning.\n Constants.__unsafeNoWarnManifest &&\n // Only attempt to set the URL if `Constants.__unsafeNoWarnManifest.logUrl` is not defined.\n !Constants.__unsafeNoWarnManifest.logUrl\n ) {\n const devServerInfo = getDevServer();\n // Ensure the URL is remote and not local. i.e `file://`\n if (devServerInfo.bundleLoadedFromServer) {\n // url: `http://localhost:8081/`\n const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;\n // The standard Expo logUrl is `http://localhost:8081/logs`, this code assumes that the `logs` endpoint doesn't change.\n\n const logUrl = url + 'logs';\n Constants.__unsafeNoWarnManifest.logUrl = logUrl;\n if (Constants.manifest) {\n Constants.manifest.logUrl = logUrl;\n }\n }\n } else if (\n // If this is defined then we can be define Constants.manifest2.extra.expoGo.logUrl without worrying about the warning.\n Constants.__unsafeNoWarnManifest2 &&\n // Only attempt to set the URL if `Constants.__unsafeNoWarnManifest2.logUrl` is not defined.\n !Constants.__unsafeNoWarnManifest2.extra?.expoGo?.logUrl\n ) {\n const devServerInfo = getDevServer();\n // Ensure the URL is remote and not local. i.e `file://`\n if (devServerInfo.bundleLoadedFromServer) {\n // url: `http://localhost:8081/`\n const url = !devServerInfo.url.endsWith('/') ? `${devServerInfo.url}/` : devServerInfo.url;\n // The standard Expo logUrl is `http://localhost:8081/logs`, this code assumes that the `logs` endpoint doesn't change.\n\n const logUrl = url + 'logs';\n if (Constants.__unsafeNoWarnManifest2.extra?.expoGo) {\n Constants.__unsafeNoWarnManifest2.extra.expoGo.logUrl = logUrl;\n }\n if (Constants.manifest2?.extra?.expoGo) {\n Constants.manifest2.extra.expoGo.logUrl = logUrl;\n }\n }\n }\n // TODO: Maybe warn that console logging will not be enabled.\n\n if (\n Constants.__unsafeNoWarnManifest?.logUrl ||\n Constants.__unsafeNoWarnManifest2?.extra?.expoGo?.logUrl\n ) {\n // Enable logging to the Expo dev tools only if this JS is not running in a web browser (ex: the\n // remote debugger). In Expo Web we don't show console logs in the CLI, so there's no special case needed.\n if (Platform.isAsyncDebugging) {\n const RemoteLogging = require('../logs/RemoteLogging').default;\n RemoteLogging.enqueueRemoteLogAsync('info', {}, [\n 'You are now debugging remotely; check your browser console for your application logs.',\n ]);\n } else {\n const Logs = require('../logs/Logs');\n Logs.enableExpoCliLogging();\n }\n }\n}\n"]}
|
|
@@ -1,105 +1,105 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@expo/vector-icons": "^13.0.0",
|
|
3
|
-
"@react-native-async-storage/async-storage": "1.
|
|
4
|
-
"@react-native-community/datetimepicker": "
|
|
5
|
-
"@react-native-masked-view/masked-view": "0.2.
|
|
6
|
-
"@react-native-community/netinfo": "9.3.
|
|
3
|
+
"@react-native-async-storage/async-storage": "1.18.2",
|
|
4
|
+
"@react-native-community/datetimepicker": "7.1.0",
|
|
5
|
+
"@react-native-masked-view/masked-view": "0.2.9",
|
|
6
|
+
"@react-native-community/netinfo": "9.3.10",
|
|
7
7
|
"@react-native-community/slider": "4.4.2",
|
|
8
8
|
"@react-native-community/viewpager": "5.0.11",
|
|
9
|
-
"@react-native-picker/picker": "2.4.
|
|
10
|
-
"@react-native-segmented-control/segmented-control": "2.4.
|
|
11
|
-
"@stripe/stripe-react-native": "0.
|
|
9
|
+
"@react-native-picker/picker": "2.4.10",
|
|
10
|
+
"@react-native-segmented-control/segmented-control": "2.4.1",
|
|
11
|
+
"@stripe/stripe-react-native": "0.27.2",
|
|
12
12
|
"expo-analytics-amplitude": "~11.3.0",
|
|
13
13
|
"expo-app-auth": "~11.1.0",
|
|
14
14
|
"expo-app-loader-provider": "~8.0.0",
|
|
15
15
|
"expo-apple-authentication": "~6.1.0",
|
|
16
|
-
"expo-application": "~5.
|
|
17
|
-
"expo-asset": "~8.
|
|
18
|
-
"expo-auth-session": "~
|
|
19
|
-
"expo-av": "~13.
|
|
20
|
-
"expo-background-fetch": "~11.
|
|
21
|
-
"expo-barcode-scanner": "~12.
|
|
22
|
-
"expo-battery": "~7.
|
|
23
|
-
"expo-blur": "~12.
|
|
24
|
-
"expo-brightness": "~11.
|
|
25
|
-
"expo-build-properties": "~0.
|
|
26
|
-
"expo-calendar": "~11.
|
|
27
|
-
"expo-camera": "~13.
|
|
28
|
-
"expo-cellular": "~5.
|
|
16
|
+
"expo-application": "~5.3.0",
|
|
17
|
+
"expo-asset": "~8.10.0",
|
|
18
|
+
"expo-auth-session": "~5.0.0",
|
|
19
|
+
"expo-av": "~13.4.0",
|
|
20
|
+
"expo-background-fetch": "~11.3.0",
|
|
21
|
+
"expo-barcode-scanner": "~12.5.0",
|
|
22
|
+
"expo-battery": "~7.3.0",
|
|
23
|
+
"expo-blur": "~12.4.0",
|
|
24
|
+
"expo-brightness": "~11.4.0",
|
|
25
|
+
"expo-build-properties": "~0.8.0",
|
|
26
|
+
"expo-calendar": "~11.3.0",
|
|
27
|
+
"expo-camera": "~13.4.0",
|
|
28
|
+
"expo-cellular": "~5.3.0",
|
|
29
29
|
"expo-checkbox": "~2.4.0",
|
|
30
|
-
"expo-clipboard": "~4.
|
|
31
|
-
"expo-constants": "~14.
|
|
32
|
-
"expo-contacts": "~12.
|
|
33
|
-
"expo-crypto": "~12.
|
|
34
|
-
"expo-dev-client": "~2.
|
|
35
|
-
"expo-device": "~5.
|
|
36
|
-
"expo-document-picker": "~11.
|
|
37
|
-
"expo-face-detector": "~12.
|
|
38
|
-
"expo-file-system": "~15.
|
|
39
|
-
"expo-font": "~11.
|
|
40
|
-
"expo-gl": "~
|
|
30
|
+
"expo-clipboard": "~4.3.0",
|
|
31
|
+
"expo-constants": "~14.4.0",
|
|
32
|
+
"expo-contacts": "~12.2.0",
|
|
33
|
+
"expo-crypto": "~12.4.0",
|
|
34
|
+
"expo-dev-client": "~2.4.0",
|
|
35
|
+
"expo-device": "~5.4.0",
|
|
36
|
+
"expo-document-picker": "~11.5.0",
|
|
37
|
+
"expo-face-detector": "~12.2.0",
|
|
38
|
+
"expo-file-system": "~15.4.0",
|
|
39
|
+
"expo-font": "~11.4.0",
|
|
40
|
+
"expo-gl": "~13.0.0",
|
|
41
41
|
"expo-google-app-auth": "~8.3.0",
|
|
42
|
-
"expo-haptics": "~12.
|
|
43
|
-
"expo-image": "~1.
|
|
44
|
-
"expo-image-loader": "~4.
|
|
45
|
-
"expo-image-manipulator": "~11.
|
|
46
|
-
"expo-image-picker": "~14.
|
|
47
|
-
"expo-in-app-purchases": "~14.
|
|
48
|
-
"expo-intent-launcher": "~10.
|
|
49
|
-
"expo-keep-awake": "~12.
|
|
50
|
-
"expo-linear-gradient": "~12.
|
|
51
|
-
"expo-linking": "~
|
|
52
|
-
"expo-local-authentication": "~13.4.
|
|
53
|
-
"expo-localization": "~14.
|
|
54
|
-
"expo-location": "~
|
|
55
|
-
"expo-mail-composer": "~12.
|
|
56
|
-
"expo-media-library": "~15.
|
|
57
|
-
"expo-module-template": "~10.
|
|
58
|
-
"expo-modules-core": "~1.
|
|
59
|
-
"expo-navigation-bar": "~2.
|
|
60
|
-
"expo-network": "~5.
|
|
61
|
-
"expo-notifications": "~0.
|
|
62
|
-
"expo-permissions": "~14.
|
|
63
|
-
"expo-print": "~12.
|
|
64
|
-
"expo-random": "~13.
|
|
65
|
-
"expo-screen-capture": "~5.
|
|
66
|
-
"expo-screen-orientation": "~
|
|
67
|
-
"expo-secure-store": "~12.
|
|
68
|
-
"expo-sensors": "~12.
|
|
69
|
-
"expo-sharing": "~11.
|
|
70
|
-
"expo-sms": "~11.
|
|
71
|
-
"expo-speech": "~11.
|
|
72
|
-
"expo-splash-screen": "~0.
|
|
73
|
-
"expo-sqlite": "~11.
|
|
74
|
-
"expo-status-bar": "~1.
|
|
75
|
-
"expo-store-review": "~6.
|
|
76
|
-
"expo-system-ui": "~2.
|
|
77
|
-
"expo-task-manager": "~11.
|
|
42
|
+
"expo-haptics": "~12.4.0",
|
|
43
|
+
"expo-image": "~1.3.0",
|
|
44
|
+
"expo-image-loader": "~4.3.0",
|
|
45
|
+
"expo-image-manipulator": "~11.3.0",
|
|
46
|
+
"expo-image-picker": "~14.3.0",
|
|
47
|
+
"expo-in-app-purchases": "~14.3.0",
|
|
48
|
+
"expo-intent-launcher": "~10.7.0",
|
|
49
|
+
"expo-keep-awake": "~12.3.0",
|
|
50
|
+
"expo-linear-gradient": "~12.3.0",
|
|
51
|
+
"expo-linking": "~5.0.0",
|
|
52
|
+
"expo-local-authentication": "~13.4.1",
|
|
53
|
+
"expo-localization": "~14.3.0",
|
|
54
|
+
"expo-location": "~16.0.0",
|
|
55
|
+
"expo-mail-composer": "~12.3.0",
|
|
56
|
+
"expo-media-library": "~15.4.0",
|
|
57
|
+
"expo-module-template": "~10.9.0",
|
|
58
|
+
"expo-modules-core": "~1.5.0",
|
|
59
|
+
"expo-navigation-bar": "~2.3.0",
|
|
60
|
+
"expo-network": "~5.4.0",
|
|
61
|
+
"expo-notifications": "~0.20.0",
|
|
62
|
+
"expo-permissions": "~14.2.0",
|
|
63
|
+
"expo-print": "~12.4.0",
|
|
64
|
+
"expo-random": "~13.2.0",
|
|
65
|
+
"expo-screen-capture": "~5.3.0",
|
|
66
|
+
"expo-screen-orientation": "~6.0.0",
|
|
67
|
+
"expo-secure-store": "~12.3.0",
|
|
68
|
+
"expo-sensors": "~12.3.0",
|
|
69
|
+
"expo-sharing": "~11.5.0",
|
|
70
|
+
"expo-sms": "~11.4.0",
|
|
71
|
+
"expo-speech": "~11.3.0",
|
|
72
|
+
"expo-splash-screen": "~0.20.0",
|
|
73
|
+
"expo-sqlite": "~11.3.0",
|
|
74
|
+
"expo-status-bar": "~1.6.0",
|
|
75
|
+
"expo-store-review": "~6.4.0",
|
|
76
|
+
"expo-system-ui": "~2.4.0",
|
|
77
|
+
"expo-task-manager": "~11.3.0",
|
|
78
78
|
"expo-tracking-transparency": "~3.1.0",
|
|
79
|
-
"expo-updates": "~0.17.
|
|
80
|
-
"expo-video-thumbnails": "~7.
|
|
81
|
-
"expo-web-browser": "~12.
|
|
82
|
-
"lottie-react-native": "5.1.
|
|
79
|
+
"expo-updates": "~0.17.1",
|
|
80
|
+
"expo-video-thumbnails": "~7.4.0",
|
|
81
|
+
"expo-web-browser": "~12.3.0",
|
|
82
|
+
"lottie-react-native": "5.1.6",
|
|
83
83
|
"react": "18.2.0",
|
|
84
84
|
"react-dom": "18.2.0",
|
|
85
|
-
"react-native": "0.
|
|
85
|
+
"react-native": "0.72.0-rc.6",
|
|
86
86
|
"react-native-web": "~0.18.10",
|
|
87
87
|
"react-native-branch": "^5.4.0",
|
|
88
|
-
"react-native-gesture-handler": "~2.
|
|
88
|
+
"react-native-gesture-handler": "~2.12.0",
|
|
89
89
|
"react-native-get-random-values": "~1.8.0",
|
|
90
|
-
"react-native-maps": "1.
|
|
91
|
-
"react-native-pager-view": "6.
|
|
92
|
-
"react-native-reanimated": "~3.0
|
|
90
|
+
"react-native-maps": "1.7.1",
|
|
91
|
+
"react-native-pager-view": "6.2.0",
|
|
92
|
+
"react-native-reanimated": "~3.3.0",
|
|
93
93
|
"react-native-screens": "~3.20.0",
|
|
94
|
-
"react-native-safe-area-context": "4.5.
|
|
94
|
+
"react-native-safe-area-context": "4.5.3",
|
|
95
95
|
"react-native-shared-element": "0.8.8",
|
|
96
|
-
"react-native-svg": "13.
|
|
97
|
-
"react-native-view-shot": "3.
|
|
98
|
-
"react-native-webview": "
|
|
99
|
-
"sentry-expo": "~
|
|
100
|
-
"unimodules-app-loader": "~4.
|
|
96
|
+
"react-native-svg": "13.9.0",
|
|
97
|
+
"react-native-view-shot": "3.6.0",
|
|
98
|
+
"react-native-webview": "13.2.2",
|
|
99
|
+
"sentry-expo": "~7.0.0",
|
|
100
|
+
"unimodules-app-loader": "~4.2.0",
|
|
101
101
|
"unimodules-image-loader-interface": "~6.1.0",
|
|
102
|
-
"@shopify/react-native-skia": "0.1.
|
|
103
|
-
"@shopify/flash-list": "1.4.
|
|
104
|
-
"@sentry/react-native": "
|
|
102
|
+
"@shopify/react-native-skia": "0.1.193",
|
|
103
|
+
"@shopify/flash-list": "1.4.3",
|
|
104
|
+
"@sentry/react-native": "5.5.0"
|
|
105
105
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo",
|
|
3
|
-
"version": "49.0.0-alpha.
|
|
3
|
+
"version": "49.0.0-alpha.5",
|
|
4
4
|
"description": "The Expo SDK",
|
|
5
5
|
"main": "build/Expo.js",
|
|
6
6
|
"module": "build/Expo.js",
|
|
@@ -58,19 +58,19 @@
|
|
|
58
58
|
"homepage": "https://github.com/expo/expo/tree/main/packages/expo",
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@babel/runtime": "^7.20.0",
|
|
61
|
-
"@expo/cli": "0.
|
|
61
|
+
"@expo/cli": "0.10.0",
|
|
62
62
|
"@expo/vector-icons": "^13.0.0",
|
|
63
|
-
"@expo/config-plugins": "7.
|
|
64
|
-
"@expo/config": "8.0
|
|
65
|
-
"babel-preset-expo": "~9.
|
|
66
|
-
"expo-application": "~5.
|
|
67
|
-
"expo-asset": "~8.
|
|
68
|
-
"expo-constants": "~14.
|
|
69
|
-
"expo-file-system": "~15.
|
|
70
|
-
"expo-font": "~11.
|
|
71
|
-
"expo-keep-awake": "~12.
|
|
72
|
-
"expo-modules-autolinking": "1.
|
|
73
|
-
"expo-modules-core": "1.
|
|
63
|
+
"@expo/config-plugins": "7.2.0",
|
|
64
|
+
"@expo/config": "8.1.0",
|
|
65
|
+
"babel-preset-expo": "~9.5.0",
|
|
66
|
+
"expo-application": "~5.3.0",
|
|
67
|
+
"expo-asset": "~8.10.0",
|
|
68
|
+
"expo-constants": "~14.4.0",
|
|
69
|
+
"expo-file-system": "~15.4.0",
|
|
70
|
+
"expo-font": "~11.4.0",
|
|
71
|
+
"expo-keep-awake": "~12.3.0",
|
|
72
|
+
"expo-modules-autolinking": "1.5.0",
|
|
73
|
+
"expo-modules-core": "1.5.0",
|
|
74
74
|
"fbemitter": "^3.0.0",
|
|
75
75
|
"invariant": "^2.2.4",
|
|
76
76
|
"md5-file": "^3.2.3",
|
|
@@ -84,10 +84,10 @@
|
|
|
84
84
|
"@types/react": "~18.0.14",
|
|
85
85
|
"@types/react-test-renderer": "^18.0.0",
|
|
86
86
|
"@types/uuid": "^3.4.7",
|
|
87
|
-
"expo-module-scripts": "^3.0.
|
|
87
|
+
"expo-module-scripts": "^3.0.9",
|
|
88
88
|
"react": "18.2.0",
|
|
89
89
|
"react-dom": "18.2.0",
|
|
90
|
-
"react-native": "0.
|
|
90
|
+
"react-native": "0.72.0-rc.6"
|
|
91
91
|
},
|
|
92
|
-
"gitHead": "
|
|
92
|
+
"gitHead": "fa5ecca8251986b9f197cc14074eec0ab6dfb6db"
|
|
93
93
|
}
|
package/react-native.config.js
CHANGED
|
@@ -1,12 +1,56 @@
|
|
|
1
|
+
const findProjectRoot = require('@react-native-community/cli-tools').findProjectRoot;
|
|
2
|
+
const fs = require('fs');
|
|
1
3
|
const path = require('path');
|
|
2
4
|
|
|
5
|
+
const projectRoot = findProjectRoot();
|
|
6
|
+
|
|
7
|
+
function isMatchedInFile(filePath, regexp) {
|
|
8
|
+
const contents = fs.readFileSync(filePath, 'utf8');
|
|
9
|
+
return !!contents.match(regexp);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Checks if expo-modules-autolinking is setup on iOS
|
|
14
|
+
*/
|
|
15
|
+
function isExpoModulesInstalledIos(projectRoot) {
|
|
16
|
+
const podfilePath = path.join(projectRoot, 'ios', 'Podfile');
|
|
17
|
+
if (!fs.existsSync(podfilePath)) {
|
|
18
|
+
// Assumes true for managed apps
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
return isMatchedInFile(
|
|
22
|
+
podfilePath,
|
|
23
|
+
/^\s*require File.join\(File\.dirname\(`node --print "require\.resolve\('expo\/package\.json'\)"`\), "scripts\/autolinking"\)\s*$/m
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Checks if expo-modules-autolinking is setup on Android
|
|
29
|
+
*/
|
|
30
|
+
function isExpoModulesInstalledAndroid(projectRoot) {
|
|
31
|
+
const gradlePath = path.join(projectRoot, 'android', 'settings.gradle');
|
|
32
|
+
if (!fs.existsSync(gradlePath)) {
|
|
33
|
+
// Assumes true for managed apps
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
return isMatchedInFile(
|
|
37
|
+
gradlePath,
|
|
38
|
+
/^\s*apply from: (new File|file)\(\["node", "--print", "require\.resolve\('expo\/package.json'\)"\]\.execute\(null, rootDir\)\.text\.trim\(\), "\.\.\/scripts\/autolinking\.gradle"\);?\s*$/m
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
3
42
|
module.exports = {
|
|
4
43
|
dependency: {
|
|
5
44
|
platforms: {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
45
|
+
// To make Expo CLI works on bare react-native projects without installing Expo Modules, we disable autolinking in this case.
|
|
46
|
+
ios: !isExpoModulesInstalledIos(projectRoot) ? null : {},
|
|
47
|
+
android: !isExpoModulesInstalledAndroid(projectRoot)
|
|
48
|
+
? null
|
|
49
|
+
: {
|
|
50
|
+
packageImportPath: 'import expo.modules.ExpoModulesPackage;',
|
|
51
|
+
},
|
|
52
|
+
macos: null,
|
|
53
|
+
windows: null,
|
|
10
54
|
},
|
|
11
55
|
},
|
|
12
56
|
};
|