expo-build-properties 1.0.11-canary-20251216-6e1f9a7 → 2.0.0-canary-20251223-b83b31e
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/CHANGELOG.md +4 -0
- package/build/android.js +9 -9
- package/build/ios.js +9 -10
- package/build/pluginConfig.d.ts +18 -14
- package/build/pluginConfig.js +2 -2
- package/package.json +3 -3
- package/src/android.ts +13 -14
- package/src/ios.ts +12 -13
- package/src/pluginConfig.ts +22 -16
package/CHANGELOG.md
CHANGED
|
@@ -4,8 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
### 🛠 Breaking changes
|
|
6
6
|
|
|
7
|
+
- Remove deprecated `android.newArchEnabled` and `ios.newArchEnabled` properties. ([#41684](https://github.com/expo/expo/pull/41684) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
8
|
+
|
|
7
9
|
### 🎉 New features
|
|
8
10
|
|
|
11
|
+
- Add support for enabling Hermes V1 ([#41715](https://github.com/expo/expo/pull/41715) by [@gabrieldonadel](https://github.com/gabrieldonadel))
|
|
12
|
+
|
|
9
13
|
### 🐛 Bug fixes
|
|
10
14
|
|
|
11
15
|
### 💡 Others
|
package/build/android.js
CHANGED
|
@@ -13,15 +13,6 @@ const androidQueryUtils_1 = require("./androidQueryUtils");
|
|
|
13
13
|
const fileContentsUtils_1 = require("./fileContentsUtils");
|
|
14
14
|
const { createBuildGradlePropsConfigPlugin } = config_plugins_1.AndroidConfig.BuildProperties;
|
|
15
15
|
exports.withAndroidBuildProperties = createBuildGradlePropsConfigPlugin([
|
|
16
|
-
{
|
|
17
|
-
propName: 'newArchEnabled',
|
|
18
|
-
propValueGetter: (config) => {
|
|
19
|
-
if (config.android?.newArchEnabled !== undefined) {
|
|
20
|
-
config_plugins_1.WarningAggregator.addWarningAndroid('withAndroidBuildProperties', 'android.newArchEnabled is deprecated, use app config `newArchEnabled` instead.', 'https://docs.expo.dev/versions/latest/config/app/#newarchenabled');
|
|
21
|
-
}
|
|
22
|
-
return config.android?.newArchEnabled?.toString();
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
16
|
{
|
|
26
17
|
propName: 'android.minSdkVersion',
|
|
27
18
|
propValueGetter: (config) => config.android?.minSdkVersion?.toString(),
|
|
@@ -110,6 +101,15 @@ exports.withAndroidBuildProperties = createBuildGradlePropsConfigPlugin([
|
|
|
110
101
|
propName: 'exclusiveEnterpriseRepository',
|
|
111
102
|
propValueGetter: (config) => config.android?.exclusiveMavenMirror,
|
|
112
103
|
},
|
|
104
|
+
{
|
|
105
|
+
propName: 'hermesV1Enabled',
|
|
106
|
+
propValueGetter: (config) => {
|
|
107
|
+
if (config.android?.useHermesV1 && config.android?.buildReactNativeFromSource !== true) {
|
|
108
|
+
config_plugins_1.WarningAggregator.addWarningAndroid('withAndroidBuildProperties', 'Hermes V1 requires building React Native from source. Set `buildReactNativeFromSource` to `true` to enable it.');
|
|
109
|
+
}
|
|
110
|
+
return config.android?.useHermesV1?.toString();
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
113
|
], 'withAndroidBuildProperties');
|
|
114
114
|
/**
|
|
115
115
|
* Appends `props.android.extraProguardRules` content into `android/app/proguard-rules.pro`
|
package/build/ios.js
CHANGED
|
@@ -4,16 +4,6 @@ exports.withIosInfoPlist = exports.withIosDeploymentTarget = exports.withIosBuil
|
|
|
4
4
|
const config_plugins_1 = require("expo/config-plugins");
|
|
5
5
|
const { createBuildPodfilePropsConfigPlugin } = config_plugins_1.IOSConfig.BuildProperties;
|
|
6
6
|
exports.withIosBuildProperties = createBuildPodfilePropsConfigPlugin([
|
|
7
|
-
{
|
|
8
|
-
propName: 'newArchEnabled',
|
|
9
|
-
propValueGetter: (config) => {
|
|
10
|
-
if (config.ios?.newArchEnabled !== undefined) {
|
|
11
|
-
config_plugins_1.WarningAggregator.addWarningIOS('withIosBuildProperties', 'ios.newArchEnabled is deprecated, use app config `newArchEnabled` instead.\n' +
|
|
12
|
-
'https://docs.expo.dev/versions/latest/config/app/#newarchenabled');
|
|
13
|
-
}
|
|
14
|
-
return config.ios?.newArchEnabled?.toString();
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
7
|
{
|
|
18
8
|
propName: 'ios.useFrameworks',
|
|
19
9
|
propValueGetter: (config) => config.ios?.useFrameworks,
|
|
@@ -45,6 +35,15 @@ exports.withIosBuildProperties = createBuildPodfilePropsConfigPlugin([
|
|
|
45
35
|
propName: 'ios.buildReactNativeFromSource',
|
|
46
36
|
propValueGetter: (config) => config.ios?.buildReactNativeFromSource?.toString(),
|
|
47
37
|
},
|
|
38
|
+
{
|
|
39
|
+
propName: 'expo.useHermesV1',
|
|
40
|
+
propValueGetter: (config) => {
|
|
41
|
+
if (config.ios?.useHermesV1 && config.ios?.buildReactNativeFromSource !== true) {
|
|
42
|
+
config_plugins_1.WarningAggregator.addWarningIOS('withIosBuildProperties', 'Hermes V1 requires building React Native from source. Set `buildReactNativeFromSource` to `true` to enable it.');
|
|
43
|
+
}
|
|
44
|
+
return config.ios?.useHermesV1?.toString();
|
|
45
|
+
},
|
|
46
|
+
},
|
|
48
47
|
], 'withIosBuildProperties');
|
|
49
48
|
const withIosDeploymentTarget = (config, props) => {
|
|
50
49
|
const deploymentTarget = props.ios?.deploymentTarget;
|
package/build/pluginConfig.d.ts
CHANGED
|
@@ -18,13 +18,6 @@ export interface PluginConfigType {
|
|
|
18
18
|
* @platform android
|
|
19
19
|
*/
|
|
20
20
|
export interface PluginConfigTypeAndroid {
|
|
21
|
-
/**
|
|
22
|
-
* Enable React Native New Architecture for Android platform.
|
|
23
|
-
*
|
|
24
|
-
* @deprecated Use [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) in
|
|
25
|
-
* app config file instead.
|
|
26
|
-
*/
|
|
27
|
-
newArchEnabled?: boolean;
|
|
28
21
|
/**
|
|
29
22
|
* Override the default `minSdkVersion` version number in **build.gradle**.
|
|
30
23
|
* */
|
|
@@ -184,6 +177,15 @@ export interface PluginConfigTypeAndroid {
|
|
|
184
177
|
* @default 'stable'
|
|
185
178
|
*/
|
|
186
179
|
reactNativeReleaseLevel?: 'stable' | 'canary' | 'experimental';
|
|
180
|
+
/**
|
|
181
|
+
* Enable the experimental Hermes V1 engine.
|
|
182
|
+
*
|
|
183
|
+
* In React Native 0.83, using Hermes V1 requires building React Native from source.
|
|
184
|
+
* You must set `buildReactNativeFromSource` to `true` when enabling this option.
|
|
185
|
+
*
|
|
186
|
+
* @default false
|
|
187
|
+
*/
|
|
188
|
+
useHermesV1?: boolean;
|
|
187
189
|
}
|
|
188
190
|
/**
|
|
189
191
|
* @platform android
|
|
@@ -260,13 +262,6 @@ export type AndroidMavenRepositoryCredentials = AndroidMavenRepositoryPasswordCr
|
|
|
260
262
|
* @platform ios
|
|
261
263
|
*/
|
|
262
264
|
export interface PluginConfigTypeIos {
|
|
263
|
-
/**
|
|
264
|
-
* Enable React Native New Architecture for iOS platform.
|
|
265
|
-
*
|
|
266
|
-
* @deprecated Use [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) in
|
|
267
|
-
* app config file instead.
|
|
268
|
-
*/
|
|
269
|
-
newArchEnabled?: boolean;
|
|
270
265
|
/**
|
|
271
266
|
* Override the default iOS "Deployment Target" version in the following projects:
|
|
272
267
|
* - in CocoaPods projects,
|
|
@@ -353,6 +348,15 @@ export interface PluginConfigTypeIos {
|
|
|
353
348
|
* @default 'stable'
|
|
354
349
|
*/
|
|
355
350
|
reactNativeReleaseLevel?: 'stable' | 'canary' | 'experimental';
|
|
351
|
+
/**
|
|
352
|
+
* Enable the experimental Hermes V1 engine.
|
|
353
|
+
*
|
|
354
|
+
* In React Native 0.83, using Hermes V1 requires building React Native from source.
|
|
355
|
+
* You must set `buildReactNativeFromSource` to `true` when enabling this option.
|
|
356
|
+
*
|
|
357
|
+
* @default false
|
|
358
|
+
*/
|
|
359
|
+
useHermesV1?: boolean;
|
|
356
360
|
}
|
|
357
361
|
/**
|
|
358
362
|
* Interface representing extra CocoaPods dependency.
|
package/build/pluginConfig.js
CHANGED
|
@@ -27,7 +27,6 @@ const schema = {
|
|
|
27
27
|
android: {
|
|
28
28
|
type: 'object',
|
|
29
29
|
properties: {
|
|
30
|
-
newArchEnabled: { type: 'boolean', nullable: true },
|
|
31
30
|
minSdkVersion: { type: 'integer', nullable: true },
|
|
32
31
|
compileSdkVersion: { type: 'integer', nullable: true },
|
|
33
32
|
targetSdkVersion: { type: 'integer', nullable: true },
|
|
@@ -146,13 +145,13 @@ const schema = {
|
|
|
146
145
|
enum: ['stable', 'canary', 'experimental'],
|
|
147
146
|
nullable: true,
|
|
148
147
|
},
|
|
148
|
+
useHermesV1: { type: 'boolean', nullable: true },
|
|
149
149
|
},
|
|
150
150
|
nullable: true,
|
|
151
151
|
},
|
|
152
152
|
ios: {
|
|
153
153
|
type: 'object',
|
|
154
154
|
properties: {
|
|
155
|
-
newArchEnabled: { type: 'boolean', nullable: true },
|
|
156
155
|
deploymentTarget: { type: 'string', pattern: '\\d+\\.\\d+', nullable: true },
|
|
157
156
|
useFrameworks: { type: 'string', enum: ['static', 'dynamic'], nullable: true },
|
|
158
157
|
forceStaticLinking: { type: 'array', items: { type: 'string' }, nullable: true },
|
|
@@ -187,6 +186,7 @@ const schema = {
|
|
|
187
186
|
enum: ['stable', 'canary', 'experimental'],
|
|
188
187
|
nullable: true,
|
|
189
188
|
},
|
|
189
|
+
useHermesV1: { type: 'boolean', nullable: true },
|
|
190
190
|
},
|
|
191
191
|
nullable: true,
|
|
192
192
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-build-properties",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-canary-20251223-b83b31e",
|
|
4
4
|
"description": "Config plugin to customize native build properties on prebuild",
|
|
5
5
|
"main": "build/withBuildProperties.js",
|
|
6
6
|
"types": "build/withBuildProperties.d.ts",
|
|
@@ -35,9 +35,9 @@
|
|
|
35
35
|
"semver": "^7.6.0"
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
-
"expo-module-scripts": "5.1.0-canary-
|
|
38
|
+
"expo-module-scripts": "5.1.0-canary-20251223-b83b31e"
|
|
39
39
|
},
|
|
40
40
|
"peerDependencies": {
|
|
41
|
-
"expo": "55.0.0-canary-
|
|
41
|
+
"expo": "55.0.0-canary-20251223-b83b31e"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/android.ts
CHANGED
|
@@ -19,20 +19,6 @@ const { createBuildGradlePropsConfigPlugin } = AndroidConfig.BuildProperties;
|
|
|
19
19
|
|
|
20
20
|
export const withAndroidBuildProperties = createBuildGradlePropsConfigPlugin<PluginConfigType>(
|
|
21
21
|
[
|
|
22
|
-
{
|
|
23
|
-
propName: 'newArchEnabled',
|
|
24
|
-
propValueGetter: (config) => {
|
|
25
|
-
if (config.android?.newArchEnabled !== undefined) {
|
|
26
|
-
WarningAggregator.addWarningAndroid(
|
|
27
|
-
'withAndroidBuildProperties',
|
|
28
|
-
'android.newArchEnabled is deprecated, use app config `newArchEnabled` instead.',
|
|
29
|
-
'https://docs.expo.dev/versions/latest/config/app/#newarchenabled'
|
|
30
|
-
);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
return config.android?.newArchEnabled?.toString();
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
22
|
{
|
|
37
23
|
propName: 'android.minSdkVersion',
|
|
38
24
|
propValueGetter: (config) => config.android?.minSdkVersion?.toString(),
|
|
@@ -121,6 +107,19 @@ export const withAndroidBuildProperties = createBuildGradlePropsConfigPlugin<Plu
|
|
|
121
107
|
propName: 'exclusiveEnterpriseRepository',
|
|
122
108
|
propValueGetter: (config) => config.android?.exclusiveMavenMirror,
|
|
123
109
|
},
|
|
110
|
+
{
|
|
111
|
+
propName: 'hermesV1Enabled',
|
|
112
|
+
propValueGetter: (config) => {
|
|
113
|
+
if (config.android?.useHermesV1 && config.android?.buildReactNativeFromSource !== true) {
|
|
114
|
+
WarningAggregator.addWarningAndroid(
|
|
115
|
+
'withAndroidBuildProperties',
|
|
116
|
+
'Hermes V1 requires building React Native from source. Set `buildReactNativeFromSource` to `true` to enable it.'
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
return config.android?.useHermesV1?.toString();
|
|
121
|
+
},
|
|
122
|
+
},
|
|
124
123
|
],
|
|
125
124
|
'withAndroidBuildProperties'
|
|
126
125
|
);
|
package/src/ios.ts
CHANGED
|
@@ -13,19 +13,6 @@ const { createBuildPodfilePropsConfigPlugin } = IOSConfig.BuildProperties;
|
|
|
13
13
|
|
|
14
14
|
export const withIosBuildProperties = createBuildPodfilePropsConfigPlugin<PluginConfigType>(
|
|
15
15
|
[
|
|
16
|
-
{
|
|
17
|
-
propName: 'newArchEnabled',
|
|
18
|
-
propValueGetter: (config) => {
|
|
19
|
-
if (config.ios?.newArchEnabled !== undefined) {
|
|
20
|
-
WarningAggregator.addWarningIOS(
|
|
21
|
-
'withIosBuildProperties',
|
|
22
|
-
'ios.newArchEnabled is deprecated, use app config `newArchEnabled` instead.\n' +
|
|
23
|
-
'https://docs.expo.dev/versions/latest/config/app/#newarchenabled'
|
|
24
|
-
);
|
|
25
|
-
}
|
|
26
|
-
return config.ios?.newArchEnabled?.toString();
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
16
|
{
|
|
30
17
|
propName: 'ios.useFrameworks',
|
|
31
18
|
propValueGetter: (config) => config.ios?.useFrameworks,
|
|
@@ -58,6 +45,18 @@ export const withIosBuildProperties = createBuildPodfilePropsConfigPlugin<Plugin
|
|
|
58
45
|
propName: 'ios.buildReactNativeFromSource',
|
|
59
46
|
propValueGetter: (config) => config.ios?.buildReactNativeFromSource?.toString(),
|
|
60
47
|
},
|
|
48
|
+
{
|
|
49
|
+
propName: 'expo.useHermesV1',
|
|
50
|
+
propValueGetter: (config) => {
|
|
51
|
+
if (config.ios?.useHermesV1 && config.ios?.buildReactNativeFromSource !== true) {
|
|
52
|
+
WarningAggregator.addWarningIOS(
|
|
53
|
+
'withIosBuildProperties',
|
|
54
|
+
'Hermes V1 requires building React Native from source. Set `buildReactNativeFromSource` to `true` to enable it.'
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
return config.ios?.useHermesV1?.toString();
|
|
58
|
+
},
|
|
59
|
+
},
|
|
61
60
|
],
|
|
62
61
|
'withIosBuildProperties'
|
|
63
62
|
);
|
package/src/pluginConfig.ts
CHANGED
|
@@ -38,13 +38,6 @@ export interface PluginConfigType {
|
|
|
38
38
|
* @platform android
|
|
39
39
|
*/
|
|
40
40
|
export interface PluginConfigTypeAndroid {
|
|
41
|
-
/**
|
|
42
|
-
* Enable React Native New Architecture for Android platform.
|
|
43
|
-
*
|
|
44
|
-
* @deprecated Use [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) in
|
|
45
|
-
* app config file instead.
|
|
46
|
-
*/
|
|
47
|
-
newArchEnabled?: boolean;
|
|
48
41
|
/**
|
|
49
42
|
* Override the default `minSdkVersion` version number in **build.gradle**.
|
|
50
43
|
* */
|
|
@@ -216,6 +209,16 @@ export interface PluginConfigTypeAndroid {
|
|
|
216
209
|
* @default 'stable'
|
|
217
210
|
*/
|
|
218
211
|
reactNativeReleaseLevel?: 'stable' | 'canary' | 'experimental';
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Enable the experimental Hermes V1 engine.
|
|
215
|
+
*
|
|
216
|
+
* In React Native 0.83, using Hermes V1 requires building React Native from source.
|
|
217
|
+
* You must set `buildReactNativeFromSource` to `true` when enabling this option.
|
|
218
|
+
*
|
|
219
|
+
* @default false
|
|
220
|
+
*/
|
|
221
|
+
useHermesV1?: boolean;
|
|
219
222
|
}
|
|
220
223
|
|
|
221
224
|
// @docsMissing
|
|
@@ -307,13 +310,6 @@ export type AndroidMavenRepositoryCredentials =
|
|
|
307
310
|
* @platform ios
|
|
308
311
|
*/
|
|
309
312
|
export interface PluginConfigTypeIos {
|
|
310
|
-
/**
|
|
311
|
-
* Enable React Native New Architecture for iOS platform.
|
|
312
|
-
*
|
|
313
|
-
* @deprecated Use [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) in
|
|
314
|
-
* app config file instead.
|
|
315
|
-
*/
|
|
316
|
-
newArchEnabled?: boolean;
|
|
317
313
|
/**
|
|
318
314
|
* Override the default iOS "Deployment Target" version in the following projects:
|
|
319
315
|
* - in CocoaPods projects,
|
|
@@ -410,6 +406,16 @@ export interface PluginConfigTypeIos {
|
|
|
410
406
|
* @default 'stable'
|
|
411
407
|
*/
|
|
412
408
|
reactNativeReleaseLevel?: 'stable' | 'canary' | 'experimental';
|
|
409
|
+
|
|
410
|
+
/**
|
|
411
|
+
* Enable the experimental Hermes V1 engine.
|
|
412
|
+
*
|
|
413
|
+
* In React Native 0.83, using Hermes V1 requires building React Native from source.
|
|
414
|
+
* You must set `buildReactNativeFromSource` to `true` when enabling this option.
|
|
415
|
+
*
|
|
416
|
+
* @default false
|
|
417
|
+
*/
|
|
418
|
+
useHermesV1?: boolean;
|
|
413
419
|
}
|
|
414
420
|
|
|
415
421
|
/**
|
|
@@ -600,7 +606,6 @@ const schema: JSONSchemaType<PluginConfigType> = {
|
|
|
600
606
|
android: {
|
|
601
607
|
type: 'object',
|
|
602
608
|
properties: {
|
|
603
|
-
newArchEnabled: { type: 'boolean', nullable: true },
|
|
604
609
|
minSdkVersion: { type: 'integer', nullable: true },
|
|
605
610
|
compileSdkVersion: { type: 'integer', nullable: true },
|
|
606
611
|
targetSdkVersion: { type: 'integer', nullable: true },
|
|
@@ -727,13 +732,13 @@ const schema: JSONSchemaType<PluginConfigType> = {
|
|
|
727
732
|
enum: ['stable', 'canary', 'experimental'],
|
|
728
733
|
nullable: true,
|
|
729
734
|
},
|
|
735
|
+
useHermesV1: { type: 'boolean', nullable: true },
|
|
730
736
|
},
|
|
731
737
|
nullable: true,
|
|
732
738
|
},
|
|
733
739
|
ios: {
|
|
734
740
|
type: 'object',
|
|
735
741
|
properties: {
|
|
736
|
-
newArchEnabled: { type: 'boolean', nullable: true },
|
|
737
742
|
deploymentTarget: { type: 'string', pattern: '\\d+\\.\\d+', nullable: true },
|
|
738
743
|
useFrameworks: { type: 'string', enum: ['static', 'dynamic'], nullable: true },
|
|
739
744
|
forceStaticLinking: { type: 'array', items: { type: 'string' }, nullable: true },
|
|
@@ -770,6 +775,7 @@ const schema: JSONSchemaType<PluginConfigType> = {
|
|
|
770
775
|
enum: ['stable', 'canary', 'experimental'],
|
|
771
776
|
nullable: true,
|
|
772
777
|
},
|
|
778
|
+
useHermesV1: { type: 'boolean', nullable: true },
|
|
773
779
|
},
|
|
774
780
|
nullable: true,
|
|
775
781
|
},
|