expo-build-properties 0.12.4 → 0.13.0

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 CHANGED
@@ -10,19 +10,34 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
- ## 0.12.4 — 2024-07-30
13
+ ## 0.13.0 — 2024-10-22
14
+
15
+ ### 🛠 Breaking changes
16
+
17
+ - Bumped iOS deployment target to 15.1. ([#30840](https://github.com/expo/expo/pull/30840) by [@tsapeta](https://github.com/tsapeta))
18
+
19
+ ### 💡 Others
20
+
21
+ - Export missing types. ([#29401](https://github.com/expo/expo/pull/29401) by [@Simek](https://github.com/Simek))
22
+ - Deprecate `android.newArchEnabled` and `ios.newArchEnabled` in favor of app config `newArchEnabled`. ([#31963](https://github.com/expo/expo/pull/31963) by [@gabrieldonadel](https://github.com/gabrieldonadel))
23
+
24
+ ## 0.12.5 - 2024-08-07
25
+
26
+ _This version does not introduce any user-facing changes._
27
+
28
+ ## 0.12.4 - 2024-07-30
14
29
 
15
30
  ### 🎉 New features
16
31
 
17
32
  - Add `android.enablePngCrunchInReleaseBuilds` to enable toggling PNG crunching in release builds. ([#30699](https://github.com/expo/expo/pull/30699) by [@brentvatne](https://github.com/brentvatne))
18
33
 
19
- ## 0.12.3 — 2024-06-06
34
+ ## 0.12.3 - 2024-06-06
20
35
 
21
36
  ### 🎉 New features
22
37
 
23
38
  - `ios.privacyManifestAggregationEnabled` is now enabled by default. ([#29439](https://github.com/expo/expo/pull/29439) by [@alanjhughes](https://github.com/alanjhughes))
24
39
 
25
- ## 0.12.2 — 2024-06-05
40
+ ## 0.12.2 - 2024-06-05
26
41
 
27
42
  ### 🐛 Bug fixes
28
43
 
package/README.md CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  ## API documentation
6
6
 
7
- - [Documentation for the main branch][docs-main]
8
- - [Documentation for the latest stable release][docs-stable]
7
+ - [Documentation for the latest stable release](https://docs.expo.dev/versions/latest/sdk/build-properties/)
8
+ - [Documentation for the main branch](https://docs.expo.dev/versions/unversioned/sdk/build-properties/)
9
9
 
10
10
  ### Installation
11
11
 
@@ -39,9 +39,4 @@ Add plugin to `app.json`. For example:
39
39
 
40
40
  ## Contributing
41
41
 
42
- Contributions are very welcome! Please refer to guidelines described in the [contributing guide][../../contributing.md].
43
-
44
- [docs-main]: https://github.com/expo/expo/blob/main/docs/pages/versions/unversioned/sdk/build-properties.mdx
45
- [docs-stable]: https://docs.expo.dev/versions/latest/sdk/build-properties/
46
- [contributing]: https://github.com/expo/expo#contributing
47
- [config-plugins]: https://docs.expo.dev/config-plugins/introduction
42
+ Contributions are very welcome! Please refer to guidelines described in the [contributing guide][https://github.com/expo/expo#contributing].
package/build/android.js CHANGED
@@ -13,7 +13,12 @@ const { createBuildGradlePropsConfigPlugin } = config_plugins_1.AndroidConfig.Bu
13
13
  exports.withAndroidBuildProperties = createBuildGradlePropsConfigPlugin([
14
14
  {
15
15
  propName: 'newArchEnabled',
16
- propValueGetter: (config) => config.android?.newArchEnabled?.toString(),
16
+ propValueGetter: (config) => {
17
+ if (config.android?.newArchEnabled !== undefined) {
18
+ config_plugins_1.WarningAggregator.addWarningAndroid('withAndroidBuildProperties', 'android.newArchEnabled is deprecated, use app config `newArchEnabled` instead.', 'https://docs.expo.dev/versions/latest/config/app/#newarchenabled');
19
+ }
20
+ return config.android?.newArchEnabled?.toString();
21
+ },
17
22
  },
18
23
  {
19
24
  propName: 'android.minSdkVersion',
package/build/ios.js CHANGED
@@ -6,7 +6,12 @@ const { createBuildPodfilePropsConfigPlugin } = config_plugins_1.IOSConfig.Build
6
6
  exports.withIosBuildProperties = createBuildPodfilePropsConfigPlugin([
7
7
  {
8
8
  propName: 'newArchEnabled',
9
- propValueGetter: (config) => config.ios?.newArchEnabled?.toString(),
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.', 'https://docs.expo.dev/versions/latest/config/app/#newarchenabled');
12
+ }
13
+ return config.ios?.newArchEnabled?.toString();
14
+ },
10
15
  },
11
16
  {
12
17
  propName: 'ios.useFrameworks',
@@ -53,8 +58,7 @@ function updateDeploymentTargetXcodeProject(project, deploymentTarget) {
53
58
  .filter(([_, target]) => Target.isTargetOfType(target, Target.TargetType.APPLICATION))
54
59
  .map(([_, target]) => target.buildConfigurationList);
55
60
  for (const buildConfigListId of targetBuildConfigListIds) {
56
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
57
- for (const [_, configurations] of config_plugins_1.IOSConfig.XcodeUtils.getBuildConfigurationsForListId(project, buildConfigListId)) {
61
+ for (const [, configurations] of config_plugins_1.IOSConfig.XcodeUtils.getBuildConfigurationsForListId(project, buildConfigListId)) {
58
62
  const { buildSettings } = configurations;
59
63
  if (buildSettings?.IPHONEOS_DEPLOYMENT_TARGET) {
60
64
  buildSettings.IPHONEOS_DEPLOYMENT_TARGET = deploymentTarget;
@@ -19,6 +19,7 @@ export interface PluginConfigType {
19
19
  */
20
20
  export interface PluginConfigTypeAndroid {
21
21
  /**
22
+ * @deprecated Use app config [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) instead.
22
23
  * Enable React Native new architecture for Android platform.
23
24
  */
24
25
  newArchEnabled?: boolean;
@@ -63,7 +64,7 @@ export interface PluginConfigTypeAndroid {
63
64
  */
64
65
  extraProguardRules?: string;
65
66
  /**
66
- * Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
67
+ * Interface representing available configuration for Android Gradle plugin [`PackagingOptions`](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
67
68
  */
68
69
  packagingOptions?: PluginConfigTypeAndroidPackagingOptions;
69
70
  /**
@@ -75,7 +76,6 @@ export interface PluginConfigTypeAndroid {
75
76
  /**
76
77
  * Add extra maven repositories to all gradle projects.
77
78
  *
78
- *
79
79
  * Takes an array of objects or strings.
80
80
  * Strings are passed as the `url` property of the object with no credentials or authentication scheme.
81
81
  *
@@ -90,7 +90,6 @@ export interface PluginConfigTypeAndroid {
90
90
  * ```
91
91
  *
92
92
  * By using an `AndroidMavenRepository` object, you can specify credentials and an authentication scheme.
93
- *
94
93
  * ```groovy
95
94
  * allprojects {
96
95
  * repositories {
@@ -109,9 +108,6 @@ export interface PluginConfigTypeAndroid {
109
108
  * ```
110
109
  *
111
110
  * @see [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)
112
- *
113
- * @hide For the implementation details,
114
- * this property is actually handled by `expo-modules-autolinking` not the config-plugins inside `expo-build-properties`
115
111
  */
116
112
  extraMavenRepos?: (AndroidMavenRepository | string)[];
117
113
  /**
@@ -138,6 +134,9 @@ export interface PluginConfigTypeAndroid {
138
134
  */
139
135
  manifestQueries?: PluginConfigTypeAndroidQueries;
140
136
  }
137
+ /**
138
+ * @platform android
139
+ */
141
140
  export interface AndroidMavenRepository {
142
141
  /**
143
142
  * The URL of the Maven repository.
@@ -147,7 +146,7 @@ export interface AndroidMavenRepository {
147
146
  * The credentials to use when accessing the Maven repository.
148
147
  * May be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials.
149
148
  *
150
- * @see the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information.
149
+ * @see The authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information.
151
150
  */
152
151
  credentials?: AndroidMavenRepositoryCredentials;
153
152
  /**
@@ -155,26 +154,39 @@ export interface AndroidMavenRepository {
155
154
  */
156
155
  authentication?: 'basic' | 'digest' | 'header';
157
156
  }
158
- interface AndroidMavenRepositoryPasswordCredentials {
157
+ /**
158
+ * @platform android
159
+ */
160
+ export interface AndroidMavenRepositoryPasswordCredentials {
159
161
  username: string;
160
162
  password: string;
161
163
  }
162
- interface AndroidMavenRepositoryHttpHeaderCredentials {
164
+ /**
165
+ * @platform android
166
+ */
167
+ export interface AndroidMavenRepositoryHttpHeaderCredentials {
163
168
  name: string;
164
169
  value: string;
165
170
  }
166
- interface AndroidMavenRepositoryAWSCredentials {
171
+ /**
172
+ * @platform android
173
+ */
174
+ export interface AndroidMavenRepositoryAWSCredentials {
167
175
  accessKey: string;
168
176
  secretKey: string;
169
177
  sessionToken?: string;
170
178
  }
171
- type AndroidMavenRepositoryCredentials = AndroidMavenRepositoryPasswordCredentials | AndroidMavenRepositoryHttpHeaderCredentials | AndroidMavenRepositoryAWSCredentials;
179
+ /**
180
+ * @platform android
181
+ */
182
+ export type AndroidMavenRepositoryCredentials = AndroidMavenRepositoryPasswordCredentials | AndroidMavenRepositoryHttpHeaderCredentials | AndroidMavenRepositoryAWSCredentials;
172
183
  /**
173
184
  * Interface representing available configuration for iOS native build properties.
174
185
  * @platform ios
175
186
  */
176
187
  export interface PluginConfigTypeIos {
177
188
  /**
189
+ * @deprecated Use app config [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) instead.
178
190
  * Enable React Native new architecture for iOS platform.
179
191
  */
180
192
  newArchEnabled?: boolean;
@@ -198,15 +210,22 @@ export interface PluginConfigTypeIos {
198
210
  /**
199
211
  * Add extra CocoaPods dependencies for all targets.
200
212
  *
201
- * This acts like to add the following code to **ios/Podfile**:
213
+ * This configuration is responsible for adding the new Pod entries to **ios/Podfile**.
214
+ *
215
+ * @example
216
+ * Creating entry in the configuration like below:
217
+ * ```json
218
+ * [
219
+ * {
220
+ * name: "Protobuf",
221
+ * version: "~> 3.14.0",
222
+ * }
223
+ * ]
202
224
  * ```
203
- * pod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'
204
- * # e.g.
225
+ * Will produce the following entry in the generated **ios/Podfile**:
226
+ * ```ruby
205
227
  * pod 'Protobuf', '~> 3.14.0'
206
228
  * ```
207
- *
208
- * @hide For the implementation details,
209
- * this property is actually handled by `expo-modules-autolinking` but not the config-plugins inside expo-build-properties.
210
229
  */
211
230
  extraPods?: ExtraIosPodDependency[];
212
231
  /**
@@ -214,8 +233,8 @@ export interface PluginConfigTypeIos {
214
233
  *
215
234
  * This speeds up compiling C++ code by caching the results of previous compilations.
216
235
  *
217
- * @see https://reactnative.dev/docs/build-speed#local-caches
218
- * @see https://ccache.dev/
236
+ * @see [React Native's documentation on local caches](https://reactnative.dev/docs/build-speed#local-caches) and
237
+ * [Ccache documentation](https://ccache.dev/).
219
238
  */
220
239
  ccacheEnabled?: boolean;
221
240
  /**
@@ -223,8 +242,8 @@ export interface PluginConfigTypeIos {
223
242
  * CocoaPods resource bundles. If enabled, the manifests will be merged into a
224
243
  * single file. If not enabled, developers will need to manually aggregate them.
225
244
  *
226
- * @see https://docs.expo.dev/guides/apple-privacy/
227
- * @see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files
245
+ * @see [Privacy manifests](https://docs.expo.dev/guides/apple-privacy/) guide
246
+ * and [Apple's documentation on Privacy manifest files](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files).
228
247
  */
229
248
  privacyManifestAggregationEnabled?: boolean;
230
249
  }
@@ -293,12 +312,17 @@ export interface ExtraIosPodDependency {
293
312
  * Use the bleeding edge version of a Pod.
294
313
  *
295
314
  * @example
296
- * ```
297
- * { "name": "AFNetworking", "git": "https://github.com/gowalla/AFNetworking.git", "tag": "0.7.0" }
315
+ * ```json
316
+ * {
317
+ * "name": "AFNetworking",
318
+ * "git": "https://github.com/gowalla/AFNetworking.git",
319
+ * "tag": "0.7.0"
320
+ * }
298
321
  * ```
299
322
  *
300
323
  * This acts like to add this pod dependency statement:
301
- * ```
324
+ *
325
+ * ```rb
302
326
  * pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
303
327
  * ```
304
328
  */
@@ -317,7 +341,7 @@ export interface ExtraIosPodDependency {
317
341
  commit?: string;
318
342
  }
319
343
  /**
320
- * Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
344
+ * Interface representing available configuration for Android Gradle plugin [`PackagingOptions`](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
321
345
  * @platform android
322
346
  */
323
347
  export interface PluginConfigTypeAndroidPackagingOptions {
@@ -338,13 +362,16 @@ export interface PluginConfigTypeAndroidPackagingOptions {
338
362
  */
339
363
  doNotStrip?: string[];
340
364
  }
365
+ /**
366
+ * @platform android
367
+ */
341
368
  export interface PluginConfigTypeAndroidQueries {
342
369
  /**
343
370
  * Specifies one or more apps that your app intends to access. These other apps might integrate with your app, or your app might use services that these other apps provide.
344
371
  */
345
372
  package?: string[];
346
373
  /**
347
- * Specifies an intent filter signature. Your app can discover other apps that have matching <intent-filter> elements.
374
+ * Specifies an intent filter signature. Your app can discover other apps that have matching `<intent-filter>` elements.
348
375
  * These intents have restrictions compared to typical intent filter signatures.
349
376
  *
350
377
  * @see [Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details
@@ -352,13 +379,16 @@ export interface PluginConfigTypeAndroidQueries {
352
379
  intent?: PluginConfigTypeAndroidQueriesIntent[];
353
380
  /**
354
381
  * Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.
355
- * There are some restrictions on the options that you can include in this <provider> element, compared to a typical <provider> manifest element. You may only specify the android:authorities attribute.
382
+ * There are some restrictions on the options that you can include in this `<provider>` element, compared to a typical `<provider>` manifest element. You may only specify the `android:authorities` attribute.
356
383
  */
357
384
  provider?: string[];
358
385
  }
386
+ /**
387
+ * @platform android
388
+ */
359
389
  export interface PluginConfigTypeAndroidQueriesIntent {
360
390
  /**
361
- * A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW
391
+ * A string naming the action to perform. Usually one of the platform-defined values, such as `ACTION_SEND` or `ACTION_VIEW`.
362
392
  */
363
393
  action?: string;
364
394
  /**
@@ -371,6 +401,9 @@ export interface PluginConfigTypeAndroidQueriesIntent {
371
401
  */
372
402
  category?: string | string[];
373
403
  }
404
+ /**
405
+ * @platform android
406
+ */
374
407
  export interface PluginConfigTypeAndroidQueriesData {
375
408
  /**
376
409
  * Specify a URI scheme that is handled
@@ -389,4 +422,3 @@ export interface PluginConfigTypeAndroidQueriesData {
389
422
  * @ignore
390
423
  */
391
424
  export declare function validateConfig(config: any): PluginConfigType;
392
- export {};
@@ -18,7 +18,7 @@ const EXPO_SDK_MINIMAL_SUPPORTED_VERSIONS = {
18
18
  kotlinVersion: '1.6.10',
19
19
  },
20
20
  ios: {
21
- deploymentTarget: '13.4',
21
+ deploymentTarget: '15.1',
22
22
  },
23
23
  };
24
24
  const schema = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-build-properties",
3
- "version": "0.12.4",
3
+ "version": "0.13.0",
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,10 +35,10 @@
35
35
  "semver": "^7.6.0"
36
36
  },
37
37
  "devDependencies": {
38
- "expo-module-scripts": "^3.0.0"
38
+ "expo-module-scripts": "^4.0.0"
39
39
  },
40
40
  "peerDependencies": {
41
41
  "expo": "*"
42
42
  },
43
- "gitHead": "10eaf729822bf46ab821a000eb961cf8df40b35b"
43
+ "gitHead": "7c7d2362fff23bec26cd145ed34edd9c403551bd"
44
44
  }
package/src/android.ts CHANGED
@@ -2,6 +2,7 @@ import {
2
2
  AndroidConfig,
3
3
  ConfigPlugin,
4
4
  History,
5
+ WarningAggregator,
5
6
  withAndroidManifest,
6
7
  withDangerousMod,
7
8
  } from 'expo/config-plugins';
@@ -18,7 +19,17 @@ export const withAndroidBuildProperties = createBuildGradlePropsConfigPlugin<Plu
18
19
  [
19
20
  {
20
21
  propName: 'newArchEnabled',
21
- propValueGetter: (config) => config.android?.newArchEnabled?.toString(),
22
+ propValueGetter: (config) => {
23
+ if (config.android?.newArchEnabled !== undefined) {
24
+ WarningAggregator.addWarningAndroid(
25
+ 'withAndroidBuildProperties',
26
+ 'android.newArchEnabled is deprecated, use app config `newArchEnabled` instead.',
27
+ 'https://docs.expo.dev/versions/latest/config/app/#newarchenabled'
28
+ );
29
+ }
30
+
31
+ return config.android?.newArchEnabled?.toString();
32
+ },
22
33
  },
23
34
  {
24
35
  propName: 'android.minSdkVersion',
package/src/ios.ts CHANGED
@@ -1,4 +1,10 @@
1
- import { IOSConfig, ConfigPlugin, withXcodeProject, XcodeProject } from 'expo/config-plugins';
1
+ import {
2
+ IOSConfig,
3
+ ConfigPlugin,
4
+ withXcodeProject,
5
+ XcodeProject,
6
+ WarningAggregator,
7
+ } from 'expo/config-plugins';
2
8
 
3
9
  import type { PluginConfigType } from './pluginConfig';
4
10
 
@@ -8,7 +14,16 @@ export const withIosBuildProperties = createBuildPodfilePropsConfigPlugin<Plugin
8
14
  [
9
15
  {
10
16
  propName: 'newArchEnabled',
11
- propValueGetter: (config) => config.ios?.newArchEnabled?.toString(),
17
+ propValueGetter: (config) => {
18
+ if (config.ios?.newArchEnabled !== undefined) {
19
+ WarningAggregator.addWarningIOS(
20
+ 'withIosBuildProperties',
21
+ 'ios.newArchEnabled is deprecated, use app config `newArchEnabled` instead.',
22
+ 'https://docs.expo.dev/versions/latest/config/app/#newarchenabled'
23
+ );
24
+ }
25
+ return config.ios?.newArchEnabled?.toString();
26
+ },
12
27
  },
13
28
  {
14
29
  propName: 'ios.useFrameworks',
@@ -73,8 +88,7 @@ function updateDeploymentTargetXcodeProject(
73
88
  .map(([_, target]) => target.buildConfigurationList);
74
89
 
75
90
  for (const buildConfigListId of targetBuildConfigListIds) {
76
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
77
- for (const [_, configurations] of IOSConfig.XcodeUtils.getBuildConfigurationsForListId(
91
+ for (const [, configurations] of IOSConfig.XcodeUtils.getBuildConfigurationsForListId(
78
92
  project,
79
93
  buildConfigListId
80
94
  )) {
@@ -13,7 +13,7 @@ const EXPO_SDK_MINIMAL_SUPPORTED_VERSIONS = {
13
13
  kotlinVersion: '1.6.10',
14
14
  },
15
15
  ios: {
16
- deploymentTarget: '13.4',
16
+ deploymentTarget: '15.1',
17
17
  },
18
18
  };
19
19
 
@@ -39,6 +39,7 @@ export interface PluginConfigType {
39
39
  */
40
40
  export interface PluginConfigTypeAndroid {
41
41
  /**
42
+ * @deprecated Use app config [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) instead.
42
43
  * Enable React Native new architecture for Android platform.
43
44
  */
44
45
  newArchEnabled?: boolean;
@@ -83,7 +84,7 @@ export interface PluginConfigTypeAndroid {
83
84
  */
84
85
  extraProguardRules?: string;
85
86
  /**
86
- * Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
87
+ * Interface representing available configuration for Android Gradle plugin [`PackagingOptions`](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
87
88
  */
88
89
  packagingOptions?: PluginConfigTypeAndroidPackagingOptions;
89
90
 
@@ -94,10 +95,11 @@ export interface PluginConfigTypeAndroid {
94
95
  */
95
96
  networkInspector?: boolean;
96
97
 
98
+ // For the implementation details, this property is actually handled by `expo-modules-autolinking`
99
+ // not the config-plugins inside `expo-build-properties`
97
100
  /**
98
101
  * Add extra maven repositories to all gradle projects.
99
102
  *
100
- *
101
103
  * Takes an array of objects or strings.
102
104
  * Strings are passed as the `url` property of the object with no credentials or authentication scheme.
103
105
  *
@@ -112,7 +114,6 @@ export interface PluginConfigTypeAndroid {
112
114
  * ```
113
115
  *
114
116
  * By using an `AndroidMavenRepository` object, you can specify credentials and an authentication scheme.
115
- *
116
117
  * ```groovy
117
118
  * allprojects {
118
119
  * repositories {
@@ -131,9 +132,6 @@ export interface PluginConfigTypeAndroid {
131
132
  * ```
132
133
  *
133
134
  * @see [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:case-for-maven)
134
- *
135
- * @hide For the implementation details,
136
- * this property is actually handled by `expo-modules-autolinking` not the config-plugins inside `expo-build-properties`
137
135
  */
138
136
  extraMavenRepos?: (AndroidMavenRepository | string)[];
139
137
  /**
@@ -161,6 +159,10 @@ export interface PluginConfigTypeAndroid {
161
159
  manifestQueries?: PluginConfigTypeAndroidQueries;
162
160
  }
163
161
 
162
+ // @docsMissing
163
+ /**
164
+ * @platform android
165
+ */
164
166
  export interface AndroidMavenRepository {
165
167
  /**
166
168
  * The URL of the Maven repository.
@@ -170,7 +172,7 @@ export interface AndroidMavenRepository {
170
172
  * The credentials to use when accessing the Maven repository.
171
173
  * May be of type PasswordCredentials, HttpHeaderCredentials, or AWSCredentials.
172
174
  *
173
- * @see the authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information.
175
+ * @see The authentication schemes section of [Gradle documentation](https://docs.gradle.org/current/userguide/declaring_repositories.html#sec:authentication_schemes) for more information.
174
176
  */
175
177
  credentials?: AndroidMavenRepositoryCredentials;
176
178
  /**
@@ -179,23 +181,39 @@ export interface AndroidMavenRepository {
179
181
  authentication?: 'basic' | 'digest' | 'header';
180
182
  }
181
183
 
182
- interface AndroidMavenRepositoryPasswordCredentials {
184
+ // @docsMissing
185
+ /**
186
+ * @platform android
187
+ */
188
+ export interface AndroidMavenRepositoryPasswordCredentials {
183
189
  username: string;
184
190
  password: string;
185
191
  }
186
192
 
187
- interface AndroidMavenRepositoryHttpHeaderCredentials {
193
+ // @docsMissing
194
+ /**
195
+ * @platform android
196
+ */
197
+ export interface AndroidMavenRepositoryHttpHeaderCredentials {
188
198
  name: string;
189
199
  value: string;
190
200
  }
191
201
 
192
- interface AndroidMavenRepositoryAWSCredentials {
202
+ // @docsMissing
203
+ /**
204
+ * @platform android
205
+ */
206
+ export interface AndroidMavenRepositoryAWSCredentials {
193
207
  accessKey: string;
194
208
  secretKey: string;
195
209
  sessionToken?: string;
196
210
  }
197
211
 
198
- type AndroidMavenRepositoryCredentials =
212
+ // @docsMissing
213
+ /**
214
+ * @platform android
215
+ */
216
+ export type AndroidMavenRepositoryCredentials =
199
217
  | AndroidMavenRepositoryPasswordCredentials
200
218
  | AndroidMavenRepositoryHttpHeaderCredentials
201
219
  | AndroidMavenRepositoryAWSCredentials;
@@ -206,6 +224,7 @@ type AndroidMavenRepositoryCredentials =
206
224
  */
207
225
  export interface PluginConfigTypeIos {
208
226
  /**
227
+ * @deprecated Use app config [`newArchEnabled`](https://docs.expo.dev/versions/latest/config/app/#newarchenabled) instead.
209
228
  * Enable React Native new architecture for iOS platform.
210
229
  */
211
230
  newArchEnabled?: boolean;
@@ -229,18 +248,27 @@ export interface PluginConfigTypeIos {
229
248
  */
230
249
  networkInspector?: boolean;
231
250
 
251
+ // For the implementation details, this property is actually handled by `expo-modules-autolinking`
252
+ // but not the config-plugins inside `expo-build-properties`.
232
253
  /**
233
254
  * Add extra CocoaPods dependencies for all targets.
234
255
  *
235
- * This acts like to add the following code to **ios/Podfile**:
256
+ * This configuration is responsible for adding the new Pod entries to **ios/Podfile**.
257
+ *
258
+ * @example
259
+ * Creating entry in the configuration like below:
260
+ * ```json
261
+ * [
262
+ * {
263
+ * name: "Protobuf",
264
+ * version: "~> 3.14.0",
265
+ * }
266
+ * ]
236
267
  * ```
237
- * pod '[EXTRA_POD_NAME]', '~> [EXTRA_POD_VERSION]'
238
- * # e.g.
268
+ * Will produce the following entry in the generated **ios/Podfile**:
269
+ * ```ruby
239
270
  * pod 'Protobuf', '~> 3.14.0'
240
271
  * ```
241
- *
242
- * @hide For the implementation details,
243
- * this property is actually handled by `expo-modules-autolinking` but not the config-plugins inside expo-build-properties.
244
272
  */
245
273
  extraPods?: ExtraIosPodDependency[];
246
274
 
@@ -249,8 +277,8 @@ export interface PluginConfigTypeIos {
249
277
  *
250
278
  * This speeds up compiling C++ code by caching the results of previous compilations.
251
279
  *
252
- * @see https://reactnative.dev/docs/build-speed#local-caches
253
- * @see https://ccache.dev/
280
+ * @see [React Native's documentation on local caches](https://reactnative.dev/docs/build-speed#local-caches) and
281
+ * [Ccache documentation](https://ccache.dev/).
254
282
  */
255
283
  ccacheEnabled?: boolean;
256
284
 
@@ -259,8 +287,8 @@ export interface PluginConfigTypeIos {
259
287
  * CocoaPods resource bundles. If enabled, the manifests will be merged into a
260
288
  * single file. If not enabled, developers will need to manually aggregate them.
261
289
  *
262
- * @see https://docs.expo.dev/guides/apple-privacy/
263
- * @see https://developer.apple.com/documentation/bundleresources/privacy_manifest_files
290
+ * @see [Privacy manifests](https://docs.expo.dev/guides/apple-privacy/) guide
291
+ * and [Apple's documentation on Privacy manifest files](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files).
264
292
  */
265
293
  privacyManifestAggregationEnabled?: boolean;
266
294
  }
@@ -330,12 +358,17 @@ export interface ExtraIosPodDependency {
330
358
  * Use the bleeding edge version of a Pod.
331
359
  *
332
360
  * @example
333
- * ```
334
- * { "name": "AFNetworking", "git": "https://github.com/gowalla/AFNetworking.git", "tag": "0.7.0" }
361
+ * ```json
362
+ * {
363
+ * "name": "AFNetworking",
364
+ * "git": "https://github.com/gowalla/AFNetworking.git",
365
+ * "tag": "0.7.0"
366
+ * }
335
367
  * ```
336
368
  *
337
369
  * This acts like to add this pod dependency statement:
338
- * ```
370
+ *
371
+ * ```rb
339
372
  * pod 'AFNetworking', :git => 'https://github.com/gowalla/AFNetworking.git', :tag => '0.7.0'
340
373
  * ```
341
374
  */
@@ -355,7 +388,7 @@ export interface ExtraIosPodDependency {
355
388
  }
356
389
 
357
390
  /**
358
- * Interface representing available configuration for Android Gradle plugin [PackagingOptions](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
391
+ * Interface representing available configuration for Android Gradle plugin [`PackagingOptions`](https://developer.android.com/reference/tools/gradle-api/7.0/com/android/build/api/dsl/PackagingOptions).
359
392
  * @platform android
360
393
  */
361
394
  export interface PluginConfigTypeAndroidPackagingOptions {
@@ -377,13 +410,17 @@ export interface PluginConfigTypeAndroidPackagingOptions {
377
410
  doNotStrip?: string[];
378
411
  }
379
412
 
413
+ // @docsMissing
414
+ /**
415
+ * @platform android
416
+ */
380
417
  export interface PluginConfigTypeAndroidQueries {
381
418
  /**
382
419
  * Specifies one or more apps that your app intends to access. These other apps might integrate with your app, or your app might use services that these other apps provide.
383
420
  */
384
421
  package?: string[];
385
422
  /**
386
- * Specifies an intent filter signature. Your app can discover other apps that have matching <intent-filter> elements.
423
+ * Specifies an intent filter signature. Your app can discover other apps that have matching `<intent-filter>` elements.
387
424
  * These intents have restrictions compared to typical intent filter signatures.
388
425
  *
389
426
  * @see [Android documentation](https://developer.android.com/training/package-visibility/declaring#intent-filter-signature) for details
@@ -391,14 +428,18 @@ export interface PluginConfigTypeAndroidQueries {
391
428
  intent?: PluginConfigTypeAndroidQueriesIntent[];
392
429
  /**
393
430
  * Specifies one or more content provider authorities. Your app can discover other apps whose content providers use the specified authorities.
394
- * There are some restrictions on the options that you can include in this <provider> element, compared to a typical <provider> manifest element. You may only specify the android:authorities attribute.
431
+ * There are some restrictions on the options that you can include in this `<provider>` element, compared to a typical `<provider>` manifest element. You may only specify the `android:authorities` attribute.
395
432
  */
396
433
  provider?: string[];
397
434
  }
398
435
 
436
+ // @docsMissing
437
+ /**
438
+ * @platform android
439
+ */
399
440
  export interface PluginConfigTypeAndroidQueriesIntent {
400
441
  /**
401
- * A string naming the action to perform. Usually one of the platform-defined values, such as ACTION_SEND or ACTION_VIEW
442
+ * A string naming the action to perform. Usually one of the platform-defined values, such as `ACTION_SEND` or `ACTION_VIEW`.
402
443
  */
403
444
  action?: string;
404
445
  /**
@@ -412,6 +453,10 @@ export interface PluginConfigTypeAndroidQueriesIntent {
412
453
  category?: string | string[];
413
454
  }
414
455
 
456
+ // @docsMissing
457
+ /**
458
+ * @platform android
459
+ */
415
460
  export interface PluginConfigTypeAndroidQueriesData {
416
461
  /**
417
462
  * Specify a URI scheme that is handled