UNPKG

xc-mcp

Version:

MCP server that wraps Xcode command-line tools for iOS/macOS development workflows

80 lines 2.81 kB
/** * Build Settings Cache * * Caches Xcode build settings to avoid repeated expensive xcodebuild calls. * Settings include bundle identifier, deployment target, device families, and capabilities. * * Cache TTL: 1 hour (can be invalidated on project file changes) */ export interface BuildSettings { PRODUCT_BUNDLE_IDENTIFIER: string; DEPLOYMENT_TARGET: string; TARGETED_DEVICE_FAMILY: string; INFOPLIST_FILE: string; CONFIGURATION_BUILD_DIR: string; PRODUCT_NAME: string; PRODUCT_MODULE_NAME: string; NSCameraUsageDescription?: string; NSLocationWhenInUseUsageDescription?: string; NSLocationAlwaysAndWhenInUseUsageDescription?: string; NSMicrophoneUsageDescription?: string; NSContactsUsageDescription?: string; NSCalendarsUsageDescription?: string; NSRemindersUsageDescription?: string; NSPhotosUsageDescription?: string; NSHealthShareUsageDescription?: string; NSHealthUpdateUsageDescription?: string; NSBluetoothAlwaysUsageDescription?: string; NSUserTrackingUsageDescription?: string; NSSiriUsageDescription?: string; } export declare class BuildSettingsCache { private cache; private CACHE_TTL_MS; /** * Get all build settings for a given project, scheme, and configuration */ getBuildSettings(projectPath: string, scheme: string, configuration?: string): Promise<BuildSettings>; /** * Get bundle identifier for quick lookup */ getBundleIdentifier(projectPath: string, scheme: string): Promise<string>; /** * Get app path for installation/launching */ getAppPath(projectPath: string, scheme: string, configuration?: string): Promise<string>; /** * Get deployment target version as iOS major version (e.g., 15, 16, 17) */ getDeploymentTarget(projectPath: string, scheme: string): Promise<number>; /** * Get supported device families * Returns: { supportsIPhone: boolean; supportsIPad: boolean } */ getDeviceFamilies(projectPath: string, scheme: string): Promise<{ supportsIPhone: boolean; supportsIPad: boolean; }>; /** * Get required capabilities from Info.plist keys */ getRequiredCapabilities(projectPath: string, scheme: string): Promise<string[]>; /** * Invalidate cache for specific project (after project changes) */ invalidateCache(projectPath?: string, scheme?: string): void; /** * Get cache statistics */ getCacheStats(): { size: number; oldestEntry: number | null; newestEntry: number | null; }; /** * Fetch build settings from xcodebuild */ private fetchBuildSettings; } export declare const buildSettingsCache: BuildSettingsCache; //# sourceMappingURL=build-settings-cache.d.ts.map