expo-arcgis 0.3.2 → 0.3.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-arcgis",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "ArcGIS Maps SDK for React Native — native Android (Kotlin) & iOS (Swift) map rendering as an Expo module",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -59,7 +59,8 @@
59
59
  "prettier": "^3.0.0",
60
60
  "publint": "^0.3.21",
61
61
  "react-native": "0.82.1",
62
- "typescript": "^5.9.2"
62
+ "typescript": "^5.9.2",
63
+ "xcode": "^3.0.1"
63
64
  },
64
65
  "jest": {
65
66
  "preset": "jest-expo",
@@ -1,4 +1,15 @@
1
- import { ConfigPlugin } from 'expo/config-plugins';
1
+ import { ConfigPlugin, XcodeProject } from 'expo/config-plugins';
2
2
  import { ArcGISPluginProps } from './types';
3
3
  export declare const withArcGISIos: ConfigPlugin<ArcGISPluginProps>;
4
+ /** Mutates the parsed Xcode project in place. Exported for tests. */
5
+ export declare function embedArcGISFramework(project: XcodeProject): void;
6
+ /**
7
+ * Both the app target and the ExpoArcgis pod target run SignatureCollection for the signed
8
+ * ArcGIS xcframework, and archive-time signature aggregation copies both results into
9
+ * Signatures/ — failing with `"ArcGIS.xcframework-ios.signature" couldn't be copied to
10
+ * "Signatures" because an item with the same name already exists` (same Xcode bug as
11
+ * maplibre-react-native#1489). Delete the app-level copy during the build so aggregation
12
+ * only sees the pod target's. Mutates the parsed Xcode project in place; exported for tests.
13
+ */
14
+ export declare function addSignatureCleanupPhase(project: XcodeProject): void;
4
15
  //# sourceMappingURL=withArcGISIos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withArcGISIos.d.ts","sourceRoot":"","sources":["../src/withArcGISIos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAK5C,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAmBzD,CAAC"}
1
+ {"version":3,"file":"withArcGISIos.d.ts","sourceRoot":"","sources":["../src/withArcGISIos.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EAIZ,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAK5C,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,iBAAiB,CAoBzD,CAAC;AAyCF,qEAAqE;AACrE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CA8DhE;AAUD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAqBpE"}
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.withArcGISIos = void 0;
4
+ exports.embedArcGISFramework = embedArcGISFramework;
5
+ exports.addSignatureCleanupPhase = addSignatureCleanupPhase;
4
6
  const config_plugins_1 = require("expo/config-plugins");
5
7
  /** ArcGIS Maps SDK for Swift 300.0 requires iOS 17.0+. */
6
8
  const REQUIRED_IOS_DEPLOYMENT_TARGET = '17.0';
@@ -14,6 +16,7 @@ const withArcGISIos = (config, props) => {
14
16
  config = withArcGISPodfileDeploymentTarget(config, target);
15
17
  config = withArcGISAppDeploymentTarget(config, target);
16
18
  config = withArcGISEmbedFramework(config);
19
+ config = withArcGISSignatureCleanup(config);
17
20
  if (props.apiKey) {
18
21
  config = withArcGISApiKeyInfoPlist(config, props.apiKey);
19
22
  }
@@ -54,7 +57,11 @@ const withArcGISAppDeploymentTarget = (config, target) => (0, config_plugins_1.w
54
57
  * (CodeSignOnCopy) on the app target referencing the built product — Xcode's "Embed & Sign".
55
58
  */
56
59
  const withArcGISEmbedFramework = (config) => (0, config_plugins_1.withXcodeProject)(config, (cfg) => {
57
- const project = cfg.modResults;
60
+ embedArcGISFramework(cfg.modResults);
61
+ return cfg;
62
+ });
63
+ /** Mutates the parsed Xcode project in place. Exported for tests. */
64
+ function embedArcGISFramework(project) {
58
65
  const FRAMEWORK = 'ArcGIS.framework';
59
66
  const COMMENT = `${FRAMEWORK} in Embed Frameworks`;
60
67
  const objects = project.hash.project.objects;
@@ -62,24 +69,11 @@ const withArcGISEmbedFramework = (config) => (0, config_plugins_1.withXcodeProje
62
69
  const buildFiles = objects.PBXBuildFile || {};
63
70
  for (const key of Object.keys(buildFiles)) {
64
71
  if (buildFiles[key] === COMMENT) {
65
- return cfg;
72
+ return;
66
73
  }
67
74
  }
68
- // Find the application target (fall back to the first target).
69
75
  const nativeTargets = objects.PBXNativeTarget || {};
70
- let targetUuid;
71
- for (const key of Object.keys(nativeTargets)) {
72
- if (key.endsWith('_comment'))
73
- continue;
74
- const productType = String(nativeTargets[key].productType || '').replace(/"/g, '');
75
- if (productType === 'com.apple.product-type.application') {
76
- targetUuid = key;
77
- break;
78
- }
79
- }
80
- if (!targetUuid) {
81
- targetUuid = project.getFirstTarget().uuid;
82
- }
76
+ const targetUuid = findApplicationTargetUuid(project);
83
77
  // Create an "Embed Frameworks" copy-files phase (dstSubfolderSpec 10 = Frameworks).
84
78
  const phase = project.addBuildPhase([], 'PBXCopyFilesBuildPhase', 'Embed Frameworks', targetUuid, 'frameworks');
85
79
  // Reference the framework as a build product and embed it with code signing.
@@ -101,8 +95,62 @@ const withArcGISEmbedFramework = (config) => (0, config_plugins_1.withXcodeProje
101
95
  };
102
96
  objects.PBXBuildFile[`${buildFileUuid}_comment`] = COMMENT;
103
97
  phase.buildPhase.files.push({ value: buildFileUuid, comment: COMMENT });
98
+ // addBuildPhase appends, which can land this copy phase after script phases other
99
+ // plugins added earlier (e.g. expo-datadog's dSYM upload) — Xcode then reports a
100
+ // dependency cycle: the copy is gated on the script phase, whose dSYM input needs
101
+ // the finished .app, which needs the copy. Move it to the slot after Resources,
102
+ // where Xcode itself puts Embed Frameworks, ahead of any tail script phases.
103
+ const buildPhases = (nativeTargets[targetUuid] || {}).buildPhases || [];
104
+ const embedIndex = buildPhases.findIndex((entry) => entry.value === phase.uuid);
105
+ const resourcesIndex = buildPhases.findIndex((entry) => entry.comment === 'Resources');
106
+ if (embedIndex !== -1 && resourcesIndex !== -1 && embedIndex > resourcesIndex + 1) {
107
+ const [entry] = buildPhases.splice(embedIndex, 1);
108
+ buildPhases.splice(resourcesIndex + 1, 0, entry);
109
+ }
110
+ }
111
+ const withArcGISSignatureCleanup = (config) => (0, config_plugins_1.withXcodeProject)(config, (cfg) => {
112
+ addSignatureCleanupPhase(cfg.modResults);
104
113
  return cfg;
105
114
  });
115
+ const SIGNATURE_CLEANUP_PHASE_NAME = '[expo-arcgis] Remove duplicate ArcGIS.xcframework signature';
116
+ /**
117
+ * Both the app target and the ExpoArcgis pod target run SignatureCollection for the signed
118
+ * ArcGIS xcframework, and archive-time signature aggregation copies both results into
119
+ * Signatures/ — failing with `"ArcGIS.xcframework-ios.signature" couldn't be copied to
120
+ * "Signatures" because an item with the same name already exists` (same Xcode bug as
121
+ * maplibre-react-native#1489). Delete the app-level copy during the build so aggregation
122
+ * only sees the pod target's. Mutates the parsed Xcode project in place; exported for tests.
123
+ */
124
+ function addSignatureCleanupPhase(project) {
125
+ var _a;
126
+ const scriptPhases = project.hash.project.objects.PBXShellScriptBuildPhase || {};
127
+ // Idempotent: skip if already added (prebuild may run plugins more than once).
128
+ for (const key of Object.keys(scriptPhases)) {
129
+ if (key.endsWith('_comment'))
130
+ continue;
131
+ if (String(((_a = scriptPhases[key]) === null || _a === void 0 ? void 0 : _a.name) || '').includes(SIGNATURE_CLEANUP_PHASE_NAME)) {
132
+ return;
133
+ }
134
+ }
135
+ const phase = project.addBuildPhase([], 'PBXShellScriptBuildPhase', SIGNATURE_CLEANUP_PHASE_NAME, findApplicationTargetUuid(project), {
136
+ shellPath: '/bin/sh',
137
+ shellScript: 'rm -rf "$CONFIGURATION_BUILD_DIR/ArcGIS.xcframework-ios.signature"',
138
+ });
139
+ phase.buildPhase.alwaysOutOfDate = 1;
140
+ }
141
+ /** Finds the application target (falls back to the first target). */
142
+ function findApplicationTargetUuid(project) {
143
+ const nativeTargets = project.hash.project.objects.PBXNativeTarget || {};
144
+ for (const key of Object.keys(nativeTargets)) {
145
+ if (key.endsWith('_comment'))
146
+ continue;
147
+ const productType = String(nativeTargets[key].productType || '').replace(/"/g, '');
148
+ if (productType === 'com.apple.product-type.application') {
149
+ return key;
150
+ }
151
+ }
152
+ return project.getFirstTarget().uuid;
153
+ }
106
154
  /** Stores the API key in Info.plist as `ArcGISAPIKey` for the native runtime to read. */
107
155
  const withArcGISApiKeyInfoPlist = (config, apiKey) => (0, config_plugins_1.withInfoPlist)(config, (cfg) => {
108
156
  cfg.modResults.ArcGISAPIKey = apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"withArcGISIos.js","sourceRoot":"","sources":["../src/withArcGISIos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"withArcGISIos.js","sourceRoot":"","sources":["../src/withArcGISIos.ts"],"names":[],"mappings":"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"}