Skip to content

Add support for ExtensionKit extension product types (new in Xcode 14)Β #687

@kwridan

Description

@kwridan

Context πŸ•΅οΈβ€β™€οΈ

Xcode 14 has introduced a few new frameworks and associated extension product types:

app-intents

background-assets

What 🌱

  • The new extensions have a new product type com.apple.product-type.extensionkit-extension which not currently supported by XcodeProj
		FB2930F2284F86D7004FAF29 /* AppIntentsExtension */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = FB2930FB284F86D7004FAF29 /* Build configuration list for PBXNativeTarget "AppIntentsExtension" */;
			buildPhases = (
				FB2930EF284F86D7004FAF29 /* Sources */,
				FB2930F0284F86D7004FAF29 /* Frameworks */,
				FB2930F1284F86D7004FAF29 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = AppIntentsExtension;
			productName = AppIntentsExtension;
			productReference = FB2930F3284F86D7004FAF29 /* AppIntentsExtension.appex */;
			productType = "com.apple.product-type.extensionkit-extension";
		};
		FBE4DE842859B1EC00C6A189 /* BackgroundExt */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = FBE4DE8E2859B1EC00C6A189 /* Build configuration list for PBXNativeTarget "BackgroundExt" */;
			buildPhases = (
				FBE4DE812859B1EC00C6A189 /* Sources */,
				FBE4DE822859B1EC00C6A189 /* Frameworks */,
				FBE4DE832859B1EC00C6A189 /* Resources */,
			);
			buildRules = (
			);
			dependencies = (
			);
			name = BackgroundExt;
			productName = BackgroundExt;
			productReference = FBE4DE852859B1EC00C6A189 /* BackgroundExt.appex */;
			productType = "com.apple.product-type.extensionkit-extension";
		};

Proposal πŸŽ‰

  • Add a new supported PBXProductType. extensionKitExtension that maps to com.apple.product-type.extensionkit-extension

Questions ❓

  • Should it be appIntentsExtension or something more raw like extensionKitExtension ?

Looking at appExtension, the same product type is used for several extension types (e.g. NotificationsServiceExtension, WidgetKitExtension, SiriKit IntentsExtension, etc...) - as such calling appIntentsExtension may require a breaking change to generalise it the future should new extensions appear that share the same product type 🀐

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions