Beam/project.yml
Stefan Ceriu b122b02bee
Share extension (#3506)
* Setup simple share extension

* Switch the app url scheme to be the full bundle identifier

* Setup a share extension that show a SwiftUI view, uses rust tracing and redirects to the hosting aplication

* Move media as json through the custom scheme into the main app and deep link into the media upload preview screen

* Fix message forwarding and global search screen room summary provider filtering.

* Tweak the message forwarding and global search screen designs.

* Add a room selection screen to use after receiving a share request from the share extension

* Fix share extension entitlements

* Share the temporary directory between the main app and the extensions; rename the caches one.

* Remove the no longer needed notification avatar flipping fix.

* Extract the placeholder avatar image generator from the NSE

* Nest `AvatarSize` within the new `Avatars` enum

* Donate an `INSendMessageIntent` to the system every time we send a message so they appear as share suggestions

* Support suggestions in the share extension itself

* Improve sharing animations and fix presentation when room already on the stack

* Clear all routes when sharing without a preselected room.

* Fix broken unit tests

* Various initial tweaks following code review.

* Correctly clean up and dismiss the share extension for all paths.

* Move the share extension path to a constants enum

* Rename UserSessionFlowCoordinator specific share extension states and events

* Add UserSession and Room flow coordinator share route tests

* Tweak the share extension logic.
2024-11-13 14:02:47 +02:00

148 lines
4.0 KiB
YAML

---
name: ElementX
attributes:
ORGANIZATIONNAME: Element
fileGroups:
- project.yml
options:
groupSortPosition: bottom
createIntermediateGroups: true
deploymentTarget:
iOS: '17.6'
macOS: '14.6'
groupOrdering:
- order:
- ElementX
- UnitTests
- UITests
- IntegrationTests
- Tools
- pattern: ElementX
order:
- Sources
- Resources
- SupportingFiles
- pattern: Sources
order:
- Application
- UserSession
- Services
- FlowCoordinators
- Screens
- Other
- UITests
postGenCommand: cd Tools/XcodeGen && sh postGenCommand.sh
settings:
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: true
ENABLE_BITCODE: false
APP_GROUP_IDENTIFIER: group.$(BASE_APP_GROUP_IDENTIFIER)
APP_NAME: ElementX
KEYCHAIN_ACCESS_GROUP_IDENTIFIER: "$(AppIdentifierPrefix)$(BASE_BUNDLE_IDENTIFIER)"
MARKETING_VERSION: 1.9.6
CURRENT_PROJECT_VERSION: 1
SUPPORTS_MACCATALYST: false
include:
- path: app.yml
- path: ElementX/SupportingFiles/target.yml
- path: UnitTests/SupportingFiles/target.yml
- path: PreviewTests/SupportingFiles/target.yml
- path: UITests/SupportingFiles/target.yml
- path: IntegrationTests/SupportingFiles/target.yml
- path: NSE/SupportingFiles/target.yml
- path: ShareExtension/SupportingFiles/target.yml
# - path: NCE/SupportingFiles/target.yml (not used yet)
# - path: MyAppVariant/override.yml
packages:
# Element/Matrix dependencies
MatrixRustSDK:
url: https://github.com/element-hq/matrix-rust-components-swift
exactVersion: 1.0.66
# path: ../matrix-rust-sdk
Compound:
url: https://github.com/element-hq/compound-ios
revision: 950a8884e269194e6030cbddabebbb116cdfe02a
# path: ../compound-ios
AnalyticsEvents:
url: https://github.com/matrix-org/matrix-analytics-events
minorVersion: 0.28.0
# path: ../matrix-analytics-events
Emojibase:
url: https://github.com/matrix-org/emojibase-bindings
minorVersion: 1.3.3
# path: ../emojibase-bindings
SwiftOGG:
url: https://github.com/element-hq/swift-ogg
minorVersion: 0.0.3
# path: ../swift-ogg
WysiwygComposer:
url: https://github.com/element-hq/matrix-rich-text-editor-swift
exactVersion: 2.37.12
# path: ../matrix-rich-text-editor/platforms/ios/lib/WysiwygComposer
# External dependencies
Algorithms:
url: https://github.com/apple/swift-algorithms
minorVersion: 1.0.0
Collections:
url: https://github.com/apple/swift-collections
minorVersion: 1.0.0
DeviceKit:
url: https://github.com/devicekit/DeviceKit
minorVersion: 5.5.0
DSWaveformImage:
url: https://github.com/dmrschmidt/DSWaveformImage
exactVersion: 14.1.1
DTCoreText:
url: https://github.com/Cocoanetics/DTCoreText
exactVersion: 1.6.26
GZIP:
url: https://github.com/nicklockwood/GZIP
minorVersion: 1.3.2
KeychainAccess:
url: https://github.com/kishikawakatsumi/KeychainAccess
minorVersion: 4.2.0
Kingfisher:
url: https://github.com/onevcat/Kingfisher
minorVersion: 8.0.3
KZFileWatchers:
url: https://github.com/krzysztofzablocki/KZFileWatchers
minorVersion: 1.2.0
LoremSwiftum:
url: https://github.com/lukaskubanek/LoremSwiftum
minorVersion: 2.2.1
LRUCache:
url: https://github.com/nicklockwood/LRUCache
minorVersion: 1.0.4
Mapbox:
url: https://github.com/maplibre/maplibre-gl-native-distribution
minorVersion: 5.13.0
PostHog:
url: https://github.com/PostHog/posthog-ios
minorVersion: 3.2.5
Sentry:
url: https://github.com/getsentry/sentry-cocoa
minorVersion: 8.30.0
SnapshotTesting:
url: https://github.com/pointfreeco/swift-snapshot-testing
minorVersion: 1.17.5
SwiftState:
url: https://github.com/ReactKit/SwiftState
minorVersion: 6.0.0
Version:
url: https://github.com/mxcl/Version
minorVersion: 2.1.0
aggregateTargets:
Periphery:
buildScripts:
- name: Scan
script: |
export PATH="$PATH:/opt/homebrew/bin"
periphery scan --format xcode
basedOnDependencyAnalysis: false