name: Bitwarden fileGroups: - Configs - Docs configs: Debug: debug Release: release include: - path: project-common.yml options: fileTypes: "icon": file: true settings: MARKETING_VERSION: 2024.6.0 # Bump this for a new version update. CURRENT_PROJECT_VERSION: 1 projectReferences: BitwardenKit: path: BitwardenKit.xcodeproj schemes: Bitwarden: build: targets: Bitwarden: all BitwardenTests: [test] run: commandLineArguments: "-com.apple.CoreData.ConcurrencyDebug 1": true test: commandLineArguments: "-testing": true environmentVariables: TZ: UTC gatherCoverageData: true language: en region: US coverageTargets: - Bitwarden - BitwardenActionExtension - BitwardenAutoFillExtension - BitwardenShareExtension - BitwardenShared - BitwardenKit/AuthenticatorBridgeKit - BitwardenKit/BitwardenKit - BitwardenKit/Networking targets: - BitwardenTests - BitwardenActionExtensionTests - BitwardenAutoFillExtensionTests - BitwardenShareExtensionTests - BitwardenSharedTests - BitwardenSharedSnapshotTests - BitwardenSharedViewInspectorTests - BitwardenKit/AuthenticatorBridgeKitTests - BitwardenKit/BitwardenKitTests - BitwardenKit/NetworkingTests testPlans: - path: TestPlans/Bitwarden-Default.xctestplan defaultPlan: true - path: TestPlans/Bitwarden-Unit.xctestplan - path: TestPlans/Bitwarden-Snapshot.xctestplan - path: TestPlans/Bitwarden-ViewInspector.xctestplan BitwardenActionExtension: build: targets: BitwardenActionExtension: all BitwardenActionExtensionTests: [test] test: environmentVariables: TZ: UTC gatherCoverageData: true language: en region: US targets: - BitwardenActionExtensionTests testPlans: - path: TestPlans/Bitwarden-Default.xctestplan defaultPlan: true - path: TestPlans/Bitwarden-Unit.xctestplan BitwardenAutoFillExtension: build: targets: BitwardenAutoFillExtension: all BitwardenAutoFillExtensionTests: [test] test: environmentVariables: TZ: UTC gatherCoverageData: true language: en region: US targets: - BitwardenAutoFillExtensionTests testPlans: - path: TestPlans/Bitwarden-Default.xctestplan defaultPlan: true - path: TestPlans/Bitwarden-Unit.xctestplan BitwardenShareExtension: build: targets: BitwardenShareExtension: all BitwardenShareExtensionTests: [test] test: environmentVariables: TZ: UTC gatherCoverageData: true language: en region: US targets: - BitwardenShareExtensionTests testPlans: - path: TestPlans/Bitwarden-Default.xctestplan defaultPlan: true - path: TestPlans/Bitwarden-Unit.xctestplan BitwardenShared: build: targets: BitwardenShared: all BitwardenSharedTests: [test] BitwardenSharedSnapshotTests: [test] BitwardenSharedViewInspectorTests: [test] test: commandLineArguments: "-testing": true environmentVariables: TZ: UTC gatherCoverageData: true language: en region: US targets: - BitwardenSharedTests - BitwardenSharedSnapshotTests - BitwardenSharedViewInspectorTests testPlans: - path: TestPlans/Bitwarden-Default.xctestplan defaultPlan: true - path: TestPlans/Bitwarden-Unit.xctestplan - path: TestPlans/Bitwarden-Snapshot.xctestplan - path: TestPlans/Bitwarden-ViewInspector.xctestplan BitwardenWatchApp: build: targets: BitwardenWatchApp: all BitwardenWatchWidgetExtension: build: targets: BitwardenWatchWidgetExtension: all targets: Bitwarden: type: application platform: iOS configFiles: Debug: Configs/Bitwarden-Debug.xcconfig Release: Configs/Bitwarden-Release.xcconfig settings: base: INFOPLIST_FILE: Bitwarden/Application/Support/Info.plist sources: - path: Bitwarden excludes: - "**/*Tests.*" - "**/TestHelpers/*" - "**/swiftgen-pm.yml" - "**/GoogleService-Info.*.plist" - "**/__Snapshots__/*" - path: Bitwarden includes: - "**/__Snapshots__/*" - "**/GoogleService-Info.*.plist" buildPhase: none - path: Bitwarden/Application/Support/GoogleService-Info.plist buildPhase: resources - path: README.md buildPhase: none - path: swiftgen-pm.yml buildPhase: none - path: BitwardenResources/Localizations # Needed for AppIntent. dependencies: - target: BitwardenShared - target: BitwardenActionExtension - target: BitwardenAutoFillExtension - target: BitwardenShareExtension - target: BitwardenWatchApp - target: BitwardenKit/AuthenticatorBridgeKit - target: BitwardenKit/BitwardenKit - target: BitwardenKit/BitwardenResources - target: BitwardenKit/Networking - package: BitwardenSdk - package: Firebase product: FirebaseCrashlytics preBuildScripts: - path: Scripts/update_acknowledgements.sh name: "Settings.bundle: Update Acknowledgements" outputFiles: - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements.plist - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements.latest_results.txt - $(SRCROOT)/Bitwarden/Application/Support/Settings.bundle/Acknowledgements postCompileScripts: - script: | if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then PATH="/opt/homebrew/bin:$PATH" fi mint run swiftlint name: Swiftlint basedOnDependencyAnalysis: false - script: | if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then PATH="/opt/homebrew/bin:$PATH" fi mint run swiftformat --lint --lenient . name: SwiftFormat Lint basedOnDependencyAnalysis: false postBuildScripts: - path: Scripts/update_settings_version_number.sh name: "Settings.bundle: Update Version Number" basedOnDependencyAnalysis: false BitwardenTests: type: bundle.unit-test platform: iOS settings: base: INFOPLIST_FILE: Bitwarden/Application/TestHelpers/Support/Info.plist sources: - path: Bitwarden includes: - "**/*Tests.*" - "**/TestHelpers/*" - path: GlobalTestHelpers dependencies: - target: Bitwarden - target: BitwardenShared - target: BitwardenKit/BitwardenKitMocks - target: BitwardenKit/TestHelpers randomExecutionOrder: true BitwardenActionExtension: type: app-extension platform: iOS configFiles: Debug: Configs/BitwardenActionExtension-Debug.xcconfig Release: Configs/BitwardenActionExtension-Release.xcconfig settings: base: CODE_SIGN_ENTITLEMENTS: BitwardenActionExtension/Application/Support/BitwardenActionExtension.entitlements INFOPLIST_FILE: BitwardenActionExtension/Application/Support/Info.plist sources: - path: BitwardenActionExtension excludes: - "**/*Tests.*" - "**/TestHelpers/*" dependencies: - package: BitwardenSdk - target: BitwardenShared BitwardenActionExtensionTests: type: bundle.unit-test platform: iOS settings: base: INFOPLIST_FILE: BitwardenActionExtension/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenActionExtension includes: - "**/*Tests.*" - "**/TestHelpers/*" - path: GlobalTestHelpers dependencies: - target: BitwardenActionExtension - target: BitwardenShared - target: BitwardenKit/TestHelpers randomExecutionOrder: true BitwardenAutoFillExtension: type: app-extension platform: iOS configFiles: Debug: Configs/BitwardenAutoFillExtension.xcconfig Release: Configs/BitwardenAutoFillExtension.xcconfig settings: base: CODE_SIGN_ENTITLEMENTS: BitwardenAutoFillExtension/Application/Support/BitwardenAutoFill.entitlements INFOPLIST_FILE: BitwardenAutoFillExtension/Application/Support/Info.plist sources: - path: BitwardenAutoFillExtension excludes: - "**/*Tests.*" - "**/TestHelpers/*" dependencies: - package: BitwardenSdk - target: BitwardenShared BitwardenAutoFillExtensionTests: type: bundle.unit-test platform: iOS settings: base: INFOPLIST_FILE: BitwardenAutoFillExtension/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenAutoFillExtension includes: - "**/*Tests.*" - "**/TestHelpers/*" - path: GlobalTestHelpers dependencies: - target: BitwardenAutoFillExtension - target: BitwardenShared - target: BitwardenKit/TestHelpers randomExecutionOrder: true BitwardenShareExtension: type: app-extension platform: iOS configFiles: Debug: Configs/BitwardenShareExtension.xcconfig Release: Configs/BitwardenShareExtension.xcconfig settings: base: INFOPLIST_FILE: BitwardenShareExtension/Application/Support/Info.plist CODE_SIGN_ENTITLEMENTS: BitwardenShareExtension/Application/Support/BitwardenShareExtension.entitlements sources: - path: BitwardenShareExtension excludes: - "**/*Tests.*" - "**/TestHelpers/*" dependencies: - package: BitwardenSdk - target: BitwardenShared BitwardenShareExtensionTests: type: bundle.unit-test platform: iOS settings: base: INFOPLIST_FILE: BitwardenShareExtension/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenShareExtension includes: - "**/*Tests.*" - "**/TestHelpers/*" - path: GlobalTestHelpers dependencies: - target: BitwardenShareExtension - target: BitwardenShared - target: BitwardenKit/TestHelpers randomExecutionOrder: true BitwardenShared: type: framework platform: iOS configFiles: Debug: Configs/BitwardenShared-Debug.xcconfig Release: Configs/BitwardenShared-Release.xcconfig settings: base: APPLICATION_EXTENSION_API_ONLY: true DEVELOPMENT_ASSET_PATHS: - BitwardenShared/UI/Auth/PreviewContent - BitwardenShared/UI/Platform/PreviewContent - BitwardenShared/UI/Tools/PreviewContent - BitwardenShared/UI/Vault/PreviewContent INFOPLIST_FILE: BitwardenShared/UI/Platform/Application/Support/Info.plist sources: - path: BitwardenShared excludes: - "**/*Tests.*" - "**/TestHelpers/*" - "**/Fixtures/*" - "**/__Snapshots__/*" - "**/Sourcery/Generated/*" - "**/sourcery.yml" - path: BitwardenShared includes: - "**/__Snapshots__/*" buildPhase: none - path: BitwardenShared/UI/Platform/Application/Support/Generated/Assets.swift optional: true - path: BitwardenWatchShared - path: BitwardenShared/Sourcery/sourcery.yml buildPhase: none dependencies: - package: BitwardenSdk - target: BitwardenKit/AuthenticatorBridgeKit - target: BitwardenKit/BitwardenKit - target: BitwardenKit/BitwardenResources - target: BitwardenKit/Networking preBuildScripts: - name: SwiftGen script: | if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then PATH="/opt/homebrew/bin:$PATH" fi mint run swiftgen config run --config "swiftgen-pm.yml" basedOnDependencyAnalysis: false outputFiles: - $(SRCROOT)/BitwardenShared/UI/Platform/Application/Support/Generated/Assets.swift - name: Sourcery script: | if [[ ! "$PATH" =~ "/opt/homebrew/bin" ]]; then PATH="/opt/homebrew/bin:$PATH" fi mint run sourcery --config BitwardenShared/Sourcery/sourcery.yml basedOnDependencyAnalysis: false outputFiles: - $(SRCROOT)/BitwardenShared/Sourcery/Generated/AutoMockable.generated.swift BitwardenSharedTests: type: bundle.unit-test platform: iOS configFiles: Debug: Configs/BitwardenSharedTests-Debug.xcconfig Release: Configs/BitwardenSharedTests-Release.xcconfig settings: base: BUNDLE_LOADER: "$(TEST_HOST)" TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Bitwarden.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Bitwarden" INFOPLIST_FILE: BitwardenShared/UI/Platform/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenShared includes: - "**/*Tests.*" - "**/TestHelpers/*" - "**/Fixtures/*" excludes: - "**/*SnapshotTests.*" - "**/*ViewInspectorTests.*" - path: GlobalTestHelpers - path: BitwardenShared/Sourcery/Generated optional: true - path: BitwardenShared/Sourcery/Generated/AutoMockable.generated.swift optional: true dependencies: - target: Bitwarden - target: BitwardenShared - target: BitwardenKit/AuthenticatorBridgeKitMocks - target: BitwardenKit/BitwardenKitMocks - target: BitwardenKit/TestHelpers - package: BitwardenSdk - package: SnapshotTesting product: InlineSnapshotTesting randomExecutionOrder: true BitwardenSharedSnapshotTests: type: bundle.unit-test platform: iOS configFiles: Debug: Configs/BitwardenSharedTests-Debug.xcconfig Release: Configs/BitwardenSharedTests-Release.xcconfig settings: base: BUNDLE_LOADER: "$(TEST_HOST)" TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Bitwarden.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Bitwarden" INFOPLIST_FILE: BitwardenShared/UI/Platform/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenShared includes: - "**/*SnapshotTests.*" - "**/TestHelpers/*" - "**/Fixtures/*" - path: GlobalTestHelpers - path: BitwardenShared/Sourcery/Generated optional: true - path: BitwardenShared/Sourcery/Generated/AutoMockable.generated.swift optional: true dependencies: - target: Bitwarden - target: BitwardenShared - target: BitwardenKit/BitwardenKitMocks - target: BitwardenKit/TestHelpers - package: BitwardenSdk - package: SnapshotTesting - package: SnapshotTesting product: InlineSnapshotTesting randomExecutionOrder: true BitwardenSharedViewInspectorTests: type: bundle.unit-test platform: iOS configFiles: Debug: Configs/BitwardenSharedTests-Debug.xcconfig Release: Configs/BitwardenSharedTests-Release.xcconfig settings: base: BUNDLE_LOADER: "$(TEST_HOST)" TEST_HOST: "$(BUILT_PRODUCTS_DIR)/Bitwarden.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Bitwarden" INFOPLIST_FILE: BitwardenShared/UI/Platform/Application/TestHelpers/Support/Info.plist sources: - path: BitwardenShared includes: - "**/*ViewInspectorTests.*" - "**/TestHelpers/*" - "**/Fixtures/*" - path: GlobalTestHelpers - path: BitwardenShared/Sourcery/Generated optional: true - path: BitwardenShared/Sourcery/Generated/AutoMockable.generated.swift optional: true dependencies: - target: Bitwarden - target: BitwardenShared - target: BitwardenKit/BitwardenKitMocks - target: BitwardenKit/TestHelpers - target: BitwardenKit/ViewInspectorTestHelpers - package: BitwardenSdk - package: ViewInspector randomExecutionOrder: true BitwardenWatchApp: type: application platform: watchOS configFiles: Debug: Configs/BitwardenWatchApp-Debug.xcconfig Release: Configs/BitwardenWatchApp-Release.xcconfig settings: base: INFOPLIST_FILE: BitwardenWatchApp/Info.plist sources: - path: BitwardenWatchApp - path: BitwardenWatchShared - path: BitwardenWatchApp/GoogleService-Info.plist buildPhase: resources dependencies: - target: BitwardenWatchWidgetExtension - package: Firebase product: FirebaseCrashlytics BitwardenWatchWidgetExtension: type: app-extension platform: watchOS deploymentTarget: 9.0 configFiles: Debug: Configs/BitwardenWatchWidgetExtension.xcconfig Release: Configs/BitwardenWatchWidgetExtension.xcconfig settings: base: INFOPLIST_FILE: BitwardenWatchWidgetExtension/Application/Support/Info.plist sources: - path: BitwardenWatchWidgetExtension