expo-invoke 2.3.0 → 2.4.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.
|
@@ -7,8 +7,5 @@ export interface WidgetExtensionOptions extends WidgetCodegenOptions {
|
|
|
7
7
|
/**
|
|
8
8
|
* Adds a WidgetKit extension target to the iOS Xcode project.
|
|
9
9
|
* Called automatically by withIOSInvoke when enableWidget: true.
|
|
10
|
-
*
|
|
11
|
-
* Developers never call this directly — it's wired up through the expo-invoke
|
|
12
|
-
* app.json plugin config.
|
|
13
10
|
*/
|
|
14
11
|
export declare const withWidgetExtension: ConfigPlugin<WidgetExtensionOptions>;
|
|
@@ -42,9 +42,6 @@ const WIDGET_TARGET = 'InvokeWidget';
|
|
|
42
42
|
/**
|
|
43
43
|
* Adds a WidgetKit extension target to the iOS Xcode project.
|
|
44
44
|
* Called automatically by withIOSInvoke when enableWidget: true.
|
|
45
|
-
*
|
|
46
|
-
* Developers never call this directly — it's wired up through the expo-invoke
|
|
47
|
-
* app.json plugin config.
|
|
48
45
|
*/
|
|
49
46
|
const withWidgetExtension = (config, opts) => {
|
|
50
47
|
const { appGroupId, bundleId, deploymentTarget = '16.0' } = opts;
|
|
@@ -58,7 +55,7 @@ const withWidgetExtension = (config, opts) => {
|
|
|
58
55
|
}
|
|
59
56
|
return cfg;
|
|
60
57
|
});
|
|
61
|
-
// 2. Generate widget Swift source
|
|
58
|
+
// 2. Generate widget Swift source + support files into ios/InvokeWidget/
|
|
62
59
|
config = (0, config_plugins_1.withDangerousMod)(config, [
|
|
63
60
|
'ios',
|
|
64
61
|
async (cfg) => {
|
|
@@ -88,31 +85,144 @@ const withWidgetExtension = (config, opts) => {
|
|
|
88
85
|
return cfg;
|
|
89
86
|
},
|
|
90
87
|
]);
|
|
91
|
-
// 3. Add widget target to the Xcode project
|
|
88
|
+
// 3. Add widget target to the Xcode project — all object graph manipulation is
|
|
89
|
+
// done manually to avoid helper side-effects that produce duplicate tasks.
|
|
92
90
|
config = (0, config_plugins_1.withXcodeProject)(config, (cfg) => {
|
|
93
91
|
var _a, _b, _c, _d;
|
|
94
92
|
const proj = cfg.modResults;
|
|
95
|
-
// Idempotency
|
|
93
|
+
// ── Idempotency guard ─────────────────────────────────────────────────────
|
|
96
94
|
const existingTargets = proj.pbxNativeTargetSection();
|
|
97
95
|
const already = Object.values(existingTargets).some((t) => t && typeof t === 'object' && t.name === WIDGET_TARGET);
|
|
98
96
|
if (already) {
|
|
99
97
|
console.log('[expo-invoke] Widget target already in Xcode project, skipping');
|
|
100
98
|
return cfg;
|
|
101
99
|
}
|
|
102
|
-
// ──
|
|
103
|
-
const
|
|
104
|
-
|
|
105
|
-
|
|
100
|
+
// ── Ensure object sections exist ──────────────────────────────────────────
|
|
101
|
+
const objects = proj.hash.project.objects;
|
|
102
|
+
const ensureSection = (key) => {
|
|
103
|
+
if (!objects[key])
|
|
104
|
+
objects[key] = {};
|
|
105
|
+
return objects[key];
|
|
106
|
+
};
|
|
107
|
+
const fileRefSection = ensureSection('PBXFileReference');
|
|
108
|
+
const buildFileSection = ensureSection('PBXBuildFile');
|
|
109
|
+
const sourcesSection = ensureSection('PBXSourcesBuildPhase');
|
|
110
|
+
const resourcesSection = ensureSection('PBXResourcesBuildPhase');
|
|
111
|
+
const frameworksSection = ensureSection('PBXFrameworksBuildPhase');
|
|
112
|
+
const copyFilesSection = ensureSection('PBXCopyFilesBuildPhase');
|
|
113
|
+
const nativeTargetSection = ensureSection('PBXNativeTarget');
|
|
114
|
+
const groupSection = ensureSection('PBXGroup');
|
|
115
|
+
// ── Add the extension target (creates PBXNativeTarget + product ref) ─────
|
|
116
|
+
const widgetTargetResult = proj.addTarget(WIDGET_TARGET, 'app_extension', WIDGET_TARGET, bundleId);
|
|
117
|
+
if (!widgetTargetResult) {
|
|
118
|
+
console.error('[expo-invoke] addTarget() returned null — widget target NOT added');
|
|
106
119
|
return cfg;
|
|
107
120
|
}
|
|
108
|
-
const widgetUuid =
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
121
|
+
const widgetUuid = widgetTargetResult.uuid;
|
|
122
|
+
const widgetTargetObj = nativeTargetSection[widgetUuid];
|
|
123
|
+
// Ensure buildPhases is a mutable array
|
|
124
|
+
if (!Array.isArray(widgetTargetObj === null || widgetTargetObj === void 0 ? void 0 : widgetTargetObj.buildPhases)) {
|
|
125
|
+
widgetTargetObj.buildPhases = [];
|
|
126
|
+
}
|
|
127
|
+
// ── Helper: find or create a PBXFileReference by comment name ─────────────
|
|
128
|
+
const findOrCreateFileRef = (name, attrs) => {
|
|
129
|
+
for (const key of Object.keys(fileRefSection)) {
|
|
130
|
+
if (key.endsWith('_comment'))
|
|
131
|
+
continue;
|
|
132
|
+
if (fileRefSection[`${key}_comment`] === name)
|
|
133
|
+
return key;
|
|
134
|
+
}
|
|
135
|
+
const uuid = proj.generateUuid();
|
|
136
|
+
fileRefSection[uuid] = { isa: 'PBXFileReference', ...attrs };
|
|
137
|
+
fileRefSection[`${uuid}_comment`] = name;
|
|
138
|
+
return uuid;
|
|
139
|
+
};
|
|
140
|
+
// ── InvokeWidget.swift — file reference ───────────────────────────────────
|
|
141
|
+
const swiftRefUuid = findOrCreateFileRef('InvokeWidget.swift', {
|
|
142
|
+
lastKnownFileType: 'sourcecode.swift',
|
|
143
|
+
name: '"InvokeWidget.swift"',
|
|
144
|
+
path: `"${WIDGET_TARGET}/InvokeWidget.swift"`,
|
|
145
|
+
sourceTree: '"<group>"',
|
|
146
|
+
});
|
|
147
|
+
// ── InvokeWidget.swift — build file for Sources phase ────────────────────
|
|
148
|
+
const swiftBfUuid = proj.generateUuid();
|
|
149
|
+
buildFileSection[swiftBfUuid] = { isa: 'PBXBuildFile', fileRef: swiftRefUuid };
|
|
150
|
+
buildFileSection[`${swiftBfUuid}_comment`] = 'InvokeWidget.swift in Sources';
|
|
151
|
+
// ── Sources build phase ───────────────────────────────────────────────────
|
|
152
|
+
const sourcesPhaseUuid = proj.generateUuid();
|
|
153
|
+
sourcesSection[sourcesPhaseUuid] = {
|
|
154
|
+
isa: 'PBXSourcesBuildPhase',
|
|
155
|
+
buildActionMask: 2147483647,
|
|
156
|
+
files: [{ value: swiftBfUuid, comment: 'InvokeWidget.swift in Sources' }],
|
|
157
|
+
runOnlyForDeploymentPostprocessing: 0,
|
|
158
|
+
};
|
|
159
|
+
sourcesSection[`${sourcesPhaseUuid}_comment`] = 'Sources';
|
|
160
|
+
widgetTargetObj.buildPhases.push({ value: sourcesPhaseUuid, comment: 'Sources' });
|
|
161
|
+
// ── Resources build phase (empty) ─────────────────────────────────────────
|
|
162
|
+
const resourcesPhaseUuid = proj.generateUuid();
|
|
163
|
+
resourcesSection[resourcesPhaseUuid] = {
|
|
164
|
+
isa: 'PBXResourcesBuildPhase',
|
|
165
|
+
buildActionMask: 2147483647,
|
|
166
|
+
files: [],
|
|
167
|
+
runOnlyForDeploymentPostprocessing: 0,
|
|
168
|
+
};
|
|
169
|
+
resourcesSection[`${resourcesPhaseUuid}_comment`] = 'Resources';
|
|
170
|
+
widgetTargetObj.buildPhases.push({ value: resourcesPhaseUuid, comment: 'Resources' });
|
|
171
|
+
// ── WidgetKit + SwiftUI frameworks ────────────────────────────────────────
|
|
172
|
+
// We share file references with the rest of the project (the file ref is
|
|
173
|
+
// just a description of the framework on disk), but we create NEW
|
|
174
|
+
// PBXBuildFile objects that belong exclusively to the widget target's
|
|
175
|
+
// Frameworks phase. This prevents any cross-target duplication.
|
|
176
|
+
const widgetKitRefUuid = findOrCreateFileRef('WidgetKit.framework', {
|
|
177
|
+
lastKnownFileType: '"wrapper.framework"',
|
|
178
|
+
name: '"WidgetKit.framework"',
|
|
179
|
+
path: '"System/Library/Frameworks/WidgetKit.framework"',
|
|
180
|
+
sourceTree: 'SDKROOT',
|
|
181
|
+
});
|
|
182
|
+
const swiftUIRefUuid = findOrCreateFileRef('SwiftUI.framework', {
|
|
183
|
+
lastKnownFileType: '"wrapper.framework"',
|
|
184
|
+
name: '"SwiftUI.framework"',
|
|
185
|
+
path: '"System/Library/Frameworks/SwiftUI.framework"',
|
|
186
|
+
sourceTree: 'SDKROOT',
|
|
187
|
+
});
|
|
188
|
+
const widgetKitBfUuid = proj.generateUuid();
|
|
189
|
+
buildFileSection[widgetKitBfUuid] = { isa: 'PBXBuildFile', fileRef: widgetKitRefUuid };
|
|
190
|
+
buildFileSection[`${widgetKitBfUuid}_comment`] = 'WidgetKit.framework in Frameworks';
|
|
191
|
+
const swiftUIBfUuid = proj.generateUuid();
|
|
192
|
+
buildFileSection[swiftUIBfUuid] = { isa: 'PBXBuildFile', fileRef: swiftUIRefUuid };
|
|
193
|
+
buildFileSection[`${swiftUIBfUuid}_comment`] = 'SwiftUI.framework in Frameworks';
|
|
194
|
+
// ── Frameworks build phase ────────────────────────────────────────────────
|
|
195
|
+
const frameworksPhaseUuid = proj.generateUuid();
|
|
196
|
+
frameworksSection[frameworksPhaseUuid] = {
|
|
197
|
+
isa: 'PBXFrameworksBuildPhase',
|
|
198
|
+
buildActionMask: 2147483647,
|
|
199
|
+
files: [
|
|
200
|
+
{ value: widgetKitBfUuid, comment: 'WidgetKit.framework in Frameworks' },
|
|
201
|
+
{ value: swiftUIBfUuid, comment: 'SwiftUI.framework in Frameworks' },
|
|
202
|
+
],
|
|
203
|
+
runOnlyForDeploymentPostprocessing: 0,
|
|
204
|
+
};
|
|
205
|
+
frameworksSection[`${frameworksPhaseUuid}_comment`] = 'Frameworks';
|
|
206
|
+
widgetTargetObj.buildPhases.push({ value: frameworksPhaseUuid, comment: 'Frameworks' });
|
|
207
|
+
// ── Add InvokeWidget group to the project navigator ───────────────────────
|
|
208
|
+
const widgetGroupUuid = proj.generateUuid();
|
|
209
|
+
groupSection[widgetGroupUuid] = {
|
|
210
|
+
isa: 'PBXGroup',
|
|
211
|
+
children: [{ value: swiftRefUuid, comment: 'InvokeWidget.swift' }],
|
|
212
|
+
name: `"${WIDGET_TARGET}"`,
|
|
213
|
+
path: `"${WIDGET_TARGET}"`,
|
|
214
|
+
sourceTree: '"<group>"',
|
|
215
|
+
};
|
|
216
|
+
groupSection[`${widgetGroupUuid}_comment`] = WIDGET_TARGET;
|
|
217
|
+
// Find the project main group and attach the widget group
|
|
218
|
+
const mainGroupUuid = (_d = (_a = proj.hash.project.objects['PBXProject']) === null || _a === void 0 ? void 0 : _a[(_c = (_b = proj.getFirstProject()) === null || _b === void 0 ? void 0 : _b.uuid) !== null && _c !== void 0 ? _c : '']) === null || _d === void 0 ? void 0 : _d.mainGroup;
|
|
219
|
+
if (mainGroupUuid && groupSection[mainGroupUuid]) {
|
|
220
|
+
const mainGroupObj = groupSection[mainGroupUuid];
|
|
221
|
+
if (Array.isArray(mainGroupObj.children)) {
|
|
222
|
+
mainGroupObj.children.push({ value: widgetGroupUuid, comment: WIDGET_TARGET });
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
// ── Build settings ────────────────────────────────────────────────────────
|
|
116
226
|
const configurations = proj.pbxXCBuildConfigurationSection();
|
|
117
227
|
for (const [, cfgObj] of Object.entries(configurations)) {
|
|
118
228
|
const settings = cfgObj === null || cfgObj === void 0 ? void 0 : cfgObj.buildSettings;
|
|
@@ -131,79 +241,61 @@ const withWidgetExtension = (config, opts) => {
|
|
|
131
241
|
settings.LD_RUNPATH_SEARCH_PATHS = '"$(inherited) @executable_path/../../Frameworks"';
|
|
132
242
|
settings.ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = 'NO';
|
|
133
243
|
}
|
|
134
|
-
// ── Embed
|
|
244
|
+
// ── Embed in main app (Embed App Extensions copy-files phase) ────────────
|
|
245
|
+
//
|
|
246
|
+
// PBXBuildFile objects are single-parent: each must belong to exactly ONE
|
|
247
|
+
// build phase. We never reuse an existing build file — we always create a
|
|
248
|
+
// fresh one that belongs solely to the embed phase.
|
|
249
|
+
//
|
|
250
|
+
// Step 1: find the PBXFileReference for InvokeWidget.appex (the product).
|
|
251
|
+
let appexRefUuid = null;
|
|
252
|
+
for (const refKey of Object.keys(fileRefSection)) {
|
|
253
|
+
if (refKey.endsWith('_comment'))
|
|
254
|
+
continue;
|
|
255
|
+
if (fileRefSection[`${refKey}_comment`] === `${WIDGET_TARGET}.appex`) {
|
|
256
|
+
appexRefUuid = refKey;
|
|
257
|
+
break;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
// Also attempt the main target embed
|
|
135
261
|
const mainTarget = proj.getFirstTarget();
|
|
136
|
-
if (mainTarget) {
|
|
262
|
+
if (mainTarget && appexRefUuid) {
|
|
137
263
|
const mainUuid = mainTarget.uuid;
|
|
138
|
-
//
|
|
264
|
+
// Dependency: widget builds before main app
|
|
139
265
|
proj.addTargetDependency(mainUuid, [widgetUuid]);
|
|
140
|
-
//
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
buildFileSection[embedBuildFileUuid] = {
|
|
168
|
-
isa: 'PBXBuildFile',
|
|
169
|
-
fileRef: appexRefUuid,
|
|
170
|
-
settings: { ATTRIBUTES: ['CodeSignOnCopy', 'RemoveHeadersOnCopy'] },
|
|
171
|
-
};
|
|
172
|
-
buildFileSection[`${embedBuildFileUuid}_comment`] =
|
|
173
|
-
`${WIDGET_TARGET}.appex in Embed App Extensions`;
|
|
174
|
-
// Step 3 — create the PBXCopyFilesBuildPhase and add the build file
|
|
175
|
-
const embedPhaseUuid = proj.generateUuid();
|
|
176
|
-
const copyFilesSection = (_c = proj.hash.project.objects['PBXCopyFilesBuildPhase']) !== null && _c !== void 0 ? _c : {};
|
|
177
|
-
copyFilesSection[embedPhaseUuid] = {
|
|
178
|
-
isa: 'PBXCopyFilesBuildPhase',
|
|
179
|
-
buildActionMask: 2147483647,
|
|
180
|
-
dstPath: '""',
|
|
181
|
-
dstSubfolderSpec: 13, // 13 = PlugIns / App Extensions
|
|
182
|
-
files: [
|
|
183
|
-
{
|
|
184
|
-
value: embedBuildFileUuid,
|
|
185
|
-
comment: `${WIDGET_TARGET}.appex in Embed App Extensions`,
|
|
186
|
-
},
|
|
187
|
-
],
|
|
188
|
-
name: '"Embed App Extensions"',
|
|
189
|
-
runOnlyForDeploymentPostprocessing: 0,
|
|
190
|
-
};
|
|
191
|
-
copyFilesSection[`${embedPhaseUuid}_comment`] = 'Embed App Extensions';
|
|
192
|
-
// Step 4 — attach the phase to the main app native target's buildPhases list
|
|
193
|
-
const nativeTargetSection = (_d = proj.hash.project.objects['PBXNativeTarget']) !== null && _d !== void 0 ? _d : {};
|
|
194
|
-
const mainTargetObj = nativeTargetSection[mainUuid];
|
|
195
|
-
if (mainTargetObj === null || mainTargetObj === void 0 ? void 0 : mainTargetObj.buildPhases) {
|
|
196
|
-
mainTargetObj.buildPhases.push({
|
|
197
|
-
value: embedPhaseUuid,
|
|
198
|
-
comment: 'Embed App Extensions',
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
else {
|
|
203
|
-
console.warn(`[expo-invoke] Could not find PBXFileReference for ${WIDGET_TARGET}.appex — ` +
|
|
204
|
-
'the widget extension will build but may not be embedded in the app bundle automatically.');
|
|
266
|
+
// Step 2: brand-new build file for the embed phase only
|
|
267
|
+
const embedBfUuid = proj.generateUuid();
|
|
268
|
+
buildFileSection[embedBfUuid] = {
|
|
269
|
+
isa: 'PBXBuildFile',
|
|
270
|
+
fileRef: appexRefUuid,
|
|
271
|
+
settings: { ATTRIBUTES: ['CodeSignOnCopy', 'RemoveHeadersOnCopy'] },
|
|
272
|
+
};
|
|
273
|
+
buildFileSection[`${embedBfUuid}_comment`] = `${WIDGET_TARGET}.appex in Embed App Extensions`;
|
|
274
|
+
// Step 3: PBXCopyFilesBuildPhase (dstSubfolderSpec 13 = PlugIns/App Extensions)
|
|
275
|
+
const embedPhaseUuid = proj.generateUuid();
|
|
276
|
+
copyFilesSection[embedPhaseUuid] = {
|
|
277
|
+
isa: 'PBXCopyFilesBuildPhase',
|
|
278
|
+
buildActionMask: 2147483647,
|
|
279
|
+
dstPath: '""',
|
|
280
|
+
dstSubfolderSpec: 13,
|
|
281
|
+
files: [{ value: embedBfUuid, comment: `${WIDGET_TARGET}.appex in Embed App Extensions` }],
|
|
282
|
+
name: '"Embed App Extensions"',
|
|
283
|
+
runOnlyForDeploymentPostprocessing: 0,
|
|
284
|
+
};
|
|
285
|
+
copyFilesSection[`${embedPhaseUuid}_comment`] = 'Embed App Extensions';
|
|
286
|
+
// Step 4: attach phase to the main app native target
|
|
287
|
+
const mainTargetObj = nativeTargetSection[mainUuid];
|
|
288
|
+
if (Array.isArray(mainTargetObj === null || mainTargetObj === void 0 ? void 0 : mainTargetObj.buildPhases)) {
|
|
289
|
+
mainTargetObj.buildPhases.push({
|
|
290
|
+
value: embedPhaseUuid,
|
|
291
|
+
comment: 'Embed App Extensions',
|
|
292
|
+
});
|
|
205
293
|
}
|
|
206
294
|
}
|
|
295
|
+
else if (!appexRefUuid) {
|
|
296
|
+
console.warn(`[expo-invoke] Could not find PBXFileReference for ${WIDGET_TARGET}.appex — ` +
|
|
297
|
+
'widget will build but may not be embedded in the app bundle automatically.');
|
|
298
|
+
}
|
|
207
299
|
console.log(`[expo-invoke] Widget target "${WIDGET_TARGET}" added to Xcode project ✓`);
|
|
208
300
|
return cfg;
|
|
209
301
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withWidgetExtension.js","sourceRoot":"","sources":["../../../plugin/ios/withWidgetExtension.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yDAK8B;AAC9B,uCAAyB;AACzB,2CAA6B;AAC7B,wEAKwC;AAExC,MAAM,aAAa,GAAG,cAAc,CAAC;AAOrC
|
|
1
|
+
{"version":3,"file":"withWidgetExtension.js","sourceRoot":"","sources":["../../../plugin/ios/withWidgetExtension.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-invoke",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.4.0",
|
|
4
4
|
"description": "The complete native-surface-to-JS bridge for Expo. One intent config → Siri, Google Assistant, home screen widgets, Dynamic Island, app icon menus, notification actions, NFC, QR, deep links and more — all through a single useInvoke() hook.",
|
|
5
5
|
"main": "build/src/index.js",
|
|
6
6
|
"module": "build/src/index.js",
|