@swmansion/argent 0.30.2-next.2 → 0.30.2-next.21
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/bin/darwin/simulator-server +0 -0
- package/bin/linux/simulator-server +0 -0
- package/bin/linux-arm64/simulator-server +0 -0
- package/bin/win32/simulator-server.exe +0 -0
- package/dist/cli-cmds.mjs +26 -9
- package/dist/client.js +23 -6
- package/dist/installer.mjs +2 -1
- package/dist/ios-device-runner/ArgentRunner/ArgentRunner.xcodeproj/project.pbxproj +80 -0
- package/dist/ios-device-runner/ArgentRunner/ArgentRunner.xcodeproj/xcshareddata/xcschemes/ArgentRunner.xcscheme +14 -0
- package/dist/ios-device-runner/ArgentRunner/ArgentRunnerUITests/Assets.xcassets/AppIcon.appiconset/AppIcon.png +0 -0
- package/dist/ios-device-runner/ArgentRunner/ArgentRunnerUITests/Assets.xcassets/AppIcon.appiconset/Contents.json +14 -0
- package/dist/ios-device-runner/ArgentRunner/ArgentRunnerUITests/Assets.xcassets/Contents.json +6 -0
- package/dist/ios-device-runner/ArgentRunner/brand-runner.sh +27 -0
- package/dist/mcp-server.mjs +149 -85
- package/dist/tool-args.generated.d.ts +2 -0
- package/dist/tool-server.cjs +525 -143
- package/package.json +1 -1
- package/rules/argent.md +9 -7
- package/skills/argent-device-interact/SKILL.md +3 -1
- package/skills/argent-device-interact/references/harmonyos.md +43 -0
- package/skills/argent-ios-device-setup/SKILL.md +1 -1
- package/skills/argent-native-profiler/SKILL.md +1 -0
- package/skills/argent-react-native-profiler/SKILL.md +2 -0
- package/skills/argent-test-ui-flow/SKILL.md +1 -2
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/dist/cli-cmds.mjs
CHANGED
|
@@ -9085,6 +9085,7 @@ function spawnToolsServer(paths, port, options = {}) {
|
|
|
9085
9085
|
stdio: ["ignore", "pipe", logFd],
|
|
9086
9086
|
env: buildToolsServerEnv(paths, port, process.env, options)
|
|
9087
9087
|
});
|
|
9088
|
+
fs.closeSync(logFd);
|
|
9088
9089
|
child.unref();
|
|
9089
9090
|
const pid = child.pid;
|
|
9090
9091
|
if (!pid) {
|
|
@@ -9854,6 +9855,7 @@ var FAILURE_CODES = {
|
|
|
9854
9855
|
REACT_PROFILER_DEVTOOLS_RENDERER_MISSING: "REACT_PROFILER_DEVTOOLS_RENDERER_MISSING",
|
|
9855
9856
|
REACT_PROFILER_START_FAILED: "REACT_PROFILER_START_FAILED",
|
|
9856
9857
|
REACT_PROFILER_START_VERIFY_FAILED: "REACT_PROFILER_START_VERIFY_FAILED",
|
|
9858
|
+
REACT_PROFILER_SESSION_TORN_DOWN: "REACT_PROFILER_SESSION_TORN_DOWN",
|
|
9857
9859
|
REACT_PROFILER_HOOK_ERROR: "REACT_PROFILER_HOOK_ERROR",
|
|
9858
9860
|
REACT_PROFILER_ANALYZE_NO_DATA: "REACT_PROFILER_ANALYZE_NO_DATA",
|
|
9859
9861
|
NATIVE_PROFILER_FACTORY_OPTIONS_MISSING: "NATIVE_PROFILER_FACTORY_OPTIONS_MISSING",
|
|
@@ -29849,7 +29851,7 @@ async function getResolvedToolsUrl() {
|
|
|
29849
29851
|
const link3 = await readLinkConfig();
|
|
29850
29852
|
const envToken = process.env[AUTH_TOKEN_ENV];
|
|
29851
29853
|
return {
|
|
29852
|
-
url: envUrl,
|
|
29854
|
+
url: envUrl.replace(/\/+$/, ""),
|
|
29853
29855
|
source: "env",
|
|
29854
29856
|
...envToken ? { token: envToken } : {},
|
|
29855
29857
|
...link3 ? { shadowedLink: link3 } : {}
|
|
@@ -30809,8 +30811,13 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
30809
30811
|
if (msg.event === "progress") {
|
|
30810
30812
|
progress++;
|
|
30811
30813
|
onProgress(msg.data);
|
|
30812
|
-
} else if (msg.event === "result")
|
|
30813
|
-
|
|
30814
|
+
} else if (msg.event === "result") {
|
|
30815
|
+
final = {
|
|
30816
|
+
data: msg.data,
|
|
30817
|
+
note: msg.note,
|
|
30818
|
+
...msg.profiling === true ? { profiling: true } : {}
|
|
30819
|
+
};
|
|
30820
|
+
} else if (msg.event === "error") {
|
|
30814
30821
|
throw new ToolInvocationError(msg.error ?? "tool invocation failed", {
|
|
30815
30822
|
errorCode: msg.error_code,
|
|
30816
30823
|
errorKind: msg.error_kind
|
|
@@ -30857,7 +30864,11 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
30857
30864
|
if (!final) {
|
|
30858
30865
|
throw brokenStream(name, "the stream ended without a result", progress);
|
|
30859
30866
|
}
|
|
30860
|
-
return {
|
|
30867
|
+
return {
|
|
30868
|
+
data: final.data,
|
|
30869
|
+
note: final.note,
|
|
30870
|
+
...final.profiling ? { profiling: true } : {}
|
|
30871
|
+
};
|
|
30861
30872
|
}
|
|
30862
30873
|
function errorBodyMessage(body) {
|
|
30863
30874
|
if (Array.isArray(body.issues) && typeof body.message === "string") return body.message;
|
|
@@ -31030,7 +31041,8 @@ function createToolsClient(options = {}) {
|
|
|
31030
31041
|
return {
|
|
31031
31042
|
data: await settle2(streamed.data),
|
|
31032
31043
|
note: streamed.note,
|
|
31033
|
-
outputHint: meta3?.outputHint
|
|
31044
|
+
outputHint: meta3?.outputHint,
|
|
31045
|
+
...streamed.profiling ? { profiling: true } : {}
|
|
31034
31046
|
};
|
|
31035
31047
|
}
|
|
31036
31048
|
let json2;
|
|
@@ -31055,7 +31067,12 @@ function createToolsClient(options = {}) {
|
|
|
31055
31067
|
});
|
|
31056
31068
|
}
|
|
31057
31069
|
opts?.signal?.throwIfAborted();
|
|
31058
|
-
return {
|
|
31070
|
+
return {
|
|
31071
|
+
data: await settle2(json2.data),
|
|
31072
|
+
note: json2.note,
|
|
31073
|
+
outputHint: meta3?.outputHint,
|
|
31074
|
+
...json2.profiling === true ? { profiling: true } : {}
|
|
31075
|
+
};
|
|
31059
31076
|
}
|
|
31060
31077
|
return { fetchTools, fetchTool, callTool, baseUrl };
|
|
31061
31078
|
}
|
|
@@ -35577,7 +35594,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
35577
35594
|
var SESSION_ID2 = randomUUID5();
|
|
35578
35595
|
function readCliVersion() {
|
|
35579
35596
|
if (true) {
|
|
35580
|
-
return "0.30.2-next.
|
|
35597
|
+
return "0.30.2-next.21";
|
|
35581
35598
|
}
|
|
35582
35599
|
return "0.0.0";
|
|
35583
35600
|
}
|
|
@@ -38102,7 +38119,7 @@ function parseStartFlags(argv) {
|
|
|
38102
38119
|
}
|
|
38103
38120
|
return {
|
|
38104
38121
|
port: options.port === void 0 ? null : parsePort(options.port),
|
|
38105
|
-
host: options.host
|
|
38122
|
+
host: options.host?.trim() || "127.0.0.1",
|
|
38106
38123
|
idleTimeoutMinutes: options["idle-timeout"] === void 0 ? 0 : parseIdle(options["idle-timeout"]),
|
|
38107
38124
|
detach: options.detach === true,
|
|
38108
38125
|
force: options.force === true,
|
|
@@ -38159,7 +38176,7 @@ function isLoopback(host) {
|
|
|
38159
38176
|
return host === "127.0.0.1" || host === "localhost" || host === "::1";
|
|
38160
38177
|
}
|
|
38161
38178
|
function isWildcard(host) {
|
|
38162
|
-
return host === "0.0.0.0" || host === "::" || host === "::0"
|
|
38179
|
+
return host === "0.0.0.0" || host === "::" || host === "::0";
|
|
38163
38180
|
}
|
|
38164
38181
|
function primaryLanIPv4() {
|
|
38165
38182
|
const ifaces = networkInterfaces();
|
package/dist/client.js
CHANGED
|
@@ -8301,6 +8301,7 @@ function spawnToolsServer(paths, port, options = {}) {
|
|
|
8301
8301
|
stdio: ["ignore", "pipe", logFd],
|
|
8302
8302
|
env: buildToolsServerEnv(paths, port, process.env, options)
|
|
8303
8303
|
});
|
|
8304
|
+
fs4.closeSync(logFd);
|
|
8304
8305
|
child.unref();
|
|
8305
8306
|
const pid = child.pid;
|
|
8306
8307
|
if (!pid) {
|
|
@@ -9058,6 +9059,7 @@ var FAILURE_CODES = {
|
|
|
9058
9059
|
REACT_PROFILER_DEVTOOLS_RENDERER_MISSING: "REACT_PROFILER_DEVTOOLS_RENDERER_MISSING",
|
|
9059
9060
|
REACT_PROFILER_START_FAILED: "REACT_PROFILER_START_FAILED",
|
|
9060
9061
|
REACT_PROFILER_START_VERIFY_FAILED: "REACT_PROFILER_START_VERIFY_FAILED",
|
|
9062
|
+
REACT_PROFILER_SESSION_TORN_DOWN: "REACT_PROFILER_SESSION_TORN_DOWN",
|
|
9061
9063
|
REACT_PROFILER_HOOK_ERROR: "REACT_PROFILER_HOOK_ERROR",
|
|
9062
9064
|
REACT_PROFILER_ANALYZE_NO_DATA: "REACT_PROFILER_ANALYZE_NO_DATA",
|
|
9063
9065
|
NATIVE_PROFILER_FACTORY_OPTIONS_MISSING: "NATIVE_PROFILER_FACTORY_OPTIONS_MISSING",
|
|
@@ -9281,7 +9283,7 @@ async function getResolvedToolsUrl() {
|
|
|
9281
9283
|
const link2 = await readLinkConfig();
|
|
9282
9284
|
const envToken = process.env[AUTH_TOKEN_ENV];
|
|
9283
9285
|
return {
|
|
9284
|
-
url: envUrl,
|
|
9286
|
+
url: envUrl.replace(/\/+$/, ""),
|
|
9285
9287
|
source: "env",
|
|
9286
9288
|
...envToken ? { token: envToken } : {},
|
|
9287
9289
|
...link2 ? { shadowedLink: link2 } : {}
|
|
@@ -10189,8 +10191,13 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
10189
10191
|
if (msg.event === "progress") {
|
|
10190
10192
|
progress++;
|
|
10191
10193
|
onProgress(msg.data);
|
|
10192
|
-
} else if (msg.event === "result")
|
|
10193
|
-
|
|
10194
|
+
} else if (msg.event === "result") {
|
|
10195
|
+
final = {
|
|
10196
|
+
data: msg.data,
|
|
10197
|
+
note: msg.note,
|
|
10198
|
+
...msg.profiling === true ? { profiling: true } : {}
|
|
10199
|
+
};
|
|
10200
|
+
} else if (msg.event === "error") {
|
|
10194
10201
|
throw new ToolInvocationError(msg.error ?? "tool invocation failed", {
|
|
10195
10202
|
errorCode: msg.error_code,
|
|
10196
10203
|
errorKind: msg.error_kind
|
|
@@ -10237,7 +10244,11 @@ async function consumeToolStream(name, body, onProgress, signal) {
|
|
|
10237
10244
|
if (!final) {
|
|
10238
10245
|
throw brokenStream(name, "the stream ended without a result", progress);
|
|
10239
10246
|
}
|
|
10240
|
-
return {
|
|
10247
|
+
return {
|
|
10248
|
+
data: final.data,
|
|
10249
|
+
note: final.note,
|
|
10250
|
+
...final.profiling ? { profiling: true } : {}
|
|
10251
|
+
};
|
|
10241
10252
|
}
|
|
10242
10253
|
function errorBodyMessage(body) {
|
|
10243
10254
|
if (Array.isArray(body.issues) && typeof body.message === "string") return body.message;
|
|
@@ -10410,7 +10421,8 @@ function createToolsClient(options = {}) {
|
|
|
10410
10421
|
return {
|
|
10411
10422
|
data: await settle(streamed.data),
|
|
10412
10423
|
note: streamed.note,
|
|
10413
|
-
outputHint: meta?.outputHint
|
|
10424
|
+
outputHint: meta?.outputHint,
|
|
10425
|
+
...streamed.profiling ? { profiling: true } : {}
|
|
10414
10426
|
};
|
|
10415
10427
|
}
|
|
10416
10428
|
let json;
|
|
@@ -10435,7 +10447,12 @@ function createToolsClient(options = {}) {
|
|
|
10435
10447
|
});
|
|
10436
10448
|
}
|
|
10437
10449
|
opts?.signal?.throwIfAborted();
|
|
10438
|
-
return {
|
|
10450
|
+
return {
|
|
10451
|
+
data: await settle(json.data),
|
|
10452
|
+
note: json.note,
|
|
10453
|
+
outputHint: meta?.outputHint,
|
|
10454
|
+
...json.profiling === true ? { profiling: true } : {}
|
|
10455
|
+
};
|
|
10439
10456
|
}
|
|
10440
10457
|
return { fetchTools, fetchTool, callTool, baseUrl };
|
|
10441
10458
|
}
|
package/dist/installer.mjs
CHANGED
|
@@ -15962,6 +15962,7 @@ var FAILURE_CODES = {
|
|
|
15962
15962
|
REACT_PROFILER_DEVTOOLS_RENDERER_MISSING: "REACT_PROFILER_DEVTOOLS_RENDERER_MISSING",
|
|
15963
15963
|
REACT_PROFILER_START_FAILED: "REACT_PROFILER_START_FAILED",
|
|
15964
15964
|
REACT_PROFILER_START_VERIFY_FAILED: "REACT_PROFILER_START_VERIFY_FAILED",
|
|
15965
|
+
REACT_PROFILER_SESSION_TORN_DOWN: "REACT_PROFILER_SESSION_TORN_DOWN",
|
|
15965
15966
|
REACT_PROFILER_HOOK_ERROR: "REACT_PROFILER_HOOK_ERROR",
|
|
15966
15967
|
REACT_PROFILER_ANALYZE_NO_DATA: "REACT_PROFILER_ANALYZE_NO_DATA",
|
|
15967
15968
|
NATIVE_PROFILER_FACTORY_OPTIONS_MISSING: "NATIVE_PROFILER_FACTORY_OPTIONS_MISSING",
|
|
@@ -16899,7 +16900,7 @@ var _CI_VENDOR_COUNT_FOR_TEST = vendors_default.length;
|
|
|
16899
16900
|
var SESSION_ID = randomUUID4();
|
|
16900
16901
|
function readCliVersion() {
|
|
16901
16902
|
if (true) {
|
|
16902
|
-
return "0.30.2-next.
|
|
16903
|
+
return "0.30.2-next.21";
|
|
16903
16904
|
}
|
|
16904
16905
|
return "0.0.0";
|
|
16905
16906
|
}
|
|
@@ -6,6 +6,21 @@
|
|
|
6
6
|
objectVersion = 77;
|
|
7
7
|
objects = {
|
|
8
8
|
|
|
9
|
+
/* Begin PBXAggregateTarget section */
|
|
10
|
+
A00000000000000000000027 /* BrandRunner */ = {
|
|
11
|
+
isa = PBXAggregateTarget;
|
|
12
|
+
buildConfigurationList = A00000000000000000000028 /* Build configuration list for PBXAggregateTarget "BrandRunner" */;
|
|
13
|
+
buildPhases = (
|
|
14
|
+
A00000000000000000000031 /* Brand Runner App */,
|
|
15
|
+
);
|
|
16
|
+
dependencies = (
|
|
17
|
+
A00000000000000000000033 /* PBXTargetDependency */,
|
|
18
|
+
);
|
|
19
|
+
name = BrandRunner;
|
|
20
|
+
productName = BrandRunner;
|
|
21
|
+
};
|
|
22
|
+
/* End PBXAggregateTarget section */
|
|
23
|
+
|
|
9
24
|
/* Begin PBXContainerItemProxy section */
|
|
10
25
|
A00000000000000000000025 /* PBXContainerItemProxy */ = {
|
|
11
26
|
isa = PBXContainerItemProxy;
|
|
@@ -14,6 +29,13 @@
|
|
|
14
29
|
remoteGlobalIDString = A00000000000000000000011;
|
|
15
30
|
remoteInfo = ArgentRunner;
|
|
16
31
|
};
|
|
32
|
+
A00000000000000000000032 /* PBXContainerItemProxy */ = {
|
|
33
|
+
isa = PBXContainerItemProxy;
|
|
34
|
+
containerPortal = A00000000000000000000001 /* Project object */;
|
|
35
|
+
proxyType = 1;
|
|
36
|
+
remoteGlobalIDString = A00000000000000000000018;
|
|
37
|
+
remoteInfo = ArgentRunnerUITests;
|
|
38
|
+
};
|
|
17
39
|
/* End PBXContainerItemProxy section */
|
|
18
40
|
|
|
19
41
|
/* Begin PBXFileReference section */
|
|
@@ -134,6 +156,9 @@
|
|
|
134
156
|
CreatedOnToolsVersion = 26.0;
|
|
135
157
|
TestTargetID = A00000000000000000000011;
|
|
136
158
|
};
|
|
159
|
+
A00000000000000000000027 = {
|
|
160
|
+
CreatedOnToolsVersion = 26.0;
|
|
161
|
+
};
|
|
137
162
|
};
|
|
138
163
|
};
|
|
139
164
|
buildConfigurationList = A00000000000000000000002 /* Build configuration list for PBXProject "ArgentRunner" */;
|
|
@@ -152,6 +177,7 @@
|
|
|
152
177
|
targets = (
|
|
153
178
|
A00000000000000000000011 /* ArgentRunner */,
|
|
154
179
|
A00000000000000000000018 /* ArgentRunnerUITests */,
|
|
180
|
+
A00000000000000000000027 /* BrandRunner */,
|
|
155
181
|
);
|
|
156
182
|
};
|
|
157
183
|
/* End PBXProject section */
|
|
@@ -173,6 +199,28 @@
|
|
|
173
199
|
};
|
|
174
200
|
/* End PBXResourcesBuildPhase section */
|
|
175
201
|
|
|
202
|
+
/* Begin PBXShellScriptBuildPhase section */
|
|
203
|
+
A00000000000000000000031 /* Brand Runner App */ = {
|
|
204
|
+
isa = PBXShellScriptBuildPhase;
|
|
205
|
+
alwaysOutOfDate = 1;
|
|
206
|
+
buildActionMask = 2147483647;
|
|
207
|
+
files = (
|
|
208
|
+
);
|
|
209
|
+
inputFileListPaths = (
|
|
210
|
+
);
|
|
211
|
+
inputPaths = (
|
|
212
|
+
);
|
|
213
|
+
name = "Brand Runner App";
|
|
214
|
+
outputFileListPaths = (
|
|
215
|
+
);
|
|
216
|
+
outputPaths = (
|
|
217
|
+
);
|
|
218
|
+
runOnlyForDeploymentPostprocessing = 0;
|
|
219
|
+
shellPath = /bin/sh;
|
|
220
|
+
shellScript = "/bin/sh \"$SRCROOT/brand-runner.sh\"\n";
|
|
221
|
+
};
|
|
222
|
+
/* End PBXShellScriptBuildPhase section */
|
|
223
|
+
|
|
176
224
|
/* Begin PBXSourcesBuildPhase section */
|
|
177
225
|
A00000000000000000000015 /* Sources */ = {
|
|
178
226
|
isa = PBXSourcesBuildPhase;
|
|
@@ -196,6 +244,11 @@
|
|
|
196
244
|
target = A00000000000000000000011 /* ArgentRunner */;
|
|
197
245
|
targetProxy = A00000000000000000000025 /* PBXContainerItemProxy */;
|
|
198
246
|
};
|
|
247
|
+
A00000000000000000000033 /* PBXTargetDependency */ = {
|
|
248
|
+
isa = PBXTargetDependency;
|
|
249
|
+
target = A00000000000000000000018 /* ArgentRunnerUITests */;
|
|
250
|
+
targetProxy = A00000000000000000000032 /* PBXContainerItemProxy */;
|
|
251
|
+
};
|
|
199
252
|
/* End PBXTargetDependency section */
|
|
200
253
|
|
|
201
254
|
/* Begin XCBuildConfiguration section */
|
|
@@ -326,6 +379,7 @@
|
|
|
326
379
|
A00000000000000000000020 /* Debug */ = {
|
|
327
380
|
isa = XCBuildConfiguration;
|
|
328
381
|
buildSettings = {
|
|
382
|
+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
329
383
|
CODE_SIGN_STYLE = Automatic;
|
|
330
384
|
CURRENT_PROJECT_VERSION = 1;
|
|
331
385
|
GENERATE_INFOPLIST_FILE = YES;
|
|
@@ -341,6 +395,7 @@
|
|
|
341
395
|
A00000000000000000000021 /* Release */ = {
|
|
342
396
|
isa = XCBuildConfiguration;
|
|
343
397
|
buildSettings = {
|
|
398
|
+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
|
344
399
|
CODE_SIGN_STYLE = Automatic;
|
|
345
400
|
CURRENT_PROJECT_VERSION = 1;
|
|
346
401
|
GENERATE_INFOPLIST_FILE = YES;
|
|
@@ -353,6 +408,22 @@
|
|
|
353
408
|
};
|
|
354
409
|
name = Release;
|
|
355
410
|
};
|
|
411
|
+
A00000000000000000000029 /* Debug */ = {
|
|
412
|
+
isa = XCBuildConfiguration;
|
|
413
|
+
buildSettings = {
|
|
414
|
+
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
|
415
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
416
|
+
};
|
|
417
|
+
name = Debug;
|
|
418
|
+
};
|
|
419
|
+
A00000000000000000000030 /* Release */ = {
|
|
420
|
+
isa = XCBuildConfiguration;
|
|
421
|
+
buildSettings = {
|
|
422
|
+
ENABLE_USER_SCRIPT_SANDBOXING = NO;
|
|
423
|
+
PRODUCT_NAME = "$(TARGET_NAME)";
|
|
424
|
+
};
|
|
425
|
+
name = Release;
|
|
426
|
+
};
|
|
356
427
|
/* End XCBuildConfiguration section */
|
|
357
428
|
|
|
358
429
|
/* Begin XCConfigurationList section */
|
|
@@ -383,6 +454,15 @@
|
|
|
383
454
|
defaultConfigurationIsVisible = 0;
|
|
384
455
|
defaultConfigurationName = Release;
|
|
385
456
|
};
|
|
457
|
+
A00000000000000000000028 /* Build configuration list for PBXAggregateTarget "BrandRunner" */ = {
|
|
458
|
+
isa = XCConfigurationList;
|
|
459
|
+
buildConfigurations = (
|
|
460
|
+
A00000000000000000000029 /* Debug */,
|
|
461
|
+
A00000000000000000000030 /* Release */,
|
|
462
|
+
);
|
|
463
|
+
defaultConfigurationIsVisible = 0;
|
|
464
|
+
defaultConfigurationName = Release;
|
|
465
|
+
};
|
|
386
466
|
/* End XCConfigurationList section */
|
|
387
467
|
};
|
|
388
468
|
rootObject = A00000000000000000000001 /* Project object */;
|
|
@@ -20,6 +20,20 @@
|
|
|
20
20
|
ReferencedContainer = "container:ArgentRunner.xcodeproj">
|
|
21
21
|
</BuildableReference>
|
|
22
22
|
</BuildActionEntry>
|
|
23
|
+
<BuildActionEntry
|
|
24
|
+
buildForTesting = "YES"
|
|
25
|
+
buildForRunning = "NO"
|
|
26
|
+
buildForProfiling = "NO"
|
|
27
|
+
buildForArchiving = "NO"
|
|
28
|
+
buildForAnalyzing = "NO">
|
|
29
|
+
<BuildableReference
|
|
30
|
+
BuildableIdentifier = "primary"
|
|
31
|
+
BlueprintIdentifier = "A00000000000000000000027"
|
|
32
|
+
BuildableName = "BrandRunner"
|
|
33
|
+
BlueprintName = "BrandRunner"
|
|
34
|
+
ReferencedContainer = "container:ArgentRunner.xcodeproj">
|
|
35
|
+
</BuildableReference>
|
|
36
|
+
</BuildActionEntry>
|
|
23
37
|
</BuildActionEntries>
|
|
24
38
|
</BuildAction>
|
|
25
39
|
<TestAction
|
|
Binary file
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Xcode assembles the runner app from its own template after the test target's
|
|
3
|
+
# build phases, so its name and icon are set here and the signature re-sealed.
|
|
4
|
+
set -eu
|
|
5
|
+
|
|
6
|
+
runner="$BUILT_PRODUCTS_DIR/ArgentRunnerUITests-Runner.app"
|
|
7
|
+
tests="$runner/PlugIns/ArgentRunnerUITests.xctest"
|
|
8
|
+
|
|
9
|
+
cp "$tests/Assets.car" "$tests/AppIcon60x60@2x.png" "$runner/"
|
|
10
|
+
plutil -replace CFBundleDisplayName -string "Argent Runner" "$runner/Info.plist"
|
|
11
|
+
plutil -replace CFBundleIcons -json "$(plutil -extract CFBundleIcons json -o - "$tests/Info.plist")" "$runner/Info.plist"
|
|
12
|
+
|
|
13
|
+
# Only a bundle Xcode signed has a seal; the template executable carries
|
|
14
|
+
# Apple's own signature even in an unsigned build.
|
|
15
|
+
[ -d "$runner/_CodeSignature" ] || exit 0
|
|
16
|
+
|
|
17
|
+
if codesign -dvv "$runner" 2>&1 | grep -q '^Signature=adhoc'; then
|
|
18
|
+
identity=-
|
|
19
|
+
else
|
|
20
|
+
rm -f "$TARGET_TEMP_DIR/runner-cert"*
|
|
21
|
+
mkdir -p "$TARGET_TEMP_DIR"
|
|
22
|
+
codesign -d --extract-certificates="$TARGET_TEMP_DIR/runner-cert" "$runner"
|
|
23
|
+
identity=$(shasum -a 1 < "$TARGET_TEMP_DIR/runner-cert0" | cut -d ' ' -f 1)
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
codesign --force --sign "$identity" --timestamp=none --generate-entitlement-der \
|
|
27
|
+
--preserve-metadata=entitlements,requirements,flags "$runner"
|