@bacons/apple-targets
Version:
Generate Apple Targets with Expo Prebuild
924 lines (923 loc) • 41.9 kB
TypeScript
import { PBXNativeTarget, XcodeProject } from "@bacons/xcode";
export interface TargetDefinition {
/** Apple NSExtensionPointIdentifier, e.g. "com.apple.widgetkit-extension" */
extensionPointIdentifier?: string;
/** Xcode product type. Defaults to "com.apple.product-type.app-extension" */
productType?: string;
/** Whether to set ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES. Default: false */
needsEmbeddedSwift?: boolean;
/** System frameworks to link. Default: [] */
frameworks?: readonly string[];
/** Whether app groups should sync from main target by default. Default: false */
appGroupsByDefault?: boolean;
/** If true, type has no Swift template and is excluded from CLI / e2e tests */
hasNoTemplate?: boolean;
/** Display name for the create-target CLI */
displayName: string;
/** Short description for the create-target CLI */
description?: string;
}
export declare const TARGET_REGISTRY: {
readonly widget: {
readonly extensionPointIdentifier: "com.apple.widgetkit-extension";
readonly frameworks: readonly ["WidgetKit", "SwiftUI", "ActivityKit", "AppIntents"];
readonly appGroupsByDefault: true;
readonly displayName: "Widget";
readonly description: "Home screen widget";
};
readonly "notification-content": {
readonly extensionPointIdentifier: "com.apple.usernotifications.content-extension";
readonly frameworks: readonly ["UserNotifications", "UserNotificationsUI"];
readonly displayName: "Notification Content";
};
readonly "notification-service": {
readonly extensionPointIdentifier: "com.apple.usernotifications.service";
readonly displayName: "Notification Service";
};
readonly share: {
readonly extensionPointIdentifier: "com.apple.share-services";
readonly needsEmbeddedSwift: true;
readonly appGroupsByDefault: true;
readonly displayName: "Share Extension";
};
readonly intent: {
readonly extensionPointIdentifier: "com.apple.intents-service";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["Intents"];
readonly displayName: "Siri Intent";
};
readonly "bg-download": {
readonly extensionPointIdentifier: "com.apple.background-asset-downloader-extension";
readonly needsEmbeddedSwift: true;
readonly appGroupsByDefault: true;
readonly displayName: "Background Download";
};
readonly "intent-ui": {
readonly extensionPointIdentifier: "com.apple.intents-ui-service";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["IntentsUI"];
readonly displayName: "Siri Intent UI";
};
readonly spotlight: {
readonly extensionPointIdentifier: "com.apple.spotlight.import";
readonly needsEmbeddedSwift: true;
readonly displayName: "Spotlight";
};
readonly matter: {
readonly extensionPointIdentifier: "com.apple.matter.support.extension.device-setup";
readonly needsEmbeddedSwift: true;
readonly displayName: "Matter";
};
readonly "quicklook-thumbnail": {
readonly extensionPointIdentifier: "com.apple.quicklook.thumbnail";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["QuickLookThumbnailing"];
readonly displayName: "Quicklook Thumbnail";
};
readonly imessage: {
readonly extensionPointIdentifier: "com.apple.message-payload-provider";
readonly hasNoTemplate: true;
readonly displayName: "iMessage";
};
readonly clip: {
readonly productType: "com.apple.product-type.application.on-demand-install-capable";
readonly needsEmbeddedSwift: true;
readonly appGroupsByDefault: true;
readonly displayName: "App Clip";
readonly description: "Instantly open your app without installing";
};
readonly watch: {
readonly productType: "com.apple.product-type.application";
readonly needsEmbeddedSwift: true;
readonly displayName: "Watch";
};
readonly "watch-widget": {
readonly frameworks: readonly ["WidgetKit", "SwiftUI"];
readonly appGroupsByDefault: true;
readonly displayName: "Watch Widget";
readonly description: "Watch face complication using WidgetKit";
};
readonly "location-push": {
readonly extensionPointIdentifier: "com.apple.location.push.service";
readonly displayName: "Location Push";
};
readonly "credentials-provider": {
readonly extensionPointIdentifier: "com.apple.authentication-services-credential-provider-ui";
readonly displayName: "Credentials Provider";
};
readonly "account-auth": {
readonly extensionPointIdentifier: "com.apple.authentication-services-account-authentication-modification-ui";
readonly displayName: "Account Auth";
};
readonly action: {
readonly extensionPointIdentifier: "com.apple.services";
readonly displayName: "Action";
readonly description: "Headless action that appears in share sheets";
};
readonly safari: {
readonly extensionPointIdentifier: "com.apple.Safari.web-extension";
readonly displayName: "Safari Extension";
};
readonly "app-intent": {
readonly extensionPointIdentifier: "com.apple.appintents-extension";
readonly productType: "com.apple.product-type.extensionkit-extension";
readonly frameworks: readonly ["AppIntents"];
readonly displayName: "App Intent";
};
readonly "device-activity-monitor": {
readonly extensionPointIdentifier: "com.apple.deviceactivity.monitor-extension";
readonly frameworks: readonly ["DeviceActivity"];
readonly displayName: "Device Activity Monitor";
};
readonly "network-packet-tunnel": {
readonly extensionPointIdentifier: "com.apple.networkextension.packet-tunnel";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["NetworkExtension"];
readonly displayName: "Network Extension: Packet Tunnel Provider";
};
readonly "network-app-proxy": {
readonly extensionPointIdentifier: "com.apple.networkextension.app-proxy";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["NetworkExtension"];
readonly displayName: "Network Extension: App Proxy";
};
readonly "network-filter-data": {
readonly extensionPointIdentifier: "com.apple.networkextension.filter-data";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["NetworkExtension"];
readonly displayName: "Network Extension: Filter Data";
};
readonly "network-dns-proxy": {
readonly extensionPointIdentifier: "com.apple.networkextension.dns-proxy";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["NetworkExtension"];
readonly displayName: "Network Extension: DNS Proxy";
};
readonly keyboard: {
readonly extensionPointIdentifier: "com.apple.keyboard-service";
readonly needsEmbeddedSwift: true;
readonly appGroupsByDefault: true;
readonly displayName: "Keyboard Extension";
readonly description: "Custom system keyboard";
};
readonly "content-blocker": {
readonly extensionPointIdentifier: "com.apple.Safari.content-blocker";
readonly displayName: "Content Blocker";
readonly description: "Safari content blocker extension";
};
readonly "file-provider": {
readonly extensionPointIdentifier: "com.apple.fileprovider-nonui";
readonly frameworks: readonly ["UniformTypeIdentifiers"];
readonly appGroupsByDefault: true;
readonly displayName: "File Provider";
};
readonly "broadcast-upload": {
readonly extensionPointIdentifier: "com.apple.broadcast-services-upload";
readonly frameworks: readonly ["ReplayKit"];
readonly displayName: "Broadcast Upload";
};
readonly "call-directory": {
readonly extensionPointIdentifier: "com.apple.callkit.call-directory";
readonly frameworks: readonly ["CallKit"];
readonly displayName: "Call Directory";
};
readonly "message-filter": {
readonly extensionPointIdentifier: "com.apple.identitylookup.message-filter";
readonly frameworks: readonly ["IdentityLookup"];
readonly displayName: "Message Filter";
};
readonly "file-provider-ui": {
readonly extensionPointIdentifier: "com.apple.fileprovider-actionsui";
readonly frameworks: readonly ["FileProviderUI"];
readonly displayName: "File Provider UI";
};
readonly "broadcast-setup-ui": {
readonly extensionPointIdentifier: "com.apple.broadcast-services-setupui";
readonly frameworks: readonly ["ReplayKit"];
readonly displayName: "Broadcast Setup UI";
};
readonly "classkit-context": {
readonly extensionPointIdentifier: "com.apple.classkit.context-provider";
readonly frameworks: readonly ["ClassKit"];
readonly displayName: "ClassKit Context Provider";
};
readonly "unwanted-communication": {
readonly extensionPointIdentifier: "com.apple.identitylookup.classification-ui";
readonly frameworks: readonly ["IdentityLookup", "IdentityLookupUI"];
readonly displayName: "Unwanted Communication Reporting";
};
readonly "photo-editing": {
readonly extensionPointIdentifier: "com.apple.photo-editing";
readonly frameworks: readonly ["Photos", "PhotosUI"];
readonly displayName: "Photo Editing";
};
readonly "quicklook-preview": {
readonly extensionPointIdentifier: "com.apple.quicklook.preview";
readonly needsEmbeddedSwift: true;
readonly frameworks: readonly ["QuickLook"];
readonly displayName: "Quick Look Preview";
};
readonly "spotlight-delegate": {
readonly extensionPointIdentifier: "com.apple.spotlight.index";
readonly frameworks: readonly ["CoreSpotlight"];
readonly displayName: "CoreSpotlight Delegate";
};
readonly "virtual-conference": {
readonly extensionPointIdentifier: "com.apple.calendar.virtualconference";
readonly displayName: "Virtual Conference Provider";
};
readonly "shield-action": {
readonly extensionPointIdentifier: "com.apple.ManagedSettings.shield-action-service";
readonly frameworks: readonly ["ManagedSettings"];
readonly displayName: "Shield Action";
};
readonly "shield-config": {
readonly extensionPointIdentifier: "com.apple.ManagedSettingsUI.shield-configuration-service";
readonly frameworks: readonly ["ManagedSettings", "ManagedSettingsUI"];
readonly displayName: "Shield Configuration";
};
readonly "print-service": {
readonly extensionPointIdentifier: "com.apple.printing.discovery";
readonly displayName: "Print Service";
};
readonly "smart-card": {
readonly extensionPointIdentifier: "com.apple.ctk-tokens";
readonly frameworks: readonly ["CryptoTokenKit"];
readonly displayName: "Smart Card";
readonly description: "Persistent token / smart card extension";
};
readonly "authentication-services": {
readonly extensionPointIdentifier: "com.apple.AppSSO.idp-extension";
readonly frameworks: readonly ["AuthenticationServices"];
readonly displayName: "Authentication Services";
readonly description: "Single sign-on extension";
};
readonly wallet: {
readonly extensionPointIdentifier: "com.apple.PassKit.issuer-provisioning";
readonly frameworks: readonly ["PassKit"];
readonly appGroupsByDefault: true;
readonly displayName: "Apple Wallet (Non-UI)";
readonly description: "In-App Provisioning Extension (Non-UI) for adding payment passes to Apple Wallet";
};
readonly "wallet-ui": {
readonly extensionPointIdentifier: "com.apple.PassKit.issuer-provisioning.authorization";
readonly frameworks: readonly ["PassKit", "UIKit"];
readonly appGroupsByDefault: true;
readonly displayName: "Apple Wallet (UI)";
readonly description: "In-App Provisioning Authorization UI Extension for Apple Wallet";
};
};
export type ExtensionType = keyof typeof TARGET_REGISTRY;
/**
* Directory under `ios/` where this plugin writes derived target files (e.g.
* `generated.entitlements`) during prebuild. The leading-dot `.targets` name
* makes it obvious on disk that the contents are generated and should not be
* edited by hand, while avoiding a colon in the path (which is risky for Xcode
* build-setting paths). Files live at `ios/<TARGET_GENERATED_DIR>/<productName>/`.
*/
export declare const TARGET_GENERATED_DIR = ".targets";
/** Maps Apple extension point identifiers to ExtensionType values. */
export declare const KNOWN_EXTENSION_POINT_IDENTIFIERS: Record<string, ExtensionType>;
/** Whether app groups should sync from the main target by default. */
export declare const SHOULD_USE_APP_GROUPS_BY_DEFAULT: Record<ExtensionType, boolean>;
export declare function productTypeForType(type: ExtensionType): string;
export declare function needsEmbeddedSwift(type: ExtensionType): boolean;
export declare function getFrameworksForType(type: ExtensionType): string[];
export declare function getTargetInfoPlistForType(type: ExtensionType): {
NSExtension?: undefined;
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
NSExtensionActivationRule: {
NSExtensionActivationSupportsFileWithMaxCount: number;
NSExtensionActivationSupportsImageWithMaxCount: number;
NSExtensionActivationSupportsMovieWithMaxCount: number;
NSExtensionActivationSupportsText: boolean;
NSExtensionActivationSupportsWebURLWithMaxCount: number;
};
NSExtensionJavaScriptPreprocessingFile: string;
NSExtensionServiceAllowsFinderPreviewItem: boolean;
NSExtensionServiceAllowsTouchBarItem: boolean;
NSExtensionServiceFinderPreviewIconName: string;
NSExtensionServiceTouchBarBezelColorName: string;
NSExtensionServiceTouchBarIconName: string;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPointIdentifier: string;
NSExtensionPrincipalClass: string;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
EXAppExtensionAttributes: {
EXExtensionPointIdentifier: string;
};
NSExtension?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
CFBundleName: string;
CFBundleIdentifier: string;
CFBundleVersion: string;
CFBundleExecutable: string;
CFBundlePackageType: string;
CFBundleShortVersionString: string;
UIApplicationSupportsIndirectInputEvents: boolean;
NSAppClip: {
NSAppClipRequestEphemeralUserNotification: boolean;
NSAppClipRequestLocationConfirmation: boolean;
};
NSAppTransportSecurity: {
NSAllowsArbitraryLoads: boolean;
NSAllowsLocalNetworking: boolean;
};
UILaunchStoryboardName: string;
UIUserInterfaceStyle: string;
UIViewControllerBasedStatusBarAppearance: boolean;
NSExtension?: undefined;
EXAppExtensionAttributes?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
NSExtensionAttributes?: undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
NSExtensionAttributes: {
ASAccountAuthenticationModificationSupportsStrongPasswordChange: boolean;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple: boolean;
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
NSExtensionAttributes: {
RequestsOpenAccess: boolean;
IsASCIICapable: boolean;
PrefersRightToLeft: boolean;
PrimaryLanguage: string;
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
NSExtensionActivationRule: string;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
QLSupportedContentTypes: never[];
QLThumbnailMinimumDimension: number;
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
CSExtensionLabel: string;
NSExtension: {
NSExtensionAttributes: {
CSSupportedContentTypes: string[];
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
IntentsSupported: string[];
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
IntentsRestrictedWhileLocked: never[];
IntentsSupported: string[];
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
UNNotificationExtensionCategory: string;
UNNotificationExtensionInitialContentSizeRatio: number;
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
NSExtensionFileProviderSupportsEnumeration: boolean;
NSExtensionAttributes?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
RPBroadcastProcessMode: string;
NSExtensionAttributes?: undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionPrincipalClass: string;
NSExtensionAttributes: {
PHSupportedMediaTypes: string[];
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLSupportedContentTypes?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
};
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionAttributes: {
QLSupportedContentTypes: never[];
NSExtensionActivationRule?: undefined;
NSExtensionJavaScriptPreprocessingFile?: undefined;
NSExtensionServiceAllowsFinderPreviewItem?: undefined;
NSExtensionServiceAllowsTouchBarItem?: undefined;
NSExtensionServiceFinderPreviewIconName?: undefined;
NSExtensionServiceTouchBarBezelColorName?: undefined;
NSExtensionServiceTouchBarIconName?: undefined;
ASAccountAuthenticationModificationSupportsStrongPasswordChange?: undefined;
ASAccountAuthenticationModificationSupportsUpgradeToSignInWithApple?: undefined;
RequestsOpenAccess?: undefined;
IsASCIICapable?: undefined;
PrefersRightToLeft?: undefined;
PrimaryLanguage?: undefined;
QLThumbnailMinimumDimension?: undefined;
CSSupportedContentTypes?: undefined;
IntentsSupported?: undefined;
IntentsRestrictedWhileLocked?: undefined;
UNNotificationExtensionCategory?: undefined;
UNNotificationExtensionInitialContentSizeRatio?: undefined;
PHSupportedMediaTypes?: undefined;
};
NSExtensionPrincipalClass: string;
NSExtensionPointIdentifier: string | undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
} | {
NSExtension: {
NSExtensionPointIdentifier: string | undefined;
NSExtensionAttributes?: undefined;
NSExtensionPrincipalClass?: undefined;
NSExtensionFileProviderSupportsEnumeration?: undefined;
RPBroadcastProcessMode?: undefined;
};
EXAppExtensionAttributes?: undefined;
CFBundleName?: undefined;
CFBundleIdentifier?: undefined;
CFBundleVersion?: undefined;
CFBundleExecutable?: undefined;
CFBundlePackageType?: undefined;
CFBundleShortVersionString?: undefined;
UIApplicationSupportsIndirectInputEvents?: undefined;
NSAppClip?: undefined;
NSAppTransportSecurity?: undefined;
UILaunchStoryboardName?: undefined;
UIUserInterfaceStyle?: undefined;
UIViewControllerBasedStatusBarAppearance?: undefined;
CSExtensionLabel?: undefined;
};
export declare function isNativeTargetOfType(target: PBXNativeTarget, type: ExtensionType): boolean;
export declare function getMainAppTarget(project: XcodeProject): PBXNativeTarget;
export declare function getAuxiliaryTargets(project: XcodeProject): PBXNativeTarget[];