ios/project-pm.yml
2025-12-09 12:09:44 -06:00

531 lines
17 KiB
YAML

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