expo-build-properties 1.0.8 → 1.0.9

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,6 +10,10 @@
10
10
 
11
11
  ### 💡 Others
12
12
 
13
+ ## 1.0.9 — 2025-09-18
14
+
15
+ _This version does not introduce any user-facing changes._
16
+
13
17
  ## 1.0.8 — 2025-09-11
14
18
 
15
19
  _This version does not introduce any user-facing changes._
package/build/ios.js CHANGED
@@ -18,6 +18,10 @@ exports.withIosBuildProperties = createBuildPodfilePropsConfigPlugin([
18
18
  propName: 'ios.useFrameworks',
19
19
  propValueGetter: (config) => config.ios?.useFrameworks,
20
20
  },
21
+ {
22
+ propName: 'ios.forceStaticLinking',
23
+ propValueGetter: (config) => JSON.stringify(config.ios?.forceStaticLinking ?? []),
24
+ },
21
25
  {
22
26
  propName: 'EX_DEV_CLIENT_NETWORK_INSPECTOR',
23
27
  propValueGetter: (config) => (config.ios?.networkInspector ?? true).toString(),
@@ -278,6 +278,18 @@ export interface PluginConfigTypeIos {
278
278
  * in `Podfile` to use frameworks instead of static libraries for Pods.
279
279
  */
280
280
  useFrameworks?: 'static' | 'dynamic';
281
+ /**
282
+ * List of CocoaPods that should be linked statically instead of as frameworks.
283
+ *
284
+ * This is only relevant when `use_frameworks!` is enabled. Some pods—
285
+ * especially React Native prebuilt binaries—can fail due to modular header
286
+ * issues when built as dynamic frameworks. Declaring them here ensures they
287
+ * are linked statically, avoiding those compatibility problems.
288
+ *
289
+ * This property is consumed by the `use_expo_modules` function in
290
+ * `expo-modules-autolinking`.
291
+ */
292
+ forceStaticLinking?: string[];
281
293
  /**
282
294
  * Enable the Network Inspector.
283
295
  *
@@ -155,6 +155,7 @@ const schema = {
155
155
  newArchEnabled: { type: 'boolean', nullable: true },
156
156
  deploymentTarget: { type: 'string', pattern: '\\d+\\.\\d+', nullable: true },
157
157
  useFrameworks: { type: 'string', enum: ['static', 'dynamic'], nullable: true },
158
+ forceStaticLinking: { type: 'array', items: { type: 'string' }, nullable: true },
158
159
  networkInspector: { type: 'boolean', nullable: true },
159
160
  ccacheEnabled: { type: 'boolean', nullable: true },
160
161
  privacyManifestAggregationEnabled: { type: 'boolean', nullable: true },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-build-properties",
3
- "version": "1.0.8",
3
+ "version": "1.0.9",
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",
@@ -40,5 +40,5 @@
40
40
  "peerDependencies": {
41
41
  "expo": "*"
42
42
  },
43
- "gitHead": "088e79428be97cf3ee11fc93e0e5a1fc1c8bea1e"
43
+ "gitHead": "0d9ae61f3dea2e2b854576859e5b50fca5503fc1"
44
44
  }
package/src/ios.ts CHANGED
@@ -30,6 +30,10 @@ export const withIosBuildProperties = createBuildPodfilePropsConfigPlugin<Plugin
30
30
  propName: 'ios.useFrameworks',
31
31
  propValueGetter: (config) => config.ios?.useFrameworks,
32
32
  },
33
+ {
34
+ propName: 'ios.forceStaticLinking',
35
+ propValueGetter: (config) => JSON.stringify(config.ios?.forceStaticLinking ?? []),
36
+ },
33
37
  {
34
38
  propName: 'EX_DEV_CLIENT_NETWORK_INSPECTOR',
35
39
  propValueGetter: (config) => (config.ios?.networkInspector ?? true).toString(),
@@ -327,6 +327,19 @@ export interface PluginConfigTypeIos {
327
327
  */
328
328
  useFrameworks?: 'static' | 'dynamic';
329
329
 
330
+ /**
331
+ * List of CocoaPods that should be linked statically instead of as frameworks.
332
+ *
333
+ * This is only relevant when `use_frameworks!` is enabled. Some pods—
334
+ * especially React Native prebuilt binaries—can fail due to modular header
335
+ * issues when built as dynamic frameworks. Declaring them here ensures they
336
+ * are linked statically, avoiding those compatibility problems.
337
+ *
338
+ * This property is consumed by the `use_expo_modules` function in
339
+ * `expo-modules-autolinking`.
340
+ */
341
+ forceStaticLinking?: string[];
342
+
330
343
  /**
331
344
  * Enable the Network Inspector.
332
345
  *
@@ -723,6 +736,7 @@ const schema: JSONSchemaType<PluginConfigType> = {
723
736
  newArchEnabled: { type: 'boolean', nullable: true },
724
737
  deploymentTarget: { type: 'string', pattern: '\\d+\\.\\d+', nullable: true },
725
738
  useFrameworks: { type: 'string', enum: ['static', 'dynamic'], nullable: true },
739
+ forceStaticLinking: { type: 'array', items: { type: 'string' }, nullable: true },
726
740
 
727
741
  networkInspector: { type: 'boolean', nullable: true },
728
742
  ccacheEnabled: { type: 'boolean', nullable: true },