ios-agent-mcp 2.6.0 → 2.7.1
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/README.md +76 -10
- package/data/knowledge.json +1 -1
- package/dist/analyzers/launch-screen.d.ts +12 -0
- package/dist/analyzers/launch-screen.js +377 -0
- package/dist/analyzers/launch-screen.js.map +1 -0
- package/dist/analyzers/performance.js +2 -2
- package/dist/analyzers/performance.js.map +1 -1
- package/dist/development-feedback.d.ts +3 -0
- package/dist/development-feedback.js +12 -0
- package/dist/development-feedback.js.map +1 -0
- package/dist/index.js +11 -4
- package/dist/index.js.map +1 -1
- package/dist/issue-report.d.ts +70 -0
- package/dist/issue-report.js +41 -0
- package/dist/issue-report.js.map +1 -0
- package/dist/private-feedback.d.ts +90 -0
- package/dist/private-feedback.js +55 -0
- package/dist/private-feedback.js.map +1 -0
- package/dist/release/model.d.ts +360 -0
- package/dist/release/model.js +546 -0
- package/dist/release/model.js.map +1 -0
- package/dist/release/package.d.ts +16 -0
- package/dist/release/package.js +166 -0
- package/dist/release/package.js.map +1 -0
- package/dist/release/project.d.ts +4 -0
- package/dist/release/project.js +45 -0
- package/dist/release/project.js.map +1 -0
- package/dist/result.d.ts +8 -8
- package/dist/unified.js +35 -4
- package/dist/unified.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/mcp.json +9 -1
- package/package.json +6 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Finding } from './types.js';
|
|
2
|
+
export interface LaunchReport {
|
|
3
|
+
findings: Finding[];
|
|
4
|
+
coverage: string[];
|
|
5
|
+
configurations: number;
|
|
6
|
+
}
|
|
7
|
+
/** Inventory never follows symlinks; incomplete scans cannot prove missing resources. */
|
|
8
|
+
export declare function reviewLaunchScreens(root: string, selection?: {
|
|
9
|
+
project: string;
|
|
10
|
+
target: string;
|
|
11
|
+
configuration: string;
|
|
12
|
+
}): Promise<LaunchReport>;
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/** Target-aware, read-only launch configuration checks. Unknown evidence is not a defect. */
|
|
2
|
+
import { readdir, readFile, stat } from 'node:fs/promises';
|
|
3
|
+
import { posix } from 'node:path';
|
|
4
|
+
import * as plist from 'plist';
|
|
5
|
+
import { XMLParser, XMLValidator } from 'fast-xml-parser';
|
|
6
|
+
import { projectPaths, parsePropertyList } from '../release/project.js';
|
|
7
|
+
const DOC = 'docs/tooling/launch-screen-review.md';
|
|
8
|
+
const skip = new Set(['.git', '.ios-agent', '.build', 'DerivedData', 'Pods', 'Carthage', 'node_modules', 'build', 'vendor', 'Vendor']);
|
|
9
|
+
const xml = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_', processEntities: false });
|
|
10
|
+
const dict = (v) => !!v && typeof v === 'object' && !Array.isArray(v);
|
|
11
|
+
const literal = (v) => typeof v === 'string' && !/\$[({]/.test(v);
|
|
12
|
+
const yes = (v) => v === 'YES' || v === true;
|
|
13
|
+
const array = (v) => Array.isArray(v) ? v : v ? [v] : [];
|
|
14
|
+
/** Inventory never follows symlinks; incomplete scans cannot prove missing resources. */
|
|
15
|
+
export async function reviewLaunchScreens(root, selection) {
|
|
16
|
+
const findings = [], coverage = [];
|
|
17
|
+
const excluded = new Set();
|
|
18
|
+
const files = new Set(), contents = new Map();
|
|
19
|
+
let complete = true, visited = 0, configurations = 0, parsedBytes = 0;
|
|
20
|
+
async function walk(dir) {
|
|
21
|
+
if (++visited > 10000) {
|
|
22
|
+
complete = false;
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
let entries;
|
|
26
|
+
try {
|
|
27
|
+
entries = await readdir(posix.join(root, dir), { withFileTypes: true });
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
complete = false;
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
for (const e of entries) {
|
|
34
|
+
const p = posix.join(dir, e.name);
|
|
35
|
+
if (e.isSymbolicLink()) {
|
|
36
|
+
complete = false;
|
|
37
|
+
continue;
|
|
38
|
+
}
|
|
39
|
+
if (e.isDirectory()) {
|
|
40
|
+
if (!skip.has(e.name))
|
|
41
|
+
await walk(p);
|
|
42
|
+
else
|
|
43
|
+
excluded.add(p);
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (!e.isFile())
|
|
47
|
+
continue;
|
|
48
|
+
if (files.size >= 10000) {
|
|
49
|
+
complete = false;
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
files.add(p);
|
|
53
|
+
if (/\.(pbxproj|plist|storyboard)$|\/Contents\.json$/.test(p)) {
|
|
54
|
+
try {
|
|
55
|
+
const size = (await stat(posix.join(root, p))).size;
|
|
56
|
+
if (size > 1024 * 1024 || parsedBytes + size > 32 * 1024 * 1024) {
|
|
57
|
+
complete = false;
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
parsedBytes += size;
|
|
61
|
+
const b = await readFile(posix.join(root, p));
|
|
62
|
+
if (b.length > 1024 * 1024) {
|
|
63
|
+
complete = false;
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
contents.set(p, b);
|
|
67
|
+
}
|
|
68
|
+
catch {
|
|
69
|
+
complete = false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
await walk('');
|
|
75
|
+
if (!complete)
|
|
76
|
+
coverage.push('Inventory incomplete (limits, unreadable files or symlinks); missing-resource checks suppressed.');
|
|
77
|
+
function issue(file, rule, message, fix, token = '', severity = 'serious') {
|
|
78
|
+
const buffer = contents.get(file);
|
|
79
|
+
const source = buffer?.subarray(0, 6).toString() === 'bplist' ? '' : buffer?.toString('utf8') || '';
|
|
80
|
+
const lines = source.split('\n');
|
|
81
|
+
const index = token ? lines.findIndex(l => l.includes(token)) : -1;
|
|
82
|
+
findings.push({ file, line: index < 0 ? 1 : index + 1, rule, severity, message,
|
|
83
|
+
consequence: 'The configured launch appearance may be unavailable or differ from the intended static launch screen.',
|
|
84
|
+
fix, doc: DOC, excerpt: index < 0 ? '' : lines[index].trim() });
|
|
85
|
+
}
|
|
86
|
+
function parsePlist(p) {
|
|
87
|
+
const b = contents.get(p);
|
|
88
|
+
if (!b)
|
|
89
|
+
return;
|
|
90
|
+
try {
|
|
91
|
+
const result = parsePropertyList(b);
|
|
92
|
+
return dict(result) ? result : undefined;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
for (const project of [...files].filter(p => p.endsWith('.xcodeproj/project.pbxproj') && (!selection || selection.project === p))) {
|
|
99
|
+
let parsed;
|
|
100
|
+
try {
|
|
101
|
+
parsed = plist.parseOpenStep(contents.get(project).toString());
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
coverage.push(`${project}: cannot parse project; skipped.`);
|
|
105
|
+
continue;
|
|
106
|
+
}
|
|
107
|
+
const objects = parsed.objects || {}, base = posix.dirname(posix.dirname(project));
|
|
108
|
+
const projectObj = objects[parsed.rootObject];
|
|
109
|
+
if (!projectObj) {
|
|
110
|
+
coverage.push(`${project}: missing project object.`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
const filePath = projectPaths(objects, base);
|
|
114
|
+
const configs = (id) => array(objects[id]?.buildConfigurations).map(k => objects[k]).filter(Boolean);
|
|
115
|
+
for (const target of array(projectObj.targets).map(id => objects[id]).filter((o) => o && o.isa === 'PBXNativeTarget' && o.productType === 'com.apple.product-type.application')) {
|
|
116
|
+
if (selection && target.name !== selection.target)
|
|
117
|
+
continue;
|
|
118
|
+
const resources = new Set();
|
|
119
|
+
let resourceKnown = !array(target.fileSystemSynchronizedGroups).length;
|
|
120
|
+
for (const id of array(target.buildPhases)) {
|
|
121
|
+
const phase = objects[id];
|
|
122
|
+
if (phase?.isa === 'PBXShellScriptBuildPhase' || phase?.isa === 'PBXCopyFilesBuildPhase')
|
|
123
|
+
resourceKnown = false;
|
|
124
|
+
if (phase?.isa !== 'PBXResourcesBuildPhase')
|
|
125
|
+
continue;
|
|
126
|
+
function resource(ref) {
|
|
127
|
+
const o = objects[ref];
|
|
128
|
+
if (!o) {
|
|
129
|
+
resourceKnown = false;
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
if (o.isa === 'PBXVariantGroup') {
|
|
133
|
+
for (const c of array(o.children))
|
|
134
|
+
resource(c);
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const p = filePath(ref);
|
|
138
|
+
if (p === undefined)
|
|
139
|
+
resourceKnown = false;
|
|
140
|
+
else {
|
|
141
|
+
resources.add(p);
|
|
142
|
+
if ([...excluded].some(dir => p === dir || p.startsWith(dir + '/') || dir.startsWith(p + '/')))
|
|
143
|
+
resourceKnown = false;
|
|
144
|
+
if (o.lastKnownFileType === 'folder' || o.explicitFileType === 'folder')
|
|
145
|
+
resourceKnown = false;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
for (const build of array(phase.files)) {
|
|
149
|
+
const bf = objects[build];
|
|
150
|
+
if (bf?.platformFilter || bf?.platformFilters) {
|
|
151
|
+
resourceKnown = false;
|
|
152
|
+
continue;
|
|
153
|
+
}
|
|
154
|
+
resource(bf?.fileRef);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
for (const cfg of configs(target.buildConfigurationList)) {
|
|
158
|
+
if (selection && cfg.name !== selection.configuration)
|
|
159
|
+
continue;
|
|
160
|
+
const pc = configs(projectObj.buildConfigurationList).find(c => c.name === cfg.name);
|
|
161
|
+
const label = `${target.name || 'app'}/${cfg.name || 'configuration'}`;
|
|
162
|
+
const settings = { ...(pc?.buildSettings || {}), ...(cfg.buildSettings || {}) };
|
|
163
|
+
if (settings.EXCLUDED_SOURCE_FILE_NAMES || settings.INCLUDED_SOURCE_FILE_NAMES) {
|
|
164
|
+
coverage.push(`${label}: resource inclusion/exclusion settings require Xcode resolution; skipped.`);
|
|
165
|
+
continue;
|
|
166
|
+
}
|
|
167
|
+
if (cfg.baseConfigurationReference || pc?.baseConfigurationReference || Object.keys(settings).some(k => k.includes('['))) {
|
|
168
|
+
coverage.push(`${label}: xcconfig or conditional settings need Xcode resolution; skipped.`);
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
if (!/^iphone(os|simulator)/.test(settings.SDKROOT || '') && !String(settings.SUPPORTED_PLATFORMS || '').includes('iphone'))
|
|
172
|
+
continue;
|
|
173
|
+
if (settings.INFOPLIST_PREPROCESS === 'YES') {
|
|
174
|
+
coverage.push(`${label}: preprocessed plist skipped.`);
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
let info = {}, source = project;
|
|
178
|
+
if (['GENERATE_INFOPLIST_FILE', 'INFOPLIST_KEY_UILaunchScreen_Generation'].some(k => settings[k] !== undefined && !['YES', 'NO', true, false].includes(settings[k]))) {
|
|
179
|
+
coverage.push(`${label}: unresolved plist generation settings; skipped.`);
|
|
180
|
+
continue;
|
|
181
|
+
}
|
|
182
|
+
const generated = yes(settings.GENERATE_INFOPLIST_FILE);
|
|
183
|
+
if (settings.INFOPLIST_FILE) {
|
|
184
|
+
let p = settings.INFOPLIST_FILE;
|
|
185
|
+
if (typeof p !== 'string') {
|
|
186
|
+
coverage.push(`${label}: nonliteral plist path.`);
|
|
187
|
+
continue;
|
|
188
|
+
}
|
|
189
|
+
p = p.replace(/\$\((SRCROOT|PROJECT_DIR)\)|\$\{(SRCROOT|PROJECT_DIR)\}/g, base === '.' ? '.' : base);
|
|
190
|
+
if (!literal(p) || p.startsWith('/')) {
|
|
191
|
+
coverage.push(`${label}: unresolved plist path.`);
|
|
192
|
+
continue;
|
|
193
|
+
}
|
|
194
|
+
// Plain paths are relative to the directory containing the xcodeproj.
|
|
195
|
+
if (!/\$[({](SRCROOT|PROJECT_DIR)/.test(settings.INFOPLIST_FILE))
|
|
196
|
+
p = posix.join(base, p);
|
|
197
|
+
p = posix.normalize(p);
|
|
198
|
+
const parsedInfo = parsePlist(p);
|
|
199
|
+
if (!parsedInfo) {
|
|
200
|
+
coverage.push(`${label}: ${p} is missing, unreadable or unsupported; configuration not evaluated.`);
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
info = parsedInfo;
|
|
204
|
+
source = p;
|
|
205
|
+
}
|
|
206
|
+
else if (!generated) {
|
|
207
|
+
coverage.push(`${label}: no resolved Info.plist; skipped.`);
|
|
208
|
+
continue;
|
|
209
|
+
}
|
|
210
|
+
if (generated) {
|
|
211
|
+
for (const [k, v] of Object.entries(settings))
|
|
212
|
+
if (k.startsWith('INFOPLIST_KEY_') && k !== 'INFOPLIST_KEY_UILaunchScreen_Generation')
|
|
213
|
+
info[k.slice(14)] = v;
|
|
214
|
+
if (yes(settings.INFOPLIST_KEY_UILaunchScreen_Generation) && info.UILaunchScreen === undefined)
|
|
215
|
+
info.UILaunchScreen = {};
|
|
216
|
+
}
|
|
217
|
+
else if (Object.keys(settings).some(k => k.startsWith('INFOPLIST_KEY_UILaunch'))) {
|
|
218
|
+
coverage.push(`${label}: launch build overrides with non-generated plist require resolved build evidence; skipped.`);
|
|
219
|
+
continue;
|
|
220
|
+
}
|
|
221
|
+
if (Object.entries(info).some(([k, v]) => k.startsWith('UILaunch') && typeof v === 'string' && !literal(v))) {
|
|
222
|
+
coverage.push(`${label}: unresolved launch substitution; skipped.`);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
configurations++;
|
|
226
|
+
const storyboard = info.UILaunchStoryboardName;
|
|
227
|
+
const launch = info.UILaunchScreen;
|
|
228
|
+
const alternatives = Object.keys(info).some(k => /^UILaunch(Storyboards|Screens|Image)|^UILaunch.*[~\-]/.test(k));
|
|
229
|
+
if (alternatives) {
|
|
230
|
+
coverage.push(`${label}: device-specific, multi-launch or legacy configuration not evaluated.`);
|
|
231
|
+
continue;
|
|
232
|
+
}
|
|
233
|
+
if (storyboard === undefined && launch === undefined) {
|
|
234
|
+
if (resourceKnown)
|
|
235
|
+
issue(source, 'launch-configuration-missing', `${label}: resolved iOS app configuration has no launch-screen mechanism.`, 'Configure a static launch storyboard or UILaunchScreen dictionary; generated plists may use UILaunchScreen generation.', 'UILaunch');
|
|
236
|
+
else
|
|
237
|
+
coverage.push(`${label}: no explicit mechanism, but generated/synchronized resources prevent a missing-config conclusion.`);
|
|
238
|
+
continue;
|
|
239
|
+
}
|
|
240
|
+
if (launch !== undefined && !dict(launch))
|
|
241
|
+
issue(source, 'launch-configuration-type', `${label}: UILaunchScreen must be a dictionary.`, 'Use a dictionary, including an empty dictionary for a plain launch appearance.', 'UILaunchScreen');
|
|
242
|
+
if (storyboard !== undefined && (typeof storyboard !== 'string' || !storyboard.trim())) {
|
|
243
|
+
issue(source, 'launch-configuration-type', `${label}: UILaunchStoryboardName must be a nonempty string.`, 'Set the storyboard base name or remove the unused key.', 'UILaunchStoryboardName');
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
const minimum = Number.parseFloat(settings.IPHONEOS_DEPLOYMENT_TARGET || info.MinimumOSVersion || '0');
|
|
247
|
+
if (!storyboard && dict(launch) && minimum > 0 && minimum < 14)
|
|
248
|
+
issue(source, 'launch-dictionary-availability', `${label}: dictionary-only launch configuration requires iOS 14, but the deployment target is ${minimum}.`, 'Supply a storyboard fallback for older supported systems or intentionally raise the deployment target.', 'UILaunchScreen');
|
|
249
|
+
if (storyboard && dict(launch) && Number.parseFloat(settings.IPHONEOS_DEPLOYMENT_TARGET || info.MinimumOSVersion || '0') >= 14) {
|
|
250
|
+
issue(source, 'launch-mechanisms-overlap', `${label}: both single-storyboard and dictionary launch mechanisms are configured.`, 'Review the intended mechanism and remove redundant configuration; retain deliberate compatibility fallbacks.', 'UILaunch', 'minor');
|
|
251
|
+
}
|
|
252
|
+
const catalogs = [...resources].filter(p => p.endsWith('.xcassets'));
|
|
253
|
+
const assetSets = [...files].filter(p => p.endsWith('/Contents.json') && catalogs.some(c => p.startsWith(c + '/')));
|
|
254
|
+
let namespacesKnown = true;
|
|
255
|
+
const assetName = (p) => {
|
|
256
|
+
const dir = posix.dirname(p);
|
|
257
|
+
const catalog = catalogs.find(c => p.startsWith(c + '/'));
|
|
258
|
+
const parts = dir.slice(catalog.length + 1).split('/');
|
|
259
|
+
const name = parts.pop().replace(/\.(imageset|colorset)$/, '');
|
|
260
|
+
let prefix = '';
|
|
261
|
+
let current = catalog;
|
|
262
|
+
for (const part of parts) {
|
|
263
|
+
current += '/' + part;
|
|
264
|
+
if (files.has(current + '/Contents.json')) {
|
|
265
|
+
try {
|
|
266
|
+
if (JSON.parse(contents.get(current + '/Contents.json').toString()).properties?.['provides-namespace'])
|
|
267
|
+
prefix += part + '/';
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
namespacesKnown = false;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return prefix + name;
|
|
275
|
+
};
|
|
276
|
+
function asset(name, kind, origin) {
|
|
277
|
+
if (typeof name !== 'string' || !name)
|
|
278
|
+
return;
|
|
279
|
+
if (!literal(name)) {
|
|
280
|
+
coverage.push(`${label}: unresolved launch asset name.`);
|
|
281
|
+
return;
|
|
282
|
+
}
|
|
283
|
+
if (!resourceKnown || !complete) {
|
|
284
|
+
coverage.push(`${label}: asset membership incomplete; ${name} not checked.`);
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
const candidates = assetSets.filter(p => p.endsWith(kind === 'image' ? '.imageset/Contents.json' : '.colorset/Contents.json') && assetName(p) === name);
|
|
288
|
+
if (!namespacesKnown) {
|
|
289
|
+
coverage.push(`${label}: invalid asset namespace metadata; asset absence not evaluated.`);
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
const loose = kind === 'image' && [...resources].some(p => files.has(p) && posix.basename(p).replace(/(@[23]x)?\.(png|jpg|jpeg|pdf)$/i, '') === name.replace(/\.(png|jpg|jpeg|pdf)$/i, ''));
|
|
293
|
+
if (!candidates.length && !loose)
|
|
294
|
+
issue(origin, 'launch-asset-missing', `${label}: launch ${kind} “${name}” is absent from the target's explicit resources.`, 'Correct the case-sensitive name or add the matching asset to this target.', name);
|
|
295
|
+
for (const p of candidates) {
|
|
296
|
+
let data;
|
|
297
|
+
try {
|
|
298
|
+
data = JSON.parse(contents.get(p).toString());
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
coverage.push(`${p}: invalid/unreadable asset metadata.`);
|
|
302
|
+
continue;
|
|
303
|
+
}
|
|
304
|
+
for (const entry of array(data.images))
|
|
305
|
+
if (literal(entry.filename) && !files.has(posix.join(posix.dirname(p), entry.filename)))
|
|
306
|
+
issue(p, 'launch-asset-file-missing', `${label}: launch image asset references missing file “${entry.filename}”.`, 'Restore the image payload or correct Contents.json.', entry.filename);
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (dict(launch)) {
|
|
310
|
+
asset(launch.UIImageName, 'image', source);
|
|
311
|
+
asset(launch.UIColorName, 'color', source);
|
|
312
|
+
}
|
|
313
|
+
if (!storyboard)
|
|
314
|
+
continue;
|
|
315
|
+
const name = storyboard.replace(/\.storyboard$/, '');
|
|
316
|
+
const matches = [...resources].filter(p => p.endsWith('.storyboard') && posix.basename(p, '.storyboard') === name);
|
|
317
|
+
if (!matches.length) {
|
|
318
|
+
if (complete && resourceKnown)
|
|
319
|
+
issue(source, 'launch-storyboard-missing', `${label}: launch storyboard “${storyboard}” is not in this target's resources.`, 'Correct the launch name and target resource membership; a file existing elsewhere is insufficient.', storyboard);
|
|
320
|
+
else
|
|
321
|
+
coverage.push(`${label}: storyboard membership is unresolved.`);
|
|
322
|
+
continue;
|
|
323
|
+
}
|
|
324
|
+
for (const p of matches) {
|
|
325
|
+
const text = contents.get(p)?.toString();
|
|
326
|
+
if (!text) {
|
|
327
|
+
if (complete && resourceKnown && !files.has(p))
|
|
328
|
+
issue(source, 'launch-storyboard-missing', `${label}: referenced launch storyboard file is missing: ${p}.`, 'Restore the storyboard or correct its project reference.', storyboard);
|
|
329
|
+
else
|
|
330
|
+
coverage.push(`${p}: storyboard unreadable.`);
|
|
331
|
+
continue;
|
|
332
|
+
}
|
|
333
|
+
if (XMLValidator.validate(text) !== true) {
|
|
334
|
+
issue(p, 'launch-storyboard-invalid', `${label}: launch storyboard is malformed XML.`, 'Repair the storyboard XML in Interface Builder.');
|
|
335
|
+
continue;
|
|
336
|
+
}
|
|
337
|
+
const document = xml.parse(text).document;
|
|
338
|
+
if (!document || document['@_type'] !== 'com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB') {
|
|
339
|
+
coverage.push(`${p}: unsupported Interface Builder document.`);
|
|
340
|
+
continue;
|
|
341
|
+
}
|
|
342
|
+
const nodes = [];
|
|
343
|
+
function descend(o) { if (!dict(o))
|
|
344
|
+
return; for (const [k, v] of Object.entries(o))
|
|
345
|
+
for (const n of array(v))
|
|
346
|
+
if (dict(n)) {
|
|
347
|
+
nodes.push([k, n]);
|
|
348
|
+
descend(n);
|
|
349
|
+
} }
|
|
350
|
+
descend(document);
|
|
351
|
+
const initial = document['@_initialViewController'];
|
|
352
|
+
if (!initial || !nodes.some(([, n]) => n['@_id'] === initial))
|
|
353
|
+
issue(p, 'launch-initial-controller-missing', `${label}: launch storyboard has no resolvable initial view controller.`, 'Select the launch UIViewController as the initial view controller.', 'document');
|
|
354
|
+
if (nodes.some(([, n]) => n['@_customClass']))
|
|
355
|
+
issue(p, 'launch-custom-class', `${label}: launch storyboard uses a custom class.`, 'Use standard UIKit views; move executable UI behavior into the app after launch.', 'customClass');
|
|
356
|
+
if (nodes.some(([k]) => ['action', 'outlet', 'outletCollection'].includes(k)))
|
|
357
|
+
issue(p, 'launch-code-connection', `${label}: launch storyboard contains actions or outlets.`, 'Remove code connections from the static launch document.', 'connections');
|
|
358
|
+
if (nodes.some(([k]) => k === 'userDefinedRuntimeAttribute'))
|
|
359
|
+
issue(p, 'launch-runtime-attribute', `${label}: launch storyboard has runtime attributes.`, 'Remove runtime attributes; launch screens cannot execute app configuration code.', 'userDefinedRuntimeAttribute');
|
|
360
|
+
if (nodes.some(([k]) => k === 'webView'))
|
|
361
|
+
issue(p, 'launch-deprecated-view', `${label}: launch storyboard contains a deprecated UIWebView.`, 'Replace it with a static supported UIKit view.', 'webView');
|
|
362
|
+
const systemImages = new Set(nodes.filter(([k, n]) => k === 'image' && n['@_catalog'] === 'system').map(([, n]) => n['@_name']));
|
|
363
|
+
for (const [k, n] of nodes) {
|
|
364
|
+
if (n['@_image'] && n['@_catalog'] !== 'system' && !systemImages.has(n['@_image']))
|
|
365
|
+
asset(n['@_image'], 'image', p);
|
|
366
|
+
if (k === 'color' && n['@_name'])
|
|
367
|
+
asset(n['@_name'], 'color', p);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
if (!configurations)
|
|
374
|
+
coverage.push('No resolved iOS application configurations were evaluated; this is not a clean launch-screen certification.');
|
|
375
|
+
return { findings, coverage: [...new Set(coverage)], configurations };
|
|
376
|
+
}
|
|
377
|
+
//# sourceMappingURL=launch-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"launch-screen.js","sourceRoot":"","sources":["../../src/analyzers/launch-screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,8 +48,8 @@ export function analyzePerformance(file) {
|
|
|
48
48
|
const inBody = (line) => bodyRanges.some(([start, end]) => line >= start && line <= end);
|
|
49
49
|
eachLine(file, (line, number) => {
|
|
50
50
|
const index = number - 1;
|
|
51
|
-
//
|
|
52
|
-
if (/\b(DateFormatter|NumberFormatter|ISO8601DateFormatter|DateComponentsFormatter
|
|
51
|
+
// Formatter-specific advice does not apply to JSON encoders or decoders.
|
|
52
|
+
if (/\b(DateFormatter|NumberFormatter|ISO8601DateFormatter|DateComponentsFormatter)\s*\(\s*\)/.test(line)) {
|
|
53
53
|
const scoped = inBody(number);
|
|
54
54
|
push(number, line, scoped ? "formatter-allocated-in-body" : "formatter-allocated-repeatedly", scoped ? "serious" : "minor", `${scoped ? "Formatter allocated inside `body`" : "Formatter allocated inline"}.`, scoped
|
|
55
55
|
? "`body` re-runs on every state change, and constructing a DateFormatter is one of the most expensive routine operations on the platform. In a scrolling list this is the hitch."
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/analyzers/performance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE1E,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAC7C,MAAM,WAAW,GAAG,oCAAoC,CAAC;AACzD,MAAM,eAAe,GAAG,iCAAiC,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAgB;IACjD,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE9C,MAAM,IAAI,GAAG,CACX,IAAY,EACZ,OAAe,EACf,IAAY,EACZ,QAA6B,EAC7B,OAAe,EACf,WAAmB,EACnB,GAAW,EACX,GAAG,GAAG,QAAQ,EACd,EAAE,CACF,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,IAAI;QACJ,QAAQ;QACR,IAAI;QACJ,OAAO;QACP,WAAW;QACX,GAAG;QACH,GAAG;QACH,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE;KACxB,CAAC,CAAC;IAEL,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAExD,gFAAgF;IAChF,MAAM,UAAU,GAA4B,EAAE,CAAC;IAC/C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAAE,SAAS;QACrE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,IAAI,MAAM,GAAG,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5D,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACnD,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACnD,IAAI,CAAC,OAAO,IAAI,KAAK,GAAG,CAAC;gBAAE,OAAO,GAAG,IAAI,CAAC;YAC1C,IAAI,OAAO,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC1B,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBACzC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;IAElE,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;QAC9B,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAEzB,
|
|
1
|
+
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/analyzers/performance.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/** Local agent guidance only. Never receives a reporter or transmits diagnostics. */
|
|
2
|
+
export declare const DEVELOPMENT_FAILURE_GUIDANCE = "Developer workflow for this failed operation:\nExplain the actual diagnostic above to the developer in their current coding session. Separate observed evidence from a suspected cause; do not treat an ordinary app bug as an ios-agent package bug.\nState the smallest next check or fix within the approved task, run the relevant verification, then show what passed and what remains blocked. Keep retries bounded and preserve cancellation. Do not claim success without evidence.\nKeep project-specific details in this session; do not put troubleshooting banners, reporting controls or maintainer branding into the app being built. Redact secrets from any explanation.\nThis tool result is not confirmation of a public report. Never upload source, paths, raw logs or exception text. Automatic reporting is not implemented. Use prepare_issue_report for a local preview; public reproduction steps require a separately reviewed, authorized submission.";
|
|
3
|
+
export declare function withDevelopmentFeedback<T extends Record<string, unknown>>(result: T): T;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** Local agent guidance only. Never receives a reporter or transmits diagnostics. */
|
|
2
|
+
export const DEVELOPMENT_FAILURE_GUIDANCE = `Developer workflow for this failed operation:
|
|
3
|
+
Explain the actual diagnostic above to the developer in their current coding session. Separate observed evidence from a suspected cause; do not treat an ordinary app bug as an ios-agent package bug.
|
|
4
|
+
State the smallest next check or fix within the approved task, run the relevant verification, then show what passed and what remains blocked. Keep retries bounded and preserve cancellation. Do not claim success without evidence.
|
|
5
|
+
Keep project-specific details in this session; do not put troubleshooting banners, reporting controls or maintainer branding into the app being built. Redact secrets from any explanation.
|
|
6
|
+
This tool result is not confirmation of a public report. Never upload source, paths, raw logs or exception text. Automatic reporting is not implemented. Use prepare_issue_report for a local preview; public reproduction steps require a separately reviewed, authorized submission.`;
|
|
7
|
+
export function withDevelopmentFeedback(result) {
|
|
8
|
+
if (result.isError !== true || !Array.isArray(result.content))
|
|
9
|
+
return result;
|
|
10
|
+
return { ...result, content: [...result.content, { type: 'text', text: DEVELOPMENT_FAILURE_GUIDANCE }] };
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=development-feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"development-feedback.js","sourceRoot":"","sources":["../src/development-feedback.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,4BAA4B,GAAG;;;;uRAI2O,CAAC;AAExR,MAAM,UAAU,uBAAuB,CAAoC,MAAS;IAClF,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC7E,OAAO,EAAC,GAAG,MAAM,EAAE,OAAO,EAAC,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,EAAC,IAAI,EAAC,MAAM,EAAE,IAAI,EAAC,4BAA4B,EAAC,CAAC,EAAC,CAAC;AACpG,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { reviewLaunchScreens } from './analyzers/launch-screen.js';
|
|
2
3
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
4
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
5
|
import { z } from "zod";
|
|
@@ -165,16 +166,18 @@ server.registerTool("check_availability_guards", {
|
|
|
165
166
|
}, async ({ path }) => scanAndRender(path, "Availability Guard Check", (files) => files.flatMap(analyzeAvailability)));
|
|
166
167
|
server.registerTool("audit_app_store_readiness", {
|
|
167
168
|
title: "Audit App Store submission readiness",
|
|
168
|
-
description: "Check a Swift project for issues that cause App Store rejection or runtime termination: permission-gated frameworks used without an Info.plist purpose string, a missing PrivacyInfo.xcprivacy manifest, unlocalized user-facing strings, icon-only buttons with no accessibility label,
|
|
169
|
+
description: "Check a Swift project for issues that cause App Store rejection or runtime termination: permission-gated frameworks used without an Info.plist purpose string, a missing PrivacyInfo.xcprivacy manifest, unlocalized user-facing strings, icon-only buttons with no accessibility label, print() used for logging, and target-aware launch-screen configuration/storyboard/asset checks with explicit coverage limitations. Use before submitting to App Review.",
|
|
169
170
|
inputSchema: pathInput,
|
|
170
171
|
}, async ({ path }) => {
|
|
171
172
|
try {
|
|
172
173
|
const root = await resolveProjectRoot(path);
|
|
173
|
-
const [files, context] = await Promise.all([
|
|
174
|
+
const [files, context, launch] = await Promise.all([
|
|
174
175
|
readSwiftFiles(root),
|
|
175
176
|
readProjectContext(root),
|
|
177
|
+
reviewLaunchScreens(root),
|
|
176
178
|
]);
|
|
177
179
|
const findings = [
|
|
180
|
+
...launch.findings,
|
|
178
181
|
...analyzeProjectLevelAppStore(context),
|
|
179
182
|
...files.flatMap((file) => analyzeAppStore(file, context)),
|
|
180
183
|
];
|
|
@@ -182,7 +185,7 @@ server.registerTool("audit_app_store_readiness", {
|
|
|
182
185
|
content: [
|
|
183
186
|
{
|
|
184
187
|
type: "text",
|
|
185
|
-
text: renderFindings("App Store Readiness Audit", findings, files.length),
|
|
188
|
+
text: renderFindings("App Store Readiness Audit", findings, files.length) + "\n\nLaunch-screen coverage: " + launch.configurations + " configurations.\n" + launch.coverage.map(x => "- " + x).join("\n"),
|
|
186
189
|
},
|
|
187
190
|
],
|
|
188
191
|
};
|
|
@@ -206,9 +209,10 @@ server.registerTool("analyze_swift_project", {
|
|
|
206
209
|
}, async ({ path }) => {
|
|
207
210
|
try {
|
|
208
211
|
const root = await resolveProjectRoot(path);
|
|
209
|
-
const [files, context] = await Promise.all([
|
|
212
|
+
const [files, context, launch] = await Promise.all([
|
|
210
213
|
readSwiftFiles(root),
|
|
211
214
|
readProjectContext(root),
|
|
215
|
+
reviewLaunchScreens(root),
|
|
212
216
|
]);
|
|
213
217
|
const summary = await summarizeProject(root, files);
|
|
214
218
|
const categories = {
|
|
@@ -222,12 +226,15 @@ server.registerTool("analyze_swift_project", {
|
|
|
222
226
|
Performance: files.flatMap(analyzePerformance),
|
|
223
227
|
Testing: [...analyzeTestCoverage(files), ...files.flatMap(analyzeTesting)],
|
|
224
228
|
"App Store": [
|
|
229
|
+
...launch.findings,
|
|
225
230
|
...analyzeProjectLevelAppStore(context),
|
|
226
231
|
...files.flatMap((file) => analyzeAppStore(file, context)),
|
|
227
232
|
],
|
|
228
233
|
};
|
|
229
234
|
const lines = [
|
|
230
235
|
"# Swift Project Analysis",
|
|
236
|
+
`Launch-screen coverage: ${launch.configurations} configurations.`,
|
|
237
|
+
...launch.coverage.map(x => `- ${x}`),
|
|
231
238
|
"",
|
|
232
239
|
"## Structure",
|
|
233
240
|
"",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|