Skip to content

Commit 2090491

Browse files
authored
feat(ios): multi target support for swift packages (#5828)
1 parent d96fde1 commit 2090491

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

lib/definitions/ios.d.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,16 +41,18 @@ declare global {
4141
): Promise<string>;
4242
}
4343

44+
type IosSPMPackage = IosSPMPackageDefinition & { targets?: string[] };
45+
4446
interface ISPMService {
4547
applySPMPackages(
4648
platformData: IPlatformData,
4749
projectData: IProjectData,
48-
pluginSpmPackages?: IosSPMPackageDefinition[]
50+
pluginSpmPackages?: IosSPMPackage[]
4951
);
5052
getSPMPackages(
5153
projectData: IProjectData,
5254
platform: string
53-
): IosSPMPackageDefinition[];
55+
): IosSPMPackage[];
5456
}
5557

5658
interface IXcodebuildArgsService {

lib/services/ios-project-service.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1425,7 +1425,7 @@ export class IOSProjectService extends projectServiceBaseLib.PlatformProjectServ
14251425

14261426
if (addedExtensionsFromResources || addedExtensionsFromPlugins) {
14271427
this.$logger.warn(
1428-
"The support for iOS App Extensions is currently in Beta. For more information about the current development state and any known issues, please check the relevant GitHub issue: https://github.com/NativeScript/nativescript-cli/issues/4472"
1428+
"Let us know if there are other Extension features you'd like! https://github.com/NativeScript/NativeScript/issues"
14291429
);
14301430
}
14311431
}

lib/services/ios/spm-service.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export class SPMService implements ISPMService {
1818
public getSPMPackages(
1919
projectData: IProjectData,
2020
platform: string
21-
): IosSPMPackageDefinition[] {
21+
): IosSPMPackage[] {
2222
const spmPackages = this.$projectConfigService.getValue(
2323
`${platform}.SPMPackages`,
2424
[]
@@ -35,7 +35,7 @@ export class SPMService implements ISPMService {
3535
public async applySPMPackages(
3636
platformData: IPlatformData,
3737
projectData: IProjectData,
38-
pluginSpmPackages?: IosSPMPackageDefinition[]
38+
pluginSpmPackages?: IosSPMPackage[]
3939
) {
4040
try {
4141
const spmPackages = this.getSPMPackages(
@@ -76,6 +76,13 @@ export class SPMService implements ISPMService {
7676
}
7777
this.$logger.trace(`SPM: adding package ${pkg.name} to project.`, pkg);
7878
await project.ios.addSPMPackage(projectData.projectName, pkg);
79+
80+
// Add to other Targets if specified (like widgets, etc.)
81+
if (pkg.targets?.length) {
82+
for (const target of pkg.targets) {
83+
await project.ios.addSPMPackage(target, pkg);
84+
}
85+
}
7986
}
8087
await project.commit();
8188

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy