2022-04-13 09:48:18 +03:00
|
|
|
name: ElementX
|
|
|
|
|
2022-04-13 17:19:11 +03:00
|
|
|
schemes:
|
|
|
|
ElementX:
|
|
|
|
analyze:
|
|
|
|
config: Debug
|
|
|
|
archive:
|
|
|
|
config: Release
|
|
|
|
build:
|
|
|
|
targets:
|
|
|
|
ElementX:
|
|
|
|
- running
|
|
|
|
- testing
|
|
|
|
- profiling
|
|
|
|
- analyzing
|
|
|
|
- archiving
|
|
|
|
profile:
|
|
|
|
config: Release
|
|
|
|
run:
|
|
|
|
config: Debug
|
2022-11-25 15:46:50 +00:00
|
|
|
environmentVariables:
|
2022-11-29 09:36:19 +02:00
|
|
|
- variable: HTTPS_PROXY
|
2023-08-16 15:55:02 +03:00
|
|
|
value: localhost:9090
|
2022-11-29 09:36:19 +02:00
|
|
|
isEnabled: false
|
2023-02-23 15:07:33 +00:00
|
|
|
- variable: UI_TESTS_SCREEN
|
|
|
|
value: ""
|
|
|
|
isEnabled: false
|
2023-06-30 13:27:49 +01:00
|
|
|
- variable: RESET_APP_SETTINGS
|
|
|
|
value: "true"
|
|
|
|
isEnabled: false
|
2022-04-13 17:19:11 +03:00
|
|
|
test:
|
|
|
|
config: Debug
|
2022-04-27 15:03:35 +03:00
|
|
|
gatherCoverageData: true
|
2022-04-29 12:23:27 +03:00
|
|
|
coverageTargets:
|
|
|
|
- ElementX
|
2023-03-29 12:48:06 +02:00
|
|
|
testPlans:
|
|
|
|
- path: ../../UnitTests/SupportingFiles/UnitTests.xctestplan
|
|
|
|
defaultPlan: true
|
2022-04-13 17:19:11 +03:00
|
|
|
|
2022-04-13 09:48:18 +03:00
|
|
|
targets:
|
|
|
|
ElementX:
|
|
|
|
type: application
|
|
|
|
platform: iOS
|
|
|
|
|
|
|
|
info:
|
2025-02-26 18:29:20 +00:00
|
|
|
path: Info.plist
|
2022-04-13 09:48:18 +03:00
|
|
|
properties:
|
2023-06-23 17:10:37 +01:00
|
|
|
UILaunchScreen:
|
|
|
|
UIColorName: colors/background-color
|
2023-06-08 12:12:58 +03:00
|
|
|
CFBundleDisplayName: $(APP_DISPLAY_NAME)
|
2022-04-13 10:09:45 +03:00
|
|
|
CFBundleShortVersionString: $(MARKETING_VERSION)
|
|
|
|
CFBundleVersion: $(CURRENT_PROJECT_VERSION)
|
2023-09-11 12:31:31 +03:00
|
|
|
CFBundleURLTypes: [
|
|
|
|
{
|
|
|
|
CFBundleTypeRole: Editor,
|
2023-09-19 15:56:14 +03:00
|
|
|
CFBundleURLName: "Element Call",
|
2023-09-11 12:31:31 +03:00
|
|
|
CFBundleURLSchemes: [
|
2023-09-19 15:56:14 +03:00
|
|
|
io.element.call
|
|
|
|
]
|
|
|
|
},
|
|
|
|
{
|
|
|
|
CFBundleTypeRole: Editor,
|
|
|
|
CFBundleURLName: "Application",
|
|
|
|
CFBundleURLSchemes: [
|
2024-11-13 14:02:47 +02:00
|
|
|
$(BASE_BUNDLE_IDENTIFIER)
|
2023-09-11 12:31:31 +03:00
|
|
|
]
|
|
|
|
}
|
|
|
|
]
|
2022-05-16 13:17:41 +03:00
|
|
|
UISupportedInterfaceOrientations: [
|
|
|
|
UIInterfaceOrientationPortrait,
|
|
|
|
UIInterfaceOrientationPortraitUpsideDown,
|
|
|
|
UIInterfaceOrientationLandscapeLeft,
|
|
|
|
UIInterfaceOrientationLandscapeRight
|
|
|
|
]
|
2022-07-27 10:57:16 +01:00
|
|
|
appGroupIdentifier: $(APP_GROUP_IDENTIFIER)
|
2022-11-21 19:37:13 +03:00
|
|
|
baseBundleIdentifier: $(BASE_BUNDLE_IDENTIFIER)
|
2022-12-06 17:39:15 +00:00
|
|
|
keychainAccessGroupIdentifier: $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)
|
2024-04-10 16:58:00 +01:00
|
|
|
productionAppName: $(PRODUCTION_APP_NAME)
|
2022-10-24 16:00:17 +03:00
|
|
|
ITSAppUsesNonExemptEncryption: false
|
2022-11-21 19:37:13 +03:00
|
|
|
NSUserActivityTypes: [
|
2024-05-27 12:49:24 +03:00
|
|
|
INSendMessageIntent,
|
|
|
|
INStartCallIntent,
|
2022-11-21 19:37:13 +03:00
|
|
|
]
|
2023-06-13 17:26:05 +03:00
|
|
|
NSCameraUsageDescription: To take pictures or videos and send them as a message $(APP_DISPLAY_NAME) needs access to the camera.
|
2023-10-24 16:57:27 +02:00
|
|
|
NSMicrophoneUsageDescription: To record and send messages with audio, $(APP_DISPLAY_NAME) needs to access the microphone.
|
2024-12-17 16:35:51 +00:00
|
|
|
NSPhotoLibraryAddUsageDescription: This lets you save images and videos to your photo library.
|
2023-10-24 16:57:27 +02:00
|
|
|
NSLocationWhenInUseUsageDescription: Grant location access so that $(APP_DISPLAY_NAME) can share your location.
|
2023-10-27 10:09:12 +01:00
|
|
|
NSFaceIDUsageDescription: Face ID is used to access your app.
|
2023-05-15 13:06:25 +03:00
|
|
|
UIBackgroundModes: [
|
2023-09-07 12:06:18 +03:00
|
|
|
audio,
|
2024-05-17 15:13:57 +03:00
|
|
|
fetch,
|
|
|
|
processing,
|
2023-09-07 12:06:18 +03:00
|
|
|
voip
|
2023-05-15 13:06:25 +03:00
|
|
|
]
|
|
|
|
BGTaskSchedulerPermittedIdentifiers: [
|
|
|
|
io.element.elementx.background.refresh
|
|
|
|
]
|
2023-08-22 12:14:23 +02:00
|
|
|
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)
|
2023-08-22 18:23:49 +03:00
|
|
|
LSSupportsOpeningDocumentsInPlace: false
|
2022-04-13 09:48:18 +03:00
|
|
|
|
2025-02-26 18:29:20 +00:00
|
|
|
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)
|
|
|
|
|
2022-04-13 09:48:18 +03:00
|
|
|
settings:
|
|
|
|
base:
|
2023-06-08 12:07:14 +03:00
|
|
|
PRODUCT_NAME: $(APP_NAME)
|
2022-10-24 16:00:17 +03:00
|
|
|
PRODUCT_BUNDLE_IDENTIFIER: $(BASE_BUNDLE_IDENTIFIER)
|
2022-11-21 19:37:13 +03:00
|
|
|
MARKETING_VERSION: $(MARKETING_VERSION)
|
|
|
|
CURRENT_PROJECT_VERSION: $(CURRENT_PROJECT_VERSION)
|
2024-06-27 18:18:17 +01:00
|
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
2022-11-21 19:37:13 +03:00
|
|
|
DEVELOPMENT_TEAM: $(DEVELOPMENT_TEAM)
|
2022-04-13 09:48:18 +03:00
|
|
|
SWIFT_OBJC_BRIDGING_HEADER: ElementX/SupportingFiles/ElementX-Bridging-Header.h
|
2022-08-30 18:05:21 +03:00
|
|
|
SWIFT_OBJC_INTERFACE_HEADER_NAME: GeneratedInterface-Swift.h
|
2023-08-22 12:14:23 +02:00
|
|
|
PILLS_UT_TYPE_IDENTIFIER: $(BASE_BUNDLE_IDENTIFIER).pills
|
2024-11-28 17:30:26 +00:00
|
|
|
DEVELOPMENT_ASSET_PATHS: DevelopmentAssets/Media
|
2023-11-09 19:12:11 +01:00
|
|
|
OTHER_SWIFT_FLAGS:
|
|
|
|
- "-DIS_MAIN_APP"
|
2023-08-22 12:14:23 +02:00
|
|
|
|
2022-06-28 12:23:35 +01:00
|
|
|
preBuildScripts:
|
|
|
|
- name: 🛠 SwiftGen
|
2022-04-13 10:09:45 +03:00
|
|
|
runOnlyWhenInstalling: false
|
2022-10-17 09:56:17 +01:00
|
|
|
basedOnDependencyAnalysis: false
|
2022-04-13 10:09:45 +03:00
|
|
|
shell: /bin/sh
|
|
|
|
script: |
|
|
|
|
export PATH="$PATH:/opt/homebrew/bin"
|
2022-06-28 12:23:35 +01:00
|
|
|
if which swiftgen >/dev/null; then
|
|
|
|
swiftgen config run --config Tools/SwiftGen/swiftgen-config.yml
|
2022-04-13 10:09:45 +03:00
|
|
|
else
|
2022-06-28 12:23:35 +01:00
|
|
|
echo "warning: SwiftGen not installed, download from https://github.com/SwiftGen/SwiftGen"
|
2022-04-13 10:09:45 +03:00
|
|
|
fi
|
2024-09-09 15:07:41 +03:00
|
|
|
- name: 🧙 Sourcery - Generate mocks
|
2023-03-08 17:04:31 +01:00
|
|
|
runOnlyWhenInstalling: false
|
|
|
|
basedOnDependencyAnalysis: false
|
|
|
|
shell: /bin/sh
|
|
|
|
script: |
|
|
|
|
export PATH="$PATH:/opt/homebrew/bin"
|
|
|
|
if which sourcery >/dev/null; then
|
2024-09-09 15:07:41 +03:00
|
|
|
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
|
2023-03-08 17:04:31 +01:00
|
|
|
else
|
2023-03-23 11:26:20 +01:00
|
|
|
echo "warning: Sourcery not installed, run swift run tools setup-project"
|
2023-03-08 17:04:31 +01:00
|
|
|
fi
|
2022-07-22 11:33:53 +03:00
|
|
|
|
2022-08-30 16:45:40 +01:00
|
|
|
postBuildScripts:
|
|
|
|
- name: ⚠️ SwiftLint
|
2022-07-22 11:33:53 +03:00
|
|
|
runOnlyWhenInstalling: false
|
2022-10-17 09:56:17 +01:00
|
|
|
basedOnDependencyAnalysis: false
|
2022-07-22 11:33:53 +03:00
|
|
|
shell: /bin/sh
|
|
|
|
script: |
|
|
|
|
export PATH="$PATH:/opt/homebrew/bin"
|
2022-08-30 16:45:40 +01:00
|
|
|
if which swiftlint >/dev/null; then
|
|
|
|
swiftlint
|
2022-07-22 11:33:53 +03:00
|
|
|
else
|
2022-08-30 16:45:40 +01:00
|
|
|
echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
|
2022-07-22 11:33:53 +03:00
|
|
|
fi
|
2022-08-30 16:45:40 +01:00
|
|
|
- name: 🧹 SwiftFormat
|
2022-08-03 12:17:09 +01:00
|
|
|
runOnlyWhenInstalling: false
|
2022-10-17 09:56:17 +01:00
|
|
|
basedOnDependencyAnalysis: false
|
2022-08-03 12:17:09 +01:00
|
|
|
shell: /bin/sh
|
|
|
|
script: |
|
|
|
|
export PATH="$PATH:/opt/homebrew/bin"
|
2022-08-30 16:45:40 +01:00
|
|
|
if which swiftformat >/dev/null; then
|
|
|
|
swiftformat --lint --lenient "$PROJECT_DIR"
|
2022-08-03 12:17:09 +01:00
|
|
|
else
|
2022-08-30 16:45:40 +01:00
|
|
|
echo "warning: SwiftFormat not installed, download from https://github.com/nicklockwood/SwiftFormat"
|
2022-08-03 12:17:09 +01:00
|
|
|
fi
|
|
|
|
|
2022-04-13 09:48:18 +03:00
|
|
|
dependencies:
|
2022-11-21 19:37:13 +03:00
|
|
|
- target: NSE
|
2024-11-13 14:02:47 +02:00
|
|
|
- target: ShareExtension
|
2022-04-13 09:48:18 +03:00
|
|
|
- package: MatrixRustSDK
|
2024-11-20 09:33:00 +02:00
|
|
|
embed: true
|
2023-03-21 14:52:10 +00:00
|
|
|
- package: Compound
|
2023-02-15 17:14:50 +02:00
|
|
|
- package: Algorithms
|
2022-09-02 10:09:02 +01:00
|
|
|
- package: AnalyticsEvents
|
2023-01-31 17:48:24 +00:00
|
|
|
- package: Collections
|
2022-10-28 16:11:10 +02:00
|
|
|
- package: DeviceKit
|
2022-04-13 09:48:18 +03:00
|
|
|
- package: DTCoreText
|
|
|
|
- package: KeychainAccess
|
|
|
|
- package: Kingfisher
|
2023-02-15 14:02:50 +00:00
|
|
|
- package: KZFileWatchers
|
2024-06-10 11:58:11 +03:00
|
|
|
- package: LoremSwiftum
|
2023-08-08 14:55:09 +03:00
|
|
|
- package: LRUCache
|
2023-06-14 11:08:36 +02:00
|
|
|
- package: Mapbox
|
2022-09-02 10:09:02 +01:00
|
|
|
- package: PostHog
|
2022-05-27 13:02:36 +03:00
|
|
|
- package: SwiftState
|
2022-06-06 12:38:07 +03:00
|
|
|
- package: GZIP
|
|
|
|
- package: Sentry
|
2024-06-28 18:15:57 +03:00
|
|
|
products:
|
|
|
|
- Sentry
|
|
|
|
- SentrySwiftUI
|
2023-01-31 17:48:24 +00:00
|
|
|
- package: Version
|
2023-08-10 19:14:18 +01:00
|
|
|
- package: Emojibase
|
2023-08-29 14:37:13 +02:00
|
|
|
- package: WysiwygComposer
|
2023-10-04 18:32:45 +02:00
|
|
|
- package: SwiftOGG
|
2023-10-19 11:01:45 +02:00
|
|
|
- package: DSWaveformImage
|
|
|
|
product: DSWaveformImageViews
|
2022-04-13 09:48:18 +03:00
|
|
|
|
|
|
|
sources:
|
|
|
|
- path: ../Sources
|
|
|
|
excludes:
|
2024-12-20 15:30:59 +02:00
|
|
|
- Other/Extensions/XCTestCase.swift
|
2022-12-15 15:22:39 +02:00
|
|
|
- Other/Extensions/XCUIElement.swift
|
2025-02-24 18:36:08 +00:00
|
|
|
- path: ../../Secrets/Secrets.swift
|
2022-04-26 22:48:17 +03:00
|
|
|
- path: ../Resources
|
2022-04-13 09:48:18 +03:00
|
|
|
- path: ../SupportingFiles
|
2022-05-12 12:30:24 +03:00
|
|
|
- path: ../../Tools/Scripts/Templates/SimpleScreenExample/ElementX
|
2024-11-28 17:30:26 +00:00
|
|
|
- path: ../../DevelopmentAssets/Media
|