@sentry/wizard 3.40.0 → 3.41.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.
- package/CHANGELOG.md +8 -1
- package/README.md +19 -19
- package/bin.ts +5 -0
- package/codecov.yml +15 -0
- package/dist/bin.js +4 -0
- package/dist/bin.js.map +1 -1
- package/dist/e2e-tests/jest.config.d.ts +1 -0
- package/dist/e2e-tests/jest.config.js +1 -0
- package/dist/e2e-tests/jest.config.js.map +1 -1
- package/dist/package.json +3 -2
- package/dist/src/apple/apple-wizard.js +1 -2
- package/dist/src/apple/apple-wizard.js.map +1 -1
- package/dist/src/apple/code-tools.d.ts +10 -0
- package/dist/src/apple/code-tools.js +16 -12
- package/dist/src/apple/code-tools.js.map +1 -1
- package/dist/src/apple/fastlane.d.ts +23 -0
- package/dist/src/apple/fastlane.js +11 -7
- package/dist/src/apple/fastlane.js.map +1 -1
- package/dist/src/apple/templates.d.ts +1 -1
- package/dist/src/apple/templates.js +0 -2
- package/dist/src/apple/templates.js.map +1 -1
- package/dist/src/apple/xcode-manager.d.ts +10 -6
- package/dist/src/apple/xcode-manager.js +146 -61
- package/dist/src/apple/xcode-manager.js.map +1 -1
- package/dist/src/nextjs/nextjs-wizard.js +5 -3
- package/dist/src/nextjs/nextjs-wizard.js.map +1 -1
- package/dist/src/nuxt/nuxt-wizard.js +6 -4
- package/dist/src/nuxt/nuxt-wizard.js.map +1 -1
- package/dist/src/nuxt/sdk-setup.d.ts +1 -1
- package/dist/src/nuxt/sdk-setup.js +2 -1
- package/dist/src/nuxt/sdk-setup.js.map +1 -1
- package/dist/src/react-native/react-native-wizard.js +5 -3
- package/dist/src/react-native/react-native-wizard.js.map +1 -1
- package/dist/src/remix/remix-wizard.js +5 -3
- package/dist/src/remix/remix-wizard.js.map +1 -1
- package/dist/src/run.d.ts +1 -0
- package/dist/src/run.js +1 -0
- package/dist/src/run.js.map +1 -1
- package/dist/src/sveltekit/sveltekit-wizard.js +5 -3
- package/dist/src/sveltekit/sveltekit-wizard.js.map +1 -1
- package/dist/src/utils/clack-utils.d.ts +3 -1
- package/dist/src/utils/clack-utils.js +18 -12
- package/dist/src/utils/clack-utils.js.map +1 -1
- package/dist/src/utils/package-manager.d.ts +1 -0
- package/dist/src/utils/package-manager.js +5 -0
- package/dist/src/utils/package-manager.js.map +1 -1
- package/dist/src/utils/types.d.ts +9 -0
- package/dist/src/utils/types.js.map +1 -1
- package/dist/test/apple/cocoapod.test.d.ts +1 -0
- package/dist/test/apple/cocoapod.test.js +409 -0
- package/dist/test/apple/cocoapod.test.js.map +1 -0
- package/dist/test/apple/code-tools.test.d.ts +1 -0
- package/dist/test/apple/code-tools.test.js +673 -0
- package/dist/test/apple/code-tools.test.js.map +1 -0
- package/dist/test/apple/fastfile.test.d.ts +1 -0
- package/dist/test/apple/fastfile.test.js +431 -0
- package/dist/test/apple/fastfile.test.js.map +1 -0
- package/dist/test/apple/templates.test.d.ts +1 -0
- package/dist/test/apple/templates.test.js +73 -0
- package/dist/test/apple/templates.test.js.map +1 -0
- package/dist/test/apple/xcode-manager.test.d.ts +1 -0
- package/dist/test/apple/xcode-manager.test.js +834 -0
- package/dist/test/apple/xcode-manager.test.js.map +1 -0
- package/dist/test/utils/clack-utils.test.js +89 -0
- package/dist/test/utils/clack-utils.test.js.map +1 -1
- package/e2e-tests/jest.config.ts +1 -0
- package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/project.pbxproj +52 -0
- package/e2e-tests/test-applications/apple/damaged-missing-configuration-list/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
- package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/project.pbxproj +62 -0
- package/e2e-tests/test-applications/apple/no-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/project.pbxproj +470 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project.xcodeproj/xcshareddata/xcschemes/Project1.xcscheme +78 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/ContentView.swift +7 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project1/Project1App.swift +10 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/ContentView.swift +7 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-multi-targets/Project2/Project2App.swift +10 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/project.pbxproj +382 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Project.xcodeproj/xcshareddata/xcschemes/Project.xcscheme +78 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/ContentView.swift +7 -0
- package/e2e-tests/test-applications/apple/spm-swiftui-single-target/Sources/MainApp.swift +10 -0
- package/package.json +3 -2
- package/src/apple/apple-wizard.ts +1 -2
- package/src/apple/code-tools.ts +21 -6
- package/src/apple/fastlane.ts +18 -2
- package/src/apple/templates.ts +2 -2
- package/src/apple/xcode-manager.ts +181 -94
- package/src/nextjs/nextjs-wizard.ts +5 -2
- package/src/nuxt/nuxt-wizard.ts +6 -3
- package/src/nuxt/sdk-setup.ts +2 -0
- package/src/react-native/react-native-wizard.ts +5 -2
- package/src/remix/remix-wizard.ts +5 -2
- package/src/run.ts +2 -0
- package/src/sveltekit/sveltekit-wizard.ts +5 -2
- package/src/utils/clack-utils.ts +12 -2
- package/src/utils/package-manager.ts +6 -0
- package/src/utils/types.ts +10 -0
- package/test/apple/cocoapod.test.ts +306 -0
- package/test/apple/code-tools.test.ts +1042 -0
- package/test/apple/fastfile.test.ts +550 -0
- package/test/apple/templates.test.ts +191 -0
- package/test/apple/xcode-manager.test.ts +1066 -0
- package/test/utils/clack-utils.test.ts +92 -0
- package/types/xcode.d.ts +526 -0
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { SentryProjectData } from '../utils/types';
|
|
2
|
+
import { PBXGroup, PBXObjects, Project } from 'xcode';
|
|
2
3
|
interface ProjectFile {
|
|
3
4
|
key: string;
|
|
4
5
|
path: string;
|
|
5
6
|
}
|
|
6
7
|
export declare class XcodeProject {
|
|
7
8
|
projectPath: string;
|
|
8
|
-
project:
|
|
9
|
-
objects:
|
|
9
|
+
project: Project;
|
|
10
|
+
objects: PBXObjects;
|
|
10
11
|
files: ProjectFile[] | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new XcodeProject instance, a wrapper around the Xcode project file `<PROJECT>.xcodeproj/project.pbxproj`.
|
|
14
|
+
*
|
|
15
|
+
* @param projectPath - The path to the Xcode project file
|
|
16
|
+
*/
|
|
11
17
|
constructor(projectPath: string);
|
|
12
18
|
getAllTargets(): string[];
|
|
13
|
-
updateXcodeProject(sentryProject: SentryProjectData, target: string,
|
|
14
|
-
token: string;
|
|
15
|
-
}, addSPMReference: boolean, uploadSource?: boolean): void;
|
|
19
|
+
updateXcodeProject(sentryProject: SentryProjectData, target: string, addSPMReference: boolean, uploadSource?: boolean): void;
|
|
16
20
|
filesForTarget(target: string): string[] | undefined;
|
|
17
21
|
projectFiles(): ProjectFile[];
|
|
18
|
-
buildGroup(group:
|
|
22
|
+
buildGroup(group: PBXGroup, path?: string): ProjectFile[];
|
|
19
23
|
}
|
|
20
24
|
export {};
|
|
@@ -34,59 +34,105 @@ exports.XcodeProject = void 0;
|
|
|
34
34
|
// @ts-ignore - clack is ESM and TS complains about that. It works though
|
|
35
35
|
var prompts_1 = __importDefault(require("@clack/prompts"));
|
|
36
36
|
var fs = __importStar(require("fs"));
|
|
37
|
-
var templates = __importStar(require("./templates"));
|
|
38
37
|
var path = __importStar(require("path"));
|
|
39
|
-
var
|
|
38
|
+
var templates = __importStar(require("./templates"));
|
|
39
|
+
var xcode_1 = require("xcode");
|
|
40
40
|
function setDebugInformationFormatAndSandbox(proj, targetName) {
|
|
41
|
+
var _a, _b, _c, _d, _e;
|
|
41
42
|
var xcObjects = proj.hash.project.objects;
|
|
42
|
-
|
|
43
|
+
if (!xcObjects.PBXNativeTarget) {
|
|
44
|
+
xcObjects.PBXNativeTarget = {};
|
|
45
|
+
}
|
|
46
|
+
var targetKey = Object.keys(xcObjects.PBXNativeTarget).filter(function (key) {
|
|
47
|
+
var _a;
|
|
48
|
+
var value = (_a = xcObjects.PBXNativeTarget) === null || _a === void 0 ? void 0 : _a[key];
|
|
43
49
|
return (!key.endsWith('_comment') &&
|
|
44
|
-
|
|
50
|
+
typeof value !== 'string' &&
|
|
51
|
+
(value === null || value === void 0 ? void 0 : value.name) === targetName);
|
|
45
52
|
})[0];
|
|
46
53
|
var target = xcObjects.PBXNativeTarget[targetKey];
|
|
47
|
-
xcObjects.
|
|
48
|
-
|
|
54
|
+
if (!xcObjects.XCBuildConfiguration) {
|
|
55
|
+
xcObjects.XCBuildConfiguration = {};
|
|
56
|
+
}
|
|
57
|
+
if (!xcObjects.XCConfigurationList) {
|
|
58
|
+
xcObjects.XCConfigurationList = {};
|
|
59
|
+
}
|
|
60
|
+
var buildConfigurationListId = (_a = target === null || target === void 0 ? void 0 : target.buildConfigurationList) !== null && _a !== void 0 ? _a : '';
|
|
61
|
+
var configurationList = (_b = xcObjects.XCConfigurationList) === null || _b === void 0 ? void 0 : _b[buildConfigurationListId];
|
|
62
|
+
var buildListConfigurationIds = (_c = configurationList === null || configurationList === void 0 ? void 0 : configurationList.buildConfigurations) !== null && _c !== void 0 ? _c : [];
|
|
63
|
+
for (var _i = 0, buildListConfigurationIds_1 = buildListConfigurationIds; _i < buildListConfigurationIds_1.length; _i++) {
|
|
64
|
+
var buildListConfigId = buildListConfigurationIds_1[_i];
|
|
65
|
+
var config = (_d = xcObjects.XCBuildConfiguration[buildListConfigId.value]) !== null && _d !== void 0 ? _d : {};
|
|
66
|
+
if (typeof config === 'string') {
|
|
67
|
+
// Ignore comments
|
|
68
|
+
continue;
|
|
69
|
+
}
|
|
70
|
+
var buildSettings = (_e = config.buildSettings) !== null && _e !== void 0 ? _e : {};
|
|
49
71
|
buildSettings.DEBUG_INFORMATION_FORMAT = '"dwarf-with-dsym"';
|
|
50
72
|
buildSettings.ENABLE_USER_SCRIPT_SANDBOXING = '"NO"';
|
|
51
|
-
|
|
73
|
+
config.buildSettings = buildSettings;
|
|
74
|
+
xcObjects.XCBuildConfiguration[buildListConfigId.value] = config;
|
|
75
|
+
}
|
|
52
76
|
}
|
|
53
77
|
function addSentrySPM(proj, targetName) {
|
|
78
|
+
var _a, _b;
|
|
54
79
|
var xcObjects = proj.hash.project.objects;
|
|
55
80
|
var sentryFrameworkUUID = proj.generateUuid();
|
|
56
81
|
var sentrySPMUUID = proj.generateUuid();
|
|
57
|
-
//Check whether xcObjects already have sentry framework
|
|
82
|
+
// Check whether xcObjects already have sentry framework
|
|
58
83
|
if (xcObjects.PBXFrameworksBuildPhase) {
|
|
59
84
|
for (var key in xcObjects.PBXFrameworksBuildPhase || {}) {
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
85
|
+
var frameworkBuildPhase = xcObjects.PBXFrameworksBuildPhase[key];
|
|
86
|
+
if (key.endsWith('_comment') || typeof frameworkBuildPhase === 'string') {
|
|
87
|
+
// Ignore comments
|
|
88
|
+
continue;
|
|
89
|
+
}
|
|
90
|
+
for (var _i = 0, _c = (_a = frameworkBuildPhase.files) !== null && _a !== void 0 ? _a : []; _i < _c.length; _i++) {
|
|
91
|
+
var framework = _c[_i];
|
|
92
|
+
// We identify the Sentry framework by the comment "Sentry in Frameworks",
|
|
93
|
+
// which is set by this manager in previous runs.
|
|
94
|
+
if (framework.comment === 'Sentry in Frameworks') {
|
|
95
|
+
return;
|
|
67
96
|
}
|
|
68
97
|
}
|
|
69
98
|
}
|
|
70
99
|
}
|
|
100
|
+
if (!xcObjects.PBXBuildFile) {
|
|
101
|
+
xcObjects.PBXBuildFile = {};
|
|
102
|
+
}
|
|
71
103
|
xcObjects.PBXBuildFile[sentryFrameworkUUID] = {
|
|
72
104
|
isa: 'PBXBuildFile',
|
|
73
105
|
productRef: sentrySPMUUID,
|
|
74
106
|
productRef_comment: 'Sentry',
|
|
75
107
|
};
|
|
76
|
-
xcObjects.PBXBuildFile[sentryFrameworkUUID
|
|
108
|
+
xcObjects.PBXBuildFile["".concat(sentryFrameworkUUID, "_comment")] =
|
|
77
109
|
'Sentry in Frameworks';
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
110
|
+
if (!xcObjects.PBXFrameworksBuildPhase) {
|
|
111
|
+
xcObjects.PBXFrameworksBuildPhase = {};
|
|
112
|
+
}
|
|
113
|
+
for (var key in xcObjects.PBXFrameworksBuildPhase) {
|
|
114
|
+
var value = xcObjects.PBXFrameworksBuildPhase[key];
|
|
115
|
+
if (key.endsWith('_comment') || typeof value === 'string') {
|
|
116
|
+
// Ignore comments
|
|
117
|
+
continue;
|
|
85
118
|
}
|
|
119
|
+
var frameworks = (_b = value.files) !== null && _b !== void 0 ? _b : [];
|
|
120
|
+
frameworks.push({
|
|
121
|
+
value: sentryFrameworkUUID,
|
|
122
|
+
comment: 'Sentry in Frameworks',
|
|
123
|
+
});
|
|
124
|
+
value.files = frameworks;
|
|
125
|
+
xcObjects.PBXFrameworksBuildPhase[key] = value;
|
|
126
|
+
}
|
|
127
|
+
if (!xcObjects.PBXNativeTarget) {
|
|
128
|
+
xcObjects.PBXNativeTarget = {};
|
|
86
129
|
}
|
|
87
130
|
var targetKey = Object.keys(xcObjects.PBXNativeTarget || {}).filter(function (key) {
|
|
131
|
+
var _a;
|
|
132
|
+
var value = (_a = xcObjects.PBXNativeTarget) === null || _a === void 0 ? void 0 : _a[key];
|
|
88
133
|
return (!key.endsWith('_comment') &&
|
|
89
|
-
|
|
134
|
+
typeof value !== 'string' &&
|
|
135
|
+
(value === null || value === void 0 ? void 0 : value.name) === targetName);
|
|
90
136
|
})[0];
|
|
91
137
|
var target = xcObjects.PBXNativeTarget[targetKey];
|
|
92
138
|
if (!target.packageProductDependencies) {
|
|
@@ -116,7 +162,7 @@ function addSentrySPM(proj, targetName) {
|
|
|
116
162
|
minimumVersion: '8.0.0',
|
|
117
163
|
},
|
|
118
164
|
};
|
|
119
|
-
xcObjects.XCRemoteSwiftPackageReference[sentrySwiftPackageUUID
|
|
165
|
+
xcObjects.XCRemoteSwiftPackageReference["".concat(sentrySwiftPackageUUID, "_comment")] =
|
|
120
166
|
'XCRemoteSwiftPackageReference "sentry-cocoa"';
|
|
121
167
|
if (!xcObjects.XCSwiftPackageProductDependency) {
|
|
122
168
|
xcObjects.XCSwiftPackageProductDependency = {};
|
|
@@ -127,27 +173,39 @@ function addSentrySPM(proj, targetName) {
|
|
|
127
173
|
package_comment: 'XCRemoteSwiftPackageReference "sentry-cocoa"',
|
|
128
174
|
productName: 'Sentry',
|
|
129
175
|
};
|
|
130
|
-
xcObjects.XCSwiftPackageProductDependency[sentrySPMUUID
|
|
176
|
+
xcObjects.XCSwiftPackageProductDependency["".concat(sentrySPMUUID, "_comment")] =
|
|
131
177
|
'Sentry';
|
|
132
178
|
prompts_1.default.log.step('Added Sentry SPM dependency to your project');
|
|
133
179
|
}
|
|
134
180
|
function addUploadSymbolsScript(xcodeProject, sentryProject, targetName, uploadSource) {
|
|
135
|
-
|
|
181
|
+
var _a, _b, _c, _d;
|
|
136
182
|
var xcObjects = xcodeProject.hash.project.objects;
|
|
137
|
-
|
|
183
|
+
if (!xcObjects.PBXNativeTarget) {
|
|
184
|
+
xcObjects.PBXNativeTarget = {};
|
|
185
|
+
}
|
|
186
|
+
var targetKey = Object.keys(xcObjects.PBXNativeTarget).filter(function (key) {
|
|
187
|
+
var _a;
|
|
188
|
+
var value = (_a = xcObjects.PBXNativeTarget) === null || _a === void 0 ? void 0 : _a[key];
|
|
138
189
|
return (!key.endsWith('_comment') &&
|
|
139
|
-
|
|
190
|
+
typeof value !== 'string' &&
|
|
191
|
+
(value === null || value === void 0 ? void 0 : value.name) === targetName);
|
|
140
192
|
})[0];
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
}
|
|
193
|
+
if (!xcObjects.PBXShellScriptBuildPhase) {
|
|
194
|
+
xcObjects.PBXShellScriptBuildPhase = {};
|
|
195
|
+
}
|
|
196
|
+
for (var key in xcObjects.PBXShellScriptBuildPhase) {
|
|
197
|
+
var value = (_a = xcObjects.PBXShellScriptBuildPhase[key]) !== null && _a !== void 0 ? _a : {};
|
|
198
|
+
if (typeof value === 'string') {
|
|
199
|
+
// Ignore comments
|
|
200
|
+
continue;
|
|
150
201
|
}
|
|
202
|
+
// Sentry script already exists, update it
|
|
203
|
+
if ((_b = value.shellScript) === null || _b === void 0 ? void 0 : _b.includes('sentry-cli')) {
|
|
204
|
+
(_c = xcObjects.PBXShellScriptBuildPhase) === null || _c === void 0 ? true : delete _c[key];
|
|
205
|
+
(_d = xcObjects.PBXShellScriptBuildPhase) === null || _d === void 0 ? true : delete _d["".concat(key, "_comment")];
|
|
206
|
+
break;
|
|
207
|
+
}
|
|
208
|
+
xcObjects.PBXShellScriptBuildPhase[key] = value;
|
|
151
209
|
}
|
|
152
210
|
var isHomebrewInstalled = fs.existsSync('/opt/homebrew/bin/sentry-cli');
|
|
153
211
|
xcodeProject.addBuildPhase([], 'PBXShellScriptBuildPhase', 'Upload Debug Symbols to Sentry', targetKey, {
|
|
@@ -160,24 +218,32 @@ function addUploadSymbolsScript(xcodeProject, sentryProject, targetName, uploadS
|
|
|
160
218
|
prompts_1.default.log.step("Added Sentry upload script to \"".concat(targetName, "\" build phase"));
|
|
161
219
|
}
|
|
162
220
|
var XcodeProject = /** @class */ (function () {
|
|
221
|
+
/**
|
|
222
|
+
* Creates a new XcodeProject instance, a wrapper around the Xcode project file `<PROJECT>.xcodeproj/project.pbxproj`.
|
|
223
|
+
*
|
|
224
|
+
* @param projectPath - The path to the Xcode project file
|
|
225
|
+
*/
|
|
163
226
|
function XcodeProject(projectPath) {
|
|
164
227
|
this.projectPath = projectPath;
|
|
165
|
-
this.project =
|
|
228
|
+
this.project = (0, xcode_1.project)(projectPath);
|
|
166
229
|
this.project.parseSync();
|
|
167
230
|
this.objects = this.project.hash.project.objects;
|
|
168
231
|
}
|
|
169
232
|
XcodeProject.prototype.getAllTargets = function () {
|
|
170
|
-
var
|
|
171
|
-
|
|
233
|
+
var _a;
|
|
234
|
+
var targets = (_a = this.objects.PBXNativeTarget) !== null && _a !== void 0 ? _a : {};
|
|
235
|
+
return Object.keys(targets)
|
|
172
236
|
.filter(function (key) {
|
|
237
|
+
var value = targets[key];
|
|
173
238
|
return (!key.endsWith('_comment') &&
|
|
174
|
-
|
|
239
|
+
typeof value !== 'string' &&
|
|
240
|
+
value.productType.startsWith('"com.apple.product-type.application'));
|
|
175
241
|
})
|
|
176
242
|
.map(function (key) {
|
|
177
|
-
return
|
|
243
|
+
return targets[key].name;
|
|
178
244
|
});
|
|
179
245
|
};
|
|
180
|
-
XcodeProject.prototype.updateXcodeProject = function (sentryProject, target,
|
|
246
|
+
XcodeProject.prototype.updateXcodeProject = function (sentryProject, target, addSPMReference, uploadSource) {
|
|
181
247
|
if (uploadSource === void 0) { uploadSource = true; }
|
|
182
248
|
addUploadSymbolsScript(this.project, sentryProject, target, uploadSource);
|
|
183
249
|
if (uploadSource) {
|
|
@@ -191,32 +257,40 @@ var XcodeProject = /** @class */ (function () {
|
|
|
191
257
|
};
|
|
192
258
|
XcodeProject.prototype.filesForTarget = function (target) {
|
|
193
259
|
var _this = this;
|
|
260
|
+
var _a, _b, _c;
|
|
194
261
|
var files = this.projectFiles();
|
|
195
262
|
var fileDictionary = {};
|
|
196
263
|
files.forEach(function (file) {
|
|
197
264
|
fileDictionary[file.key] = file.path;
|
|
198
265
|
});
|
|
199
|
-
var
|
|
266
|
+
var targets = this.objects.PBXNativeTarget || {};
|
|
267
|
+
var nativeTarget = Object.keys(targets).filter(function (key) {
|
|
268
|
+
var value = targets[key];
|
|
200
269
|
return (!key.endsWith('_comment') &&
|
|
201
|
-
|
|
270
|
+
typeof value !== 'string' &&
|
|
271
|
+
value.name === target);
|
|
202
272
|
})[0];
|
|
203
273
|
if (nativeTarget === undefined) {
|
|
204
274
|
return undefined;
|
|
205
275
|
}
|
|
206
|
-
var buildPhaseKey =
|
|
207
|
-
|
|
276
|
+
var buildPhaseKey = (_a = targets[nativeTarget].buildPhases) === null || _a === void 0 ? void 0 : _a.filter(function (phase) {
|
|
277
|
+
var _a;
|
|
278
|
+
return ((_a = _this.objects.PBXSourcesBuildPhase) === null || _a === void 0 ? void 0 : _a[phase.value]) !== undefined;
|
|
208
279
|
})[0];
|
|
209
280
|
if (buildPhaseKey === undefined) {
|
|
210
281
|
return undefined;
|
|
211
282
|
}
|
|
212
|
-
var
|
|
213
|
-
|
|
214
|
-
return undefined;
|
|
215
|
-
}
|
|
283
|
+
var buildPhase = (_b = this.objects.PBXSourcesBuildPhase) === null || _b === void 0 ? void 0 : _b[buildPhaseKey.value];
|
|
284
|
+
var buildPhaseFiles = (_c = buildPhase === null || buildPhase === void 0 ? void 0 : buildPhase.files) !== null && _c !== void 0 ? _c : [];
|
|
216
285
|
var baseDir = path.dirname(path.dirname(this.projectPath));
|
|
217
|
-
return
|
|
286
|
+
return buildPhaseFiles
|
|
218
287
|
.map(function (file) {
|
|
219
|
-
var
|
|
288
|
+
var _a, _b;
|
|
289
|
+
var fileRef = (_b = (_a = _this.objects.PBXBuildFile) === null || _a === void 0 ? void 0 : _a[file.value]) === null || _b === void 0 ? void 0 : _b.fileRef;
|
|
290
|
+
if (!fileRef) {
|
|
291
|
+
return '';
|
|
292
|
+
}
|
|
293
|
+
var buildFile = fileDictionary[fileRef];
|
|
220
294
|
if (!buildFile) {
|
|
221
295
|
return '';
|
|
222
296
|
}
|
|
@@ -225,28 +299,39 @@ var XcodeProject = /** @class */ (function () {
|
|
|
225
299
|
.filter(function (f) { return f.length > 0; });
|
|
226
300
|
};
|
|
227
301
|
XcodeProject.prototype.projectFiles = function () {
|
|
302
|
+
var _a;
|
|
228
303
|
if (this.files === undefined) {
|
|
229
304
|
var proj = this.project.getFirstProject();
|
|
230
305
|
var mainGroupKey = proj.firstProject.mainGroup;
|
|
231
|
-
var mainGroup = this.objects.PBXGroup[mainGroupKey];
|
|
306
|
+
var mainGroup = (_a = this.objects.PBXGroup) === null || _a === void 0 ? void 0 : _a[mainGroupKey];
|
|
307
|
+
if (!mainGroup || typeof mainGroup === 'string') {
|
|
308
|
+
return [];
|
|
309
|
+
}
|
|
232
310
|
this.files = this.buildGroup(mainGroup);
|
|
233
311
|
}
|
|
234
312
|
return this.files;
|
|
235
313
|
};
|
|
236
314
|
XcodeProject.prototype.buildGroup = function (group, path) {
|
|
315
|
+
var _a, _b, _c;
|
|
237
316
|
if (path === void 0) { path = ''; }
|
|
238
317
|
var result = [];
|
|
239
|
-
for (var _i = 0, _a = group.children; _i <
|
|
240
|
-
var child =
|
|
241
|
-
|
|
242
|
-
|
|
318
|
+
for (var _i = 0, _d = (_a = group.children) !== null && _a !== void 0 ? _a : []; _i < _d.length; _i++) {
|
|
319
|
+
var child = _d[_i];
|
|
320
|
+
var fileReference = (_b = this.objects.PBXFileReference) === null || _b === void 0 ? void 0 : _b[child.value];
|
|
321
|
+
var groupReference = (_c = this.objects.PBXGroup) === null || _c === void 0 ? void 0 : _c[child.value];
|
|
322
|
+
if (fileReference) {
|
|
323
|
+
if (typeof fileReference === 'string') {
|
|
324
|
+
continue;
|
|
325
|
+
}
|
|
243
326
|
result.push({
|
|
244
327
|
key: child.value,
|
|
245
328
|
path: "".concat(path).concat(fileReference.path.replace(/"/g, '')),
|
|
246
329
|
});
|
|
247
330
|
}
|
|
248
|
-
else if (
|
|
249
|
-
|
|
331
|
+
else if (groupReference) {
|
|
332
|
+
if (typeof groupReference === 'string') {
|
|
333
|
+
continue;
|
|
334
|
+
}
|
|
250
335
|
var groupChildren = this.buildGroup(groupReference, groupReference.path
|
|
251
336
|
? "".concat(path).concat(groupReference.path.replace(/"/g, ''), "/")
|
|
252
337
|
: path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcode-manager.js","sourceRoot":"","sources":["../../../src/apple/xcode-manager.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n// @ts-ignore - clack is ESM and TS complains about that. It works though\nimport clack from '@clack/prompts';\nimport * as fs from 'fs';\nimport { SentryProjectData } from '../utils/types';\nimport * as templates from './templates';\nimport * as path from 'path';\nconst xcode = require('xcode');\n\ninterface ProjectFile {\n key: string;\n path: string;\n}\n\nfunction setDebugInformationFormatAndSandbox(\n proj: any,\n targetName: string,\n): void {\n const xcObjects = proj.hash.project.objects;\n const targetKey: string = Object.keys(xcObjects.PBXNativeTarget || {}).filter(\n (key) => {\n return (\n !key.endsWith('_comment') &&\n xcObjects.PBXNativeTarget[key].name === targetName\n );\n },\n )[0];\n const target = xcObjects.PBXNativeTarget[targetKey];\n\n xcObjects.XCConfigurationList[\n target.buildConfigurationList\n ].buildConfigurations.forEach((buildConfig: { value: string }) => {\n const buildSettings =\n xcObjects.XCBuildConfiguration[buildConfig.value].buildSettings;\n buildSettings.DEBUG_INFORMATION_FORMAT = '\"dwarf-with-dsym\"';\n buildSettings.ENABLE_USER_SCRIPT_SANDBOXING = '\"NO\"';\n });\n}\n\nfunction addSentrySPM(proj: any, targetName: string): void {\n const xcObjects = proj.hash.project.objects;\n\n const sentryFrameworkUUID = proj.generateUuid() as string;\n const sentrySPMUUID = proj.generateUuid() as string;\n\n //Check whether xcObjects already have sentry framework\n if (xcObjects.PBXFrameworksBuildPhase) {\n for (const key in xcObjects.PBXFrameworksBuildPhase || {}) {\n if (!key.endsWith('_comment')) {\n const frameworks = xcObjects.PBXFrameworksBuildPhase[key].files;\n for (const framework of frameworks) {\n if (framework.comment === 'Sentry in Frameworks') {\n return;\n }\n }\n }\n }\n }\n\n xcObjects.PBXBuildFile[sentryFrameworkUUID] = {\n isa: 'PBXBuildFile',\n productRef: sentrySPMUUID,\n productRef_comment: 'Sentry',\n };\n xcObjects.PBXBuildFile[sentryFrameworkUUID + '_comment'] =\n 'Sentry in Frameworks';\n\n for (const key in xcObjects.PBXFrameworksBuildPhase || {}) {\n if (!key.endsWith('_comment')) {\n const frameworks = xcObjects.PBXFrameworksBuildPhase[key].files;\n frameworks.push({\n value: sentryFrameworkUUID,\n comment: 'Sentry in Frameworks',\n });\n }\n }\n\n const targetKey: string = Object.keys(xcObjects.PBXNativeTarget || {}).filter(\n (key) => {\n return (\n !key.endsWith('_comment') &&\n xcObjects.PBXNativeTarget[key].name === targetName\n );\n },\n )[0];\n const target = xcObjects.PBXNativeTarget[targetKey];\n\n if (!target.packageProductDependencies) {\n target.packageProductDependencies = [];\n }\n target.packageProductDependencies.push({\n value: sentrySPMUUID,\n comment: 'Sentry',\n });\n\n const sentrySwiftPackageUUID = proj.generateUuid() as string;\n const xcProject = proj.getFirstProject().firstProject;\n if (!xcProject.packageReferences) {\n xcProject.packageReferences = [];\n }\n xcProject.packageReferences.push({\n value: sentrySwiftPackageUUID,\n comment: 'XCRemoteSwiftPackageReference \"sentry-cocoa\"',\n });\n\n if (!xcObjects.XCRemoteSwiftPackageReference) {\n xcObjects.XCRemoteSwiftPackageReference = {};\n }\n\n xcObjects.XCRemoteSwiftPackageReference[sentrySwiftPackageUUID] = {\n isa: 'XCRemoteSwiftPackageReference',\n repositoryURL: '\"https://github.com/getsentry/sentry-cocoa/\"',\n requirement: {\n kind: 'upToNextMajorVersion',\n minimumVersion: '8.0.0',\n },\n };\n xcObjects.XCRemoteSwiftPackageReference[sentrySwiftPackageUUID + '_comment'] =\n 'XCRemoteSwiftPackageReference \"sentry-cocoa\"';\n\n if (!xcObjects.XCSwiftPackageProductDependency) {\n xcObjects.XCSwiftPackageProductDependency = {};\n }\n xcObjects.XCSwiftPackageProductDependency[sentrySPMUUID] = {\n isa: 'XCSwiftPackageProductDependency',\n package: sentrySwiftPackageUUID,\n package_comment: 'XCRemoteSwiftPackageReference \"sentry-cocoa\"',\n productName: 'Sentry',\n };\n xcObjects.XCSwiftPackageProductDependency[sentrySPMUUID + '_comment'] =\n 'Sentry';\n\n clack.log.step('Added Sentry SPM dependency to your project');\n}\n\nfunction addUploadSymbolsScript(\n xcodeProject: any,\n sentryProject: SentryProjectData,\n targetName: string,\n uploadSource = true,\n): void {\n const xcObjects = xcodeProject.hash.project.objects;\n const targetKey: string = Object.keys(xcObjects.PBXNativeTarget || {}).filter(\n (key) => {\n return (\n !key.endsWith('_comment') &&\n xcObjects.PBXNativeTarget[key].name === targetName\n );\n },\n )[0];\n\n for (const scriptKey in xcObjects.PBXShellScriptBuildPhase || {}) {\n if (!scriptKey.endsWith('_comment')) {\n const script = xcObjects.PBXShellScriptBuildPhase[scriptKey].shellScript;\n //Sentry script already exists, update it\n if (script.includes('sentry-cli')) {\n delete xcObjects.PBXShellScriptBuildPhase[scriptKey];\n delete xcObjects.PBXShellScriptBuildPhase[scriptKey + '_comment'];\n break;\n }\n }\n }\n\n const isHomebrewInstalled = fs.existsSync('/opt/homebrew/bin/sentry-cli');\n xcodeProject.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Upload Debug Symbols to Sentry',\n targetKey,\n {\n inputFileListPaths: [],\n outputFileListPaths: [],\n inputPaths: [templates.scriptInputPath],\n shellPath: '/bin/sh',\n shellScript: templates.getRunScriptTemplate(\n sentryProject.organization.slug,\n sentryProject.slug,\n uploadSource,\n isHomebrewInstalled,\n ),\n },\n );\n clack.log.step(`Added Sentry upload script to \"${targetName}\" build phase`);\n}\n\nexport class XcodeProject {\n projectPath: string;\n project: any;\n objects: any;\n files: ProjectFile[] | undefined;\n\n public constructor(projectPath: string) {\n this.projectPath = projectPath;\n this.project = xcode.project(projectPath);\n this.project.parseSync();\n this.objects = this.project.hash.project.objects;\n }\n\n public getAllTargets(): string[] {\n return Object.keys(this.objects.PBXNativeTarget || {})\n .filter((key) => {\n return (\n !key.endsWith('_comment') &&\n this.objects.PBXNativeTarget[key].productType.startsWith(\n '\"com.apple.product-type.application',\n )\n );\n })\n .map((key) => {\n return this.objects.PBXNativeTarget[key].name as string;\n });\n }\n\n public updateXcodeProject(\n sentryProject: SentryProjectData,\n target: string,\n apiKeys: { token: string },\n addSPMReference: boolean,\n uploadSource = true,\n ): void {\n addUploadSymbolsScript(this.project, sentryProject, target, uploadSource);\n if (uploadSource) {\n setDebugInformationFormatAndSandbox(this.project, target);\n }\n if (addSPMReference) {\n addSentrySPM(this.project, target);\n }\n const newContent = this.project.writeSync();\n fs.writeFileSync(this.projectPath, newContent);\n }\n\n public filesForTarget(target: string): string[] | undefined {\n const files = this.projectFiles();\n const fileDictionary: any = {};\n files.forEach((file) => {\n fileDictionary[file.key] = file.path;\n });\n\n const nativeTarget = Object.keys(this.objects.PBXNativeTarget || {}).filter(\n (key) => {\n return (\n !key.endsWith('_comment') &&\n this.objects.PBXNativeTarget[key].name === target\n );\n },\n )[0];\n\n if (nativeTarget === undefined) {\n return undefined;\n }\n\n const buildPhaseKey = this.objects.PBXNativeTarget[\n nativeTarget\n ].buildPhases.filter((phase: any) => {\n return this.objects.PBXSourcesBuildPhase[phase.value] !== undefined;\n })[0];\n\n if (buildPhaseKey === undefined) {\n return undefined;\n }\n\n const buildPhases = this.objects.PBXSourcesBuildPhase[buildPhaseKey.value];\n if (buildPhases === undefined) {\n return undefined;\n }\n\n const baseDir = path.dirname(path.dirname(this.projectPath));\n\n return buildPhases.files\n .map((file: any) => {\n const buildFile = fileDictionary[\n this.objects.PBXBuildFile[file.value].fileRef\n ] as string;\n if (!buildFile) {\n return '';\n }\n return path.join(baseDir, buildFile);\n })\n .filter((f: string) => f.length > 0) as string[];\n }\n\n projectFiles(): ProjectFile[] {\n if (this.files === undefined) {\n const proj = this.project.getFirstProject();\n const mainGroupKey = proj.firstProject.mainGroup;\n const mainGroup = this.objects.PBXGroup[mainGroupKey];\n this.files = this.buildGroup(mainGroup);\n }\n return this.files;\n }\n\n buildGroup(group: any, path = ''): ProjectFile[] {\n const result: ProjectFile[] = [];\n for (const child of group.children) {\n if (this.objects.PBXFileReference[child.value]) {\n const fileReference = this.objects.PBXFileReference[child.value];\n result.push({\n key: child.value,\n path: `${path}${fileReference.path.replace(/\"/g, '')}`,\n });\n } else if (this.objects.PBXGroup[child.value]) {\n const groupReference = this.objects.PBXGroup[child.value];\n const groupChildren = this.buildGroup(\n groupReference,\n groupReference.path\n ? `${path}${groupReference.path.replace(/\"/g, '')}/`\n : path,\n );\n result.push(...groupChildren);\n }\n }\n return result;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"xcode-manager.js","sourceRoot":"","sources":["../../../src/apple/xcode-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8BAA8B;AAC9B,+DAA+D;AAC/D,4DAA4D;AAC5D,sDAAsD;AACtD,yEAAyE;AACzE,2DAAmC;AACnC,qCAAyB;AACzB,yCAA6B;AAE7B,qDAAyC;AAEzC,+BASe;AAOf,SAAS,mCAAmC,CAC1C,IAAa,EACb,UAAkB;;IAElB,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5C,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;QAC9B,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;KAChC;IACD,IAAM,SAAS,GAAW,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,MAAM,CACrE,UAAC,GAAG;;QACF,IAAM,KAAK,GAAG,MAAA,SAAS,CAAC,eAAe,0CAAG,GAAG,CAAC,CAAC;QAC/C,OAAO,CACL,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,UAAU,CAC3B,CAAC;IACJ,CAAC,CACF,CAAC,CAAC,CAAC,CAAC;IACL,IAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,SAAS,CAErC,CAAC;IAEd,IAAI,CAAC,SAAS,CAAC,oBAAoB,EAAE;QACnC,SAAS,CAAC,oBAAoB,GAAG,EAAE,CAAC;KACrC;IACD,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;QAClC,SAAS,CAAC,mBAAmB,GAAG,EAAE,CAAC;KACpC;IACD,IAAM,wBAAwB,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,sBAAsB,mCAAI,EAAE,CAAC;IACtE,IAAM,iBAAiB,GAAG,MAAA,SAAS,CAAC,mBAAmB,0CACrD,wBAAwB,CACU,CAAC;IACrC,IAAM,yBAAyB,GAC7B,MAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,mBAAmB,mCAAI,EAAE,CAAC;IAC/C,KAAgC,UAAyB,EAAzB,uDAAyB,EAAzB,uCAAyB,EAAzB,IAAyB,EAAE;QAAtD,IAAM,iBAAiB,kCAAA;QAC1B,IAAM,MAAM,GACV,MAAA,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;QAChE,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,kBAAkB;YAClB,SAAS;SACV;QAED,IAAM,aAAa,GAAG,MAAA,MAAM,CAAC,aAAa,mCAAI,EAAE,CAAC;QACjD,aAAa,CAAC,wBAAwB,GAAG,mBAAmB,CAAC;QAC7D,aAAa,CAAC,6BAA6B,GAAG,MAAM,CAAC;QAErD,MAAM,CAAC,aAAa,GAAG,aAAa,CAAC;QACrC,SAAS,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;KAClE;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAa,EAAE,UAAkB;;IACrD,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IAE5C,IAAM,mBAAmB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAChD,IAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAE1C,wDAAwD;IACxD,IAAI,SAAS,CAAC,uBAAuB,EAAE;QACrC,KAAK,IAAM,GAAG,IAAI,SAAS,CAAC,uBAAuB,IAAI,EAAE,EAAE;YACzD,IAAM,mBAAmB,GAAG,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;YACnE,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;gBACvE,kBAAkB;gBAClB,SAAS;aACV;YACD,KAAwB,UAA+B,EAA/B,WAAA,mBAAmB,CAAC,KAAK,mCAAI,EAAE,EAA/B,cAA+B,EAA/B,IAA+B,EAAE;gBAApD,IAAM,SAAS,SAAA;gBAClB,0EAA0E;gBAC1E,iDAAiD;gBACjD,IAAI,SAAS,CAAC,OAAO,KAAK,sBAAsB,EAAE;oBAChD,OAAO;iBACR;aACF;SACF;KACF;IAED,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;QAC3B,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;KAC7B;IACD,SAAS,CAAC,YAAY,CAAC,mBAAmB,CAAC,GAAG;QAC5C,GAAG,EAAE,cAAc;QACnB,UAAU,EAAE,aAAa;QACzB,kBAAkB,EAAE,QAAQ;KAC7B,CAAC;IACF,SAAS,CAAC,YAAY,CAAC,UAAG,mBAAmB,aAAU,CAAC;QACtD,sBAAsB,CAAC;IAEzB,IAAI,CAAC,SAAS,CAAC,uBAAuB,EAAE;QACtC,SAAS,CAAC,uBAAuB,GAAG,EAAE,CAAC;KACxC;IACD,KAAK,IAAM,GAAG,IAAI,SAAS,CAAC,uBAAuB,EAAE;QACnD,IAAM,KAAK,GAAG,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACzD,kBAAkB;YAClB,SAAS;SACV;QAED,IAAM,UAAU,GAAG,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,CAAC;QACrC,UAAU,CAAC,IAAI,CAAC;YACd,KAAK,EAAE,mBAAmB;YAC1B,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAC;QACH,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QAEzB,SAAS,CAAC,uBAAuB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAChD;IAED,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;QAC9B,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;KAChC;IACD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,MAAM,CACnE,UAAC,GAAG;;QACF,IAAM,KAAK,GAAG,MAAA,SAAS,CAAC,eAAe,0CAAG,GAAG,CAAC,CAAC;QAC/C,OAAO,CACL,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,UAAU,CAC3B,CAAC;IACJ,CAAC,CACF,CAAC,CAAC,CAAC,CAAC;IACL,IAAM,MAAM,GAAG,SAAS,CAAC,eAAe,CAAC,SAAS,CAAoB,CAAC;IAEvE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE;QACtC,MAAM,CAAC,0BAA0B,GAAG,EAAE,CAAC;KACxC;IACD,MAAM,CAAC,0BAA0B,CAAC,IAAI,CAAC;QACrC,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,QAAQ;KAClB,CAAC,CAAC;IAEH,IAAM,sBAAsB,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IACnD,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,YAAY,CAAC;IACtD,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE;QAChC,SAAS,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAClC;IACD,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC;QAC/B,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,8CAA8C;KACxD,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,CAAC,6BAA6B,EAAE;QAC5C,SAAS,CAAC,6BAA6B,GAAG,EAAE,CAAC;KAC9C;IAED,SAAS,CAAC,6BAA6B,CAAC,sBAAsB,CAAC,GAAG;QAChE,GAAG,EAAE,+BAA+B;QACpC,aAAa,EAAE,8CAA8C;QAC7D,WAAW,EAAE;YACX,IAAI,EAAE,sBAAsB;YAC5B,cAAc,EAAE,OAAO;SACxB;KACF,CAAC;IACF,SAAS,CAAC,6BAA6B,CAAC,UAAG,sBAAsB,aAAU,CAAC;QAC1E,8CAA8C,CAAC;IAEjD,IAAI,CAAC,SAAS,CAAC,+BAA+B,EAAE;QAC9C,SAAS,CAAC,+BAA+B,GAAG,EAAE,CAAC;KAChD;IACD,SAAS,CAAC,+BAA+B,CAAC,aAAa,CAAC,GAAG;QACzD,GAAG,EAAE,iCAAiC;QACtC,OAAO,EAAE,sBAAsB;QAC/B,eAAe,EAAE,8CAA8C;QAC/D,WAAW,EAAE,QAAQ;KACtB,CAAC;IACF,SAAS,CAAC,+BAA+B,CAAC,UAAG,aAAa,aAAU,CAAC;QACnE,QAAQ,CAAC;IAEX,iBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,sBAAsB,CAC7B,YAAqB,EACrB,aAAgC,EAChC,UAAkB,EAClB,YAAqB;;IAErB,IAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACpD,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE;QAC9B,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;KAChC;IACD,IAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG;;QAClE,IAAM,KAAK,GAAG,MAAA,SAAS,CAAC,eAAe,0CAAG,GAAG,CAAC,CAAC;QAC/C,OAAO,CACL,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;YACzB,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,MAAK,UAAU,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEN,IAAI,CAAC,SAAS,CAAC,wBAAwB,EAAE;QACvC,SAAS,CAAC,wBAAwB,GAAG,EAAE,CAAC;KACzC;IACD,KAAK,IAAM,GAAG,IAAI,SAAS,CAAC,wBAAwB,EAAE;QACpD,IAAM,KAAK,GAAG,MAAA,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAC;QAC5D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,kBAAkB;YAClB,SAAS;SACV;QAED,0CAA0C;QAC1C,IAAI,MAAA,KAAK,CAAC,WAAW,0CAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;YACtC,MAAA,SAAS,CAAC,wBAAwB,+CAAG,GAAG,CAAC,CAAC;YAC1C,MAAA,SAAS,CAAC,wBAAwB,+CAAG,UAAG,GAAG,aAAU,CAAC,CAAC;YAC9D,MAAM;SACP;QACD,SAAS,CAAC,wBAAwB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KACjD;IAED,IAAM,mBAAmB,GAAG,EAAE,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;IAC1E,YAAY,CAAC,aAAa,CACxB,EAAE,EACF,0BAA0B,EAC1B,gCAAgC,EAChC,SAAS,EACT;QACE,kBAAkB,EAAE,EAAE;QACtB,mBAAmB,EAAE,EAAE;QACvB,UAAU,EAAE,CAAC,SAAS,CAAC,eAAe,CAAC;QACvC,SAAS,EAAE,SAAS;QACpB,WAAW,EAAE,SAAS,CAAC,oBAAoB,CACzC,aAAa,CAAC,YAAY,CAAC,IAAI,EAC/B,aAAa,CAAC,IAAI,EAClB,YAAY,EACZ,mBAAmB,CACpB;KACF,CACF,CAAC;IACF,iBAAK,CAAC,GAAG,CAAC,IAAI,CAAC,0CAAkC,UAAU,mBAAe,CAAC,CAAC;AAC9E,CAAC;AAED;IAME;;;;OAIG;IACH,sBAAmB,WAAmB;QACpC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAA,eAAkB,EAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,CAAC;IAEM,oCAAa,GAApB;;QACE,IAAM,OAAO,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,eAAe,mCAAI,EAAE,CAAC;QACnD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;aACxB,MAAM,CAAC,UAAC,GAAG;YACV,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,CACL,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACzB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC,qCAAqC,CAAC,CACpE,CAAC;QACJ,CAAC,CAAC;aACD,GAAG,CAAC,UAAC,GAAG;YACP,OAAQ,OAAO,CAAC,GAAG,CAAqB,CAAC,IAAI,CAAC;QAChD,CAAC,CAAC,CAAC;IACP,CAAC;IAEM,yCAAkB,GAAzB,UACE,aAAgC,EAChC,MAAc,EACd,eAAwB,EACxB,YAAmB;QAAnB,6BAAA,EAAA,mBAAmB;QAEnB,sBAAsB,CAAC,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAC1E,IAAI,YAAY,EAAE;YAChB,mCAAmC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SAC3D;QACD,IAAI,eAAe,EAAE;YACnB,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;SACpC;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACjD,CAAC;IAEM,qCAAc,GAArB,UAAsB,MAAc;QAApC,iBAqDC;;QApDC,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,IAAM,cAAc,GAA2B,EAAE,CAAC;QAClD,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;YACjB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAC;QACnD,IAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG;YACnD,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC3B,OAAO,CACL,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACzB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,IAAI,KAAK,MAAM,CACtB,CAAC;QACJ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,aAAa,GAAG,MACpB,OAAO,CAAC,YAAY,CACrB,CAAC,WAAW,0CAAE,MAAM,CAAC,UAAC,KAAK;;YAC1B,OAAO,CAAA,MAAA,KAAI,CAAC,OAAO,CAAC,oBAAoB,0CAAG,KAAK,CAAC,KAAK,CAAC,MAAK,SAAS,CAAC;QACxE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEN,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,OAAO,SAAS,CAAC;SAClB;QAED,IAAM,UAAU,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,0CAClD,aAAa,CAAC,KAAK,CACI,CAAC;QAC1B,IAAM,eAAe,GAAG,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,mCAAI,EAAE,CAAC;QAEhD,IAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAE7D,OAAO,eAAe;aACnB,GAAG,CAAC,UAAC,IAAI;;YACR,IAAM,OAAO,GAAG,MACd,MAAA,KAAI,CAAC,OAAO,CAAC,YAAY,0CAAG,IAAI,CAAC,KAAK,CACvC,0CAAE,OAAO,CAAC;YACX,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO,EAAE,CAAC;aACX;YACD,IAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,SAAS,EAAE;gBACd,OAAO,EAAE,CAAC;aACX;YACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC;aACD,MAAM,CAAC,UAAC,CAAS,IAAK,OAAA,CAAC,CAAC,MAAM,GAAG,CAAC,EAAZ,CAAY,CAAC,CAAC;IACzC,CAAC;IAED,mCAAY,GAAZ;;QACE,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,IAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;YAC5C,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;YACjD,IAAM,SAAS,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,0CAAG,YAAY,CAAC,CAAC;YACxD,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;gBAC/C,OAAO,EAAE,CAAC;aACX;YACD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SACzC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,iCAAU,GAAV,UAAW,KAAe,EAAE,IAAS;;QAAT,qBAAA,EAAA,SAAS;QACnC,IAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,KAAoB,UAAoB,EAApB,WAAA,KAAK,CAAC,QAAQ,mCAAI,EAAE,EAApB,cAAoB,EAApB,IAAoB,EAAE;YAArC,IAAM,KAAK,SAAA;YACd,IAAM,aAAa,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,0CAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YACnE,IAAM,cAAc,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,0CAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,IAAI,aAAa,EAAE;gBACjB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;oBACrC,SAAS;iBACV;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,EAAE,KAAK,CAAC,KAAK;oBAChB,IAAI,EAAE,UAAG,IAAI,SAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE;iBACvD,CAAC,CAAC;aACJ;iBAAM,IAAI,cAAc,EAAE;gBACzB,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE;oBACtC,SAAS;iBACV;gBACD,IAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CACnC,cAAc,EACd,cAAc,CAAC,IAAI;oBACjB,CAAC,CAAC,UAAG,IAAI,SAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,MAAG;oBACpD,CAAC,CAAC,IAAI,CACT,CAAC;gBACF,MAAM,CAAC,IAAI,OAAX,MAAM,EAAS,aAAa,EAAE;aAC/B;SACF;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IACH,mBAAC;AAAD,CAAC,AAnJD,IAmJC;AAnJY,oCAAY","sourcesContent":["/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\n/* eslint-disable @typescript-eslint/no-unsafe-call */\n// @ts-ignore - clack is ESM and TS complains about that. It works though\nimport clack from '@clack/prompts';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { SentryProjectData } from '../utils/types';\nimport * as templates from './templates';\n\nimport {\n project as createXcodeProject,\n PBXBuildFile,\n PBXGroup,\n PBXNativeTarget,\n PBXObjects,\n PBXSourcesBuildPhase,\n Project,\n XCConfigurationList,\n} from 'xcode';\n\ninterface ProjectFile {\n key: string;\n path: string;\n}\n\nfunction setDebugInformationFormatAndSandbox(\n proj: Project,\n targetName: string,\n): void {\n const xcObjects = proj.hash.project.objects;\n if (!xcObjects.PBXNativeTarget) {\n xcObjects.PBXNativeTarget = {};\n }\n const targetKey: string = Object.keys(xcObjects.PBXNativeTarget).filter(\n (key) => {\n const value = xcObjects.PBXNativeTarget?.[key];\n return (\n !key.endsWith('_comment') &&\n typeof value !== 'string' &&\n value?.name === targetName\n );\n },\n )[0];\n const target = xcObjects.PBXNativeTarget[targetKey] as\n | PBXNativeTarget\n | undefined;\n\n if (!xcObjects.XCBuildConfiguration) {\n xcObjects.XCBuildConfiguration = {};\n }\n if (!xcObjects.XCConfigurationList) {\n xcObjects.XCConfigurationList = {};\n }\n const buildConfigurationListId = target?.buildConfigurationList ?? '';\n const configurationList = xcObjects.XCConfigurationList?.[\n buildConfigurationListId\n ] as XCConfigurationList | undefined;\n const buildListConfigurationIds =\n configurationList?.buildConfigurations ?? [];\n for (const buildListConfigId of buildListConfigurationIds) {\n const config =\n xcObjects.XCBuildConfiguration[buildListConfigId.value] ?? {};\n if (typeof config === 'string') {\n // Ignore comments\n continue;\n }\n\n const buildSettings = config.buildSettings ?? {};\n buildSettings.DEBUG_INFORMATION_FORMAT = '\"dwarf-with-dsym\"';\n buildSettings.ENABLE_USER_SCRIPT_SANDBOXING = '\"NO\"';\n\n config.buildSettings = buildSettings;\n xcObjects.XCBuildConfiguration[buildListConfigId.value] = config;\n }\n}\n\nfunction addSentrySPM(proj: Project, targetName: string): void {\n const xcObjects = proj.hash.project.objects;\n\n const sentryFrameworkUUID = proj.generateUuid();\n const sentrySPMUUID = proj.generateUuid();\n\n // Check whether xcObjects already have sentry framework\n if (xcObjects.PBXFrameworksBuildPhase) {\n for (const key in xcObjects.PBXFrameworksBuildPhase || {}) {\n const frameworkBuildPhase = xcObjects.PBXFrameworksBuildPhase[key];\n if (key.endsWith('_comment') || typeof frameworkBuildPhase === 'string') {\n // Ignore comments\n continue;\n }\n for (const framework of frameworkBuildPhase.files ?? []) {\n // We identify the Sentry framework by the comment \"Sentry in Frameworks\",\n // which is set by this manager in previous runs.\n if (framework.comment === 'Sentry in Frameworks') {\n return;\n }\n }\n }\n }\n\n if (!xcObjects.PBXBuildFile) {\n xcObjects.PBXBuildFile = {};\n }\n xcObjects.PBXBuildFile[sentryFrameworkUUID] = {\n isa: 'PBXBuildFile',\n productRef: sentrySPMUUID,\n productRef_comment: 'Sentry',\n };\n xcObjects.PBXBuildFile[`${sentryFrameworkUUID}_comment`] =\n 'Sentry in Frameworks';\n\n if (!xcObjects.PBXFrameworksBuildPhase) {\n xcObjects.PBXFrameworksBuildPhase = {};\n }\n for (const key in xcObjects.PBXFrameworksBuildPhase) {\n const value = xcObjects.PBXFrameworksBuildPhase[key];\n if (key.endsWith('_comment') || typeof value === 'string') {\n // Ignore comments\n continue;\n }\n\n const frameworks = value.files ?? [];\n frameworks.push({\n value: sentryFrameworkUUID,\n comment: 'Sentry in Frameworks',\n });\n value.files = frameworks;\n\n xcObjects.PBXFrameworksBuildPhase[key] = value;\n }\n\n if (!xcObjects.PBXNativeTarget) {\n xcObjects.PBXNativeTarget = {};\n }\n const targetKey = Object.keys(xcObjects.PBXNativeTarget || {}).filter(\n (key) => {\n const value = xcObjects.PBXNativeTarget?.[key];\n return (\n !key.endsWith('_comment') &&\n typeof value !== 'string' &&\n value?.name === targetName\n );\n },\n )[0];\n const target = xcObjects.PBXNativeTarget[targetKey] as PBXNativeTarget;\n\n if (!target.packageProductDependencies) {\n target.packageProductDependencies = [];\n }\n target.packageProductDependencies.push({\n value: sentrySPMUUID,\n comment: 'Sentry',\n });\n\n const sentrySwiftPackageUUID = proj.generateUuid();\n const xcProject = proj.getFirstProject().firstProject;\n if (!xcProject.packageReferences) {\n xcProject.packageReferences = [];\n }\n xcProject.packageReferences.push({\n value: sentrySwiftPackageUUID,\n comment: 'XCRemoteSwiftPackageReference \"sentry-cocoa\"',\n });\n\n if (!xcObjects.XCRemoteSwiftPackageReference) {\n xcObjects.XCRemoteSwiftPackageReference = {};\n }\n\n xcObjects.XCRemoteSwiftPackageReference[sentrySwiftPackageUUID] = {\n isa: 'XCRemoteSwiftPackageReference',\n repositoryURL: '\"https://github.com/getsentry/sentry-cocoa/\"',\n requirement: {\n kind: 'upToNextMajorVersion',\n minimumVersion: '8.0.0',\n },\n };\n xcObjects.XCRemoteSwiftPackageReference[`${sentrySwiftPackageUUID}_comment`] =\n 'XCRemoteSwiftPackageReference \"sentry-cocoa\"';\n\n if (!xcObjects.XCSwiftPackageProductDependency) {\n xcObjects.XCSwiftPackageProductDependency = {};\n }\n xcObjects.XCSwiftPackageProductDependency[sentrySPMUUID] = {\n isa: 'XCSwiftPackageProductDependency',\n package: sentrySwiftPackageUUID,\n package_comment: 'XCRemoteSwiftPackageReference \"sentry-cocoa\"',\n productName: 'Sentry',\n };\n xcObjects.XCSwiftPackageProductDependency[`${sentrySPMUUID}_comment`] =\n 'Sentry';\n\n clack.log.step('Added Sentry SPM dependency to your project');\n}\n\nfunction addUploadSymbolsScript(\n xcodeProject: Project,\n sentryProject: SentryProjectData,\n targetName: string,\n uploadSource: boolean,\n): void {\n const xcObjects = xcodeProject.hash.project.objects;\n if (!xcObjects.PBXNativeTarget) {\n xcObjects.PBXNativeTarget = {};\n }\n const targetKey = Object.keys(xcObjects.PBXNativeTarget).filter((key) => {\n const value = xcObjects.PBXNativeTarget?.[key];\n return (\n !key.endsWith('_comment') &&\n typeof value !== 'string' &&\n value?.name === targetName\n );\n })[0];\n\n if (!xcObjects.PBXShellScriptBuildPhase) {\n xcObjects.PBXShellScriptBuildPhase = {};\n }\n for (const key in xcObjects.PBXShellScriptBuildPhase) {\n const value = xcObjects.PBXShellScriptBuildPhase[key] ?? {};\n if (typeof value === 'string') {\n // Ignore comments\n continue;\n }\n\n // Sentry script already exists, update it\n if (value.shellScript?.includes('sentry-cli')) {\n delete xcObjects.PBXShellScriptBuildPhase?.[key];\n delete xcObjects.PBXShellScriptBuildPhase?.[`${key}_comment`];\n break;\n }\n xcObjects.PBXShellScriptBuildPhase[key] = value;\n }\n\n const isHomebrewInstalled = fs.existsSync('/opt/homebrew/bin/sentry-cli');\n xcodeProject.addBuildPhase(\n [],\n 'PBXShellScriptBuildPhase',\n 'Upload Debug Symbols to Sentry',\n targetKey,\n {\n inputFileListPaths: [],\n outputFileListPaths: [],\n inputPaths: [templates.scriptInputPath],\n shellPath: '/bin/sh',\n shellScript: templates.getRunScriptTemplate(\n sentryProject.organization.slug,\n sentryProject.slug,\n uploadSource,\n isHomebrewInstalled,\n ),\n },\n );\n clack.log.step(`Added Sentry upload script to \"${targetName}\" build phase`);\n}\n\nexport class XcodeProject {\n projectPath: string;\n project: Project;\n objects: PBXObjects;\n files: ProjectFile[] | undefined;\n\n /**\n * Creates a new XcodeProject instance, a wrapper around the Xcode project file `<PROJECT>.xcodeproj/project.pbxproj`.\n *\n * @param projectPath - The path to the Xcode project file\n */\n public constructor(projectPath: string) {\n this.projectPath = projectPath;\n this.project = createXcodeProject(projectPath);\n this.project.parseSync();\n this.objects = this.project.hash.project.objects;\n }\n\n public getAllTargets(): string[] {\n const targets = this.objects.PBXNativeTarget ?? {};\n return Object.keys(targets)\n .filter((key) => {\n const value = targets[key];\n return (\n !key.endsWith('_comment') &&\n typeof value !== 'string' &&\n value.productType.startsWith('\"com.apple.product-type.application')\n );\n })\n .map((key) => {\n return (targets[key] as PBXNativeTarget).name;\n });\n }\n\n public updateXcodeProject(\n sentryProject: SentryProjectData,\n target: string,\n addSPMReference: boolean,\n uploadSource = true,\n ): void {\n addUploadSymbolsScript(this.project, sentryProject, target, uploadSource);\n if (uploadSource) {\n setDebugInformationFormatAndSandbox(this.project, target);\n }\n if (addSPMReference) {\n addSentrySPM(this.project, target);\n }\n const newContent = this.project.writeSync();\n fs.writeFileSync(this.projectPath, newContent);\n }\n\n public filesForTarget(target: string): string[] | undefined {\n const files = this.projectFiles();\n const fileDictionary: Record<string, string> = {};\n files.forEach((file) => {\n fileDictionary[file.key] = file.path;\n });\n\n const targets = this.objects.PBXNativeTarget || {};\n const nativeTarget = Object.keys(targets).filter((key) => {\n const value = targets[key];\n return (\n !key.endsWith('_comment') &&\n typeof value !== 'string' &&\n value.name === target\n );\n })[0];\n\n if (nativeTarget === undefined) {\n return undefined;\n }\n\n const buildPhaseKey = (\n targets[nativeTarget] as PBXNativeTarget\n ).buildPhases?.filter((phase) => {\n return this.objects.PBXSourcesBuildPhase?.[phase.value] !== undefined;\n })[0];\n\n if (buildPhaseKey === undefined) {\n return undefined;\n }\n\n const buildPhase = this.objects.PBXSourcesBuildPhase?.[\n buildPhaseKey.value\n ] as PBXSourcesBuildPhase;\n const buildPhaseFiles = buildPhase?.files ?? [];\n\n const baseDir = path.dirname(path.dirname(this.projectPath));\n\n return buildPhaseFiles\n .map((file) => {\n const fileRef = (\n this.objects.PBXBuildFile?.[file.value] as PBXBuildFile\n )?.fileRef;\n if (!fileRef) {\n return '';\n }\n const buildFile = fileDictionary[fileRef];\n if (!buildFile) {\n return '';\n }\n return path.join(baseDir, buildFile);\n })\n .filter((f: string) => f.length > 0);\n }\n\n projectFiles(): ProjectFile[] {\n if (this.files === undefined) {\n const proj = this.project.getFirstProject();\n const mainGroupKey = proj.firstProject.mainGroup;\n const mainGroup = this.objects.PBXGroup?.[mainGroupKey];\n if (!mainGroup || typeof mainGroup === 'string') {\n return [];\n }\n this.files = this.buildGroup(mainGroup);\n }\n return this.files;\n }\n\n buildGroup(group: PBXGroup, path = ''): ProjectFile[] {\n const result: ProjectFile[] = [];\n for (const child of group.children ?? []) {\n const fileReference = this.objects.PBXFileReference?.[child.value];\n const groupReference = this.objects.PBXGroup?.[child.value];\n if (fileReference) {\n if (typeof fileReference === 'string') {\n continue;\n }\n result.push({\n key: child.value,\n path: `${path}${fileReference.path.replace(/\"/g, '')}`,\n });\n } else if (groupReference) {\n if (typeof groupReference === 'string') {\n continue;\n }\n const groupChildren = this.buildGroup(\n groupReference,\n groupReference.path\n ? `${path}${groupReference.path.replace(/\"/g, '')}/`\n : path,\n );\n result.push(...groupChildren);\n }\n }\n return result;\n }\n}\n"]}
|
|
@@ -98,15 +98,16 @@ exports.runNextjsWizard = runNextjsWizard;
|
|
|
98
98
|
function runNextjsWizardWithTelemetry(options) {
|
|
99
99
|
var _a;
|
|
100
100
|
return __awaiter(this, void 0, void 0, function () {
|
|
101
|
-
var typeScriptDetected, packageJson, nextVersion, _b, selectedProject, authToken, selfHosted, sentryUrl, sdkAlreadyInstalled, packageManagerFromInstallStep, shouldCreateExamplePage, isLikelyUsingTurbopack, mightBeUsingVercel, packageManagerForOutro, _c;
|
|
101
|
+
var promoCode, telemetryEnabled, forceInstall, typeScriptDetected, packageJson, nextVersion, _b, selectedProject, authToken, selfHosted, sentryUrl, sdkAlreadyInstalled, packageManagerFromInstallStep, shouldCreateExamplePage, isLikelyUsingTurbopack, mightBeUsingVercel, packageManagerForOutro, _c;
|
|
102
102
|
var _this = this;
|
|
103
103
|
return __generator(this, function (_d) {
|
|
104
104
|
switch (_d.label) {
|
|
105
105
|
case 0:
|
|
106
|
+
promoCode = options.promoCode, telemetryEnabled = options.telemetryEnabled, forceInstall = options.forceInstall;
|
|
106
107
|
(0, clack_utils_1.printWelcome)({
|
|
107
108
|
wizardName: 'Sentry Next.js Wizard',
|
|
108
|
-
promoCode:
|
|
109
|
-
telemetryEnabled:
|
|
109
|
+
promoCode: promoCode,
|
|
110
|
+
telemetryEnabled: telemetryEnabled,
|
|
110
111
|
});
|
|
111
112
|
typeScriptDetected = (0, clack_utils_1.isUsingTypeScript)();
|
|
112
113
|
return [4 /*yield*/, (0, clack_utils_1.confirmContinueIfNoOrDirtyGitRepo)()];
|
|
@@ -129,6 +130,7 @@ function runNextjsWizardWithTelemetry(options) {
|
|
|
129
130
|
packageName: '@sentry/nextjs@^8',
|
|
130
131
|
packageNameDisplayLabel: '@sentry/nextjs',
|
|
131
132
|
alreadyInstalled: !!((_a = packageJson === null || packageJson === void 0 ? void 0 : packageJson.dependencies) === null || _a === void 0 ? void 0 : _a['@sentry/nextjs']),
|
|
133
|
+
forceInstall: forceInstall,
|
|
132
134
|
})];
|
|
133
135
|
case 5:
|
|
134
136
|
packageManagerFromInstallStep = (_d.sent()).packageManager;
|