import plist from 'plist'; import { MobileProject } from "../project"; import { IosPbxProject, IosEntitlements, IosFramework, IosBuildName, IosTarget, IosTargetName, IosTargetBuildConfiguration, IosFrameworkOpts, IosSPMPackageDefinition } from '../definitions'; import { XmlFile } from '../xml'; import { PlistFile } from '../plist'; import { PlatformProject } from '../platform-project'; /** * An instance of an IosProject in a mobile project */ export declare class IosProject extends PlatformProject { private pbxProject; constructor(project: MobileProject); private log; load(): Promise; /** * Get a project file container for the given path in the project root. * This will return an existing file container or create a new one. */ getProjectFile(path: string, create: (filename: string) => T): T | null; getXmlFile(path: string): Promise; getPlistFile(path: string): Promise; getPbxProject(): IosPbxProject | null; /** * Get all targets in the project */ getTargets(): IosTarget[] | null; /** * Get the target with the given name */ getTarget(name: string): IosTarget | null; /** * Get the main app target in the project. */ getAppTarget(): IosTarget | null; /** * Get the name of the main app target in the project */ getAppTargetName(): string | null; /** * Get the bundle id (aka the PRODUCT_BUNDLE_IDENTIFIER) for the given target and build. If build is null * the value for all build targets (Debug and Release) will be set to the same value. If target is null * the default app target will be used. */ getBundleId(targetName: IosTargetName | null, buildName?: string): string | null; /** * Set the bundle id (aka the PRODUCT_BUNDLE_IDENTIFIER) for the given target and build. If build is null * the value for all build targets (Debug and Release) will be set to the same value. If target is null * the default app target will be used. */ setBundleId(targetName: IosTargetName | null, buildName: IosBuildName | null, bundleId: string): void; /** * Get the build configurations for a given target. */ getBuildConfigurations(targetName: IosTargetName | null): IosTargetBuildConfiguration[]; /** * Get the build configuration names (ex: Debug, Release) for a given target. */ getBuildConfigurationNames(targetName: IosTargetName | null): string[]; /** * Set the product name for the given target. If the `targetName` is null the main app target is used. */ setProductName(targetName: IosTargetName | null, productName: string): void; /** * Get the product name for the given target. If the `targetName` is null the main app target is used. */ getProductName(targetName?: IosTargetName | undefined): string | null; /** * Set the build number (aka the `CURRENT_PROJECT_VERSION`) for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the value is set for both builds (Debug/Release); */ setBuild(targetName: IosTargetName | null, buildName: IosBuildName | null, buildNumber: number | string | null): Promise; /** * Get the build number (aka the `CURRENT_PROJECT_VERSION`) for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the value is set for both builds (Debug/Release); */ getBuild(targetName: IosTargetName | null, buildName?: IosBuildName | null | undefined): Promise; /** * Increment the build number for the given build name. If the build * name is not specified, both Debug and Release builds are incremented. */ incrementBuild(targetName?: IosTargetName | undefined | null, buildName?: IosBuildName | null | undefined): Promise; /** * Set the version (aka `MARKETING_VERSION`) for the given build (Debug/Release/etc) */ setVersion(targetName: IosTargetName | null, buildName: IosBuildName | null, version: string): Promise; /** * Get the version (aka the `MARKETING_VERSION`) for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the value is set for both builds (Debug/Release); */ getVersion(targetName: IosTargetName | null, buildName: IosBuildName | null): any; /** * Set the build property for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the value is set for both builds (Debug/Release); */ setBuildProperty(targetName: IosTargetName | null, buildName: IosBuildName | null, key: string, value: string): void; /** * Get the build property for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the value is set for both builds (Debug/Release); */ getBuildProperty(targetName: IosTargetName | null, buildName: IosBuildName | null, key: string): string; /** * Add a framework for the given target. * If the `targetName` is null the main app target is used. */ addFramework(targetName: IosTargetName | null, framework: IosFramework, opts?: IosFrameworkOpts): void; /** * Get the frameworks for the given target * If the `targetName` is null the main app target is used. */ getFrameworks(targetName: IosTargetName | null): IosFramework[]; /** * Add a SPM framework for the given target. * If the `targetName` is null the main app target is used. */ addSPMPackage(targetName: IosTargetName | null, packageDef: IosSPMPackageDefinition, opts?: IosFrameworkOpts): void; /** * Get the path to the entitlements file for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ getEntitlementsFile(targetName: IosTargetName | null, buildName?: IosBuildName | undefined): string; /** * Add entitlements for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ addEntitlements(targetName: IosTargetName | null, buildName: IosBuildName | null, entitlements: IosEntitlements): Promise; /** * Set entitlements for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ setEntitlements(targetName: IosTargetName | null, buildName: IosBuildName | null, entitlements: IosEntitlements): Promise; /** * Get the parsed plist of the entitlements for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ getEntitlements(targetName: IosTargetName | null, buildName?: IosBuildName | undefined): Promise; /** * Gets the relative Info plist file from the build settings. */ getInfoPlist(targetName: IosTargetName | null, buildName?: IosBuildName | null | undefined): Promise; /** * Gets the full relative path to the Info plist after getting the relative path * from the build settings and resolving it with the app path */ getInfoPlistFilename(targetName: IosTargetName, buildName?: IosBuildName | null | undefined): Promise; /** * Set the display name for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ setDisplayName(targetName: IosTargetName | null, buildName: IosBuildName | null, displayName: string): Promise; /** * Get the display name for the given target and build. * If the `targetName` is null the main app target is used. If the `buildName` is null the first * build name is used. */ getDisplayName(targetName: IosTargetName | null, buildName?: IosBuildName | null | undefined): Promise; /** * Update the Info plist for the given target and build. The entries will be merged * into the existing plist file. * * Pass null as the `targetName` to use the main app target */ updateInfoPlist(targetName: IosTargetName | null, buildName: IosBuildName | null, entries: any, mergeMode?: { replace: boolean; }): Promise; copyFile(src: string, dest: string): Promise; /** * Add a source file to the project. this attemps to add the file * to the main "app" target, or adds it to the empty group (i.e. the root of * the project tree) if the app target can't be found. */ addFile(path: string): Promise; private assertEntitlementsFile; private assertTargetName; private makeTargets; private makeBuildConfigurations; private plist; private iosProjectRoot; private pbxFilename; xcodeprojName(): Promise; pbxprojName(): Promise; private pbx; private pbxCommitFn; } //# sourceMappingURL=project.d.ts.map