name: ElementX schemes: ElementX: analyze: config: Debug archive: config: Release build: targets: ElementX: - running - testing - profiling - analyzing - archiving profile: config: Release run: config: Debug environmentVariables: - variable: HTTPS_PROXY value: localhost:9090 isEnabled: false - variable: UI_TESTS_SCREEN value: "" isEnabled: false - variable: RESET_APP_SETTINGS value: "true" isEnabled: false test: config: Debug gatherCoverageData: true coverageTargets: - ElementX testPlans: - path: ../../UnitTests/SupportingFiles/UnitTests.xctestplan defaultPlan: true targets: ElementX: type: application platform: iOS info: path: Info.plist properties: UILaunchScreen: UIColorName: colors/background-color CFBundleDisplayName: $(APP_DISPLAY_NAME) CFBundleShortVersionString: $(MARKETING_VERSION) CFBundleVersion: $(CURRENT_PROJECT_VERSION) CFBundleURLTypes: [ { CFBundleTypeRole: Editor, CFBundleURLName: "Element Call", CFBundleURLSchemes: [ io.element.call ] }, { CFBundleTypeRole: Editor, CFBundleURLName: "Application", CFBundleURLSchemes: [ $(BASE_BUNDLE_IDENTIFIER) ] } ] UISupportedInterfaceOrientations: [ UIInterfaceOrientationPortrait, UIInterfaceOrientationPortraitUpsideDown, UIInterfaceOrientationLandscapeLeft, UIInterfaceOrientationLandscapeRight ] appGroupIdentifier: $(APP_GROUP_IDENTIFIER) baseBundleIdentifier: $(BASE_BUNDLE_IDENTIFIER) keychainAccessGroupIdentifier: $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER) productionAppName: $(PRODUCTION_APP_NAME) ITSAppUsesNonExemptEncryption: false NSUserActivityTypes: [ INSendMessageIntent, INStartCallIntent, ] NSCameraUsageDescription: To take pictures or videos and send them as a message $(APP_DISPLAY_NAME) needs access to the camera. NSMicrophoneUsageDescription: To record and send messages with audio, $(APP_DISPLAY_NAME) needs to access the microphone. NSPhotoLibraryAddUsageDescription: This lets you save images and videos to your photo library. NSLocationWhenInUseUsageDescription: Grant location access so that $(APP_DISPLAY_NAME) can share your location. NSFaceIDUsageDescription: Face ID is used to access your app. UIBackgroundModes: [ audio, fetch, processing, voip ] BGTaskSchedulerPermittedIdentifiers: [ io.element.elementx.background.refresh ] UTExportedTypeDeclarations: - UTTypeConformsTo: [public.text] UTTypeDescription: Mention Pills UTTypeIdentifier: $(PILLS_UT_TYPE_IDENTIFIER) CFBundleDocumentTypes: - CFBundleTypeName: Mention Pills CFBundleTypeRole: Viewer LSHandlerRank: Owner LSItemContentTypes: $(PILLS_UT_TYPE_IDENTIFIER) LSSupportsOpeningDocumentsInPlace: false entitlements: path: ElementX.entitlements properties: aps-environment: development com.apple.developer.associated-domains: - applinks:element.io - applinks:app.element.io - applinks:staging.element.io - applinks:develop.element.io - applinks:mobile.element.io - applinks:call.element.io - applinks:call.element.dev - applinks:matrix.to - webcredentials:*.element.io com.apple.developer.usernotifications.communication: true com.apple.security.app-sandbox: true com.apple.security.application-groups: - $(APP_GROUP_IDENTIFIER) com.apple.security.network.client: true keychain-access-groups: - $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER) settings: base: PRODUCT_NAME: $(APP_NAME) PRODUCT_BUNDLE_IDENTIFIER: $(BASE_BUNDLE_IDENTIFIER) MARKETING_VERSION: $(MARKETING_VERSION) CURRENT_PROJECT_VERSION: $(CURRENT_PROJECT_VERSION) ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon DEVELOPMENT_TEAM: $(DEVELOPMENT_TEAM) SWIFT_OBJC_BRIDGING_HEADER: ElementX/SupportingFiles/ElementX-Bridging-Header.h SWIFT_OBJC_INTERFACE_HEADER_NAME: GeneratedInterface-Swift.h PILLS_UT_TYPE_IDENTIFIER: $(BASE_BUNDLE_IDENTIFIER).pills DEVELOPMENT_ASSET_PATHS: DevelopmentAssets/Media OTHER_SWIFT_FLAGS: - "-DIS_MAIN_APP" preBuildScripts: - name: ๐Ÿ›  SwiftGen runOnlyWhenInstalling: false basedOnDependencyAnalysis: false shell: /bin/sh script: | export PATH="$PATH:/opt/homebrew/bin" if which swiftgen >/dev/null; then swiftgen config run --config Tools/SwiftGen/swiftgen-config.yml else echo "warning: SwiftGen not installed, download from https://github.com/SwiftGen/SwiftGen" fi - name: ๐Ÿง™ Sourcery - Generate mocks runOnlyWhenInstalling: false basedOnDependencyAnalysis: false shell: /bin/sh script: | export PATH="$PATH:/opt/homebrew/bin" if which sourcery >/dev/null; then sourcery --config Tools/Sourcery/AutoMockableConfig.yml else echo "warning: Sourcery not installed, run swift run tools setup-project" fi - name: ๐Ÿง™ Sourcery - Generate preview tests runOnlyWhenInstalling: false basedOnDependencyAnalysis: false shell: /bin/sh script: | export PATH="$PATH:/opt/homebrew/bin" if which sourcery >/dev/null; then sourcery --config Tools/Sourcery/PreviewTestsConfig.yml else echo "warning: Sourcery not installed, run swift run tools setup-project" fi postBuildScripts: - name: โš ๏ธ SwiftLint runOnlyWhenInstalling: false basedOnDependencyAnalysis: false shell: /bin/sh script: | export PATH="$PATH:/opt/homebrew/bin" if which swiftlint >/dev/null; then swiftlint else echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint" fi - name: ๐Ÿงน SwiftFormat runOnlyWhenInstalling: false basedOnDependencyAnalysis: false shell: /bin/sh script: | export PATH="$PATH:/opt/homebrew/bin" if which swiftformat >/dev/null; then swiftformat --lint --lenient "$PROJECT_DIR" else echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat" fi dependencies: - target: NSE - target: ShareExtension - package: MatrixRustSDK embed: true - package: Compound - package: Algorithms - package: AnalyticsEvents - package: Collections - package: DeviceKit - package: DTCoreText - package: KeychainAccess - package: Kingfisher - package: KZFileWatchers - package: LoremSwiftum - package: LRUCache - package: Mapbox - package: PostHog - package: SwiftState - package: GZIP - package: Sentry products: - Sentry - SentrySwiftUI - package: Version - package: Emojibase - package: WysiwygComposer - package: SwiftOGG - package: DSWaveformImage product: DSWaveformImageViews sources: - path: ../Sources excludes: - Other/Extensions/XCTestCase.swift - Other/Extensions/XCUIElement.swift - path: ../../Secrets/Secrets.swift - path: ../Resources - path: ../SupportingFiles - path: ../../Tools/Scripts/Templates/SimpleScreenExample/ElementX - path: ../../DevelopmentAssets/Media