name: ShareExtension

schemes:
  ShareExtension:
    analyze:
      config: Debug
    archive:
      config: Release
    build:
      targets:
        ShareExtension:
        - running
        - testing
        - profiling
        - analyzing
        - archiving
    profile:
      config: Release
    run:
      askForAppToLaunch: true
      config: Debug
      debugEnabled: false
      disableMainThreadChecker: false
      launchAutomaticallySubstyle: 2
    test:
      config: Debug
      disableMainThreadChecker: false

targets:
  ShareExtension:
    type: app-extension
    platform: iOS

    dependencies:
      - package: MatrixRustSDK
      - package: Compound
      - package: Collections
      - package: KeychainAccess

    info:
      path: Info.plist
      properties:
        CFBundleDisplayName: $(PRODUCT_DISPLAY_NAME)
        CFBundleShortVersionString: $(MARKETING_VERSION)
        CFBundleVersion: $(CURRENT_PROJECT_VERSION)
        appGroupIdentifier: $(APP_GROUP_IDENTIFIER)
        baseBundleIdentifier: $(BASE_BUNDLE_IDENTIFIER)
        keychainAccessGroupIdentifier: $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)
        productionAppName: $(PRODUCTION_APP_NAME)
        NSExtension:
          NSExtensionPointIdentifier: com.apple.share-services
          NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareExtensionViewController
          NSExtensionAttributes:
            IntentsSupported: [INSendMessageIntent]
            NSExtensionActivationRule:
              NSExtensionActivationSupportsFileWithMaxCount: 10
              NSExtensionActivationSupportsImageWithMaxCount: 10
              NSExtensionActivationSupportsMovieWithMaxCount: 10
              NSExtensionActivationSupportsText: true
              NSExtensionActivationSupportsWebURLWithMaxCount: 10

    entitlements:
      path: ShareExtension.entitlements
      properties:
        com.apple.security.application-groups:
        - $(APP_GROUP_IDENTIFIER)
        keychain-access-groups:
        - $(KEYCHAIN_ACCESS_GROUP_IDENTIFIER)

    settings:
      base:
        PRODUCT_NAME: ShareExtension
        PRODUCT_DISPLAY_NAME: $(APP_DISPLAY_NAME)
        PRODUCT_BUNDLE_IDENTIFIER: ${BASE_BUNDLE_IDENTIFIER}.shareextension
        MARKETING_VERSION: $(MARKETING_VERSION)
        CURRENT_PROJECT_VERSION: $(CURRENT_PROJECT_VERSION)
        DEVELOPMENT_TEAM: $(DEVELOPMENT_TEAM)

    sources:
    - path: ../Sources
    - path: ../SupportingFiles
    - path: ../../ElementX/Sources/ShareExtension
    - path: ../../ElementX/Sources/AppHooks/AppHooks.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/TracingHook.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/ClientBuilderHook.swift
    - path: ../../ElementX/Sources/AppHooks/Hooks/RemoteSettingsHook.swift
    - path: ../../Secrets/Secrets.swift
    - path: ../../ElementX/Sources/Application/Settings
    - path: ../../ElementX/Sources/Application/TargetConfiguration.swift
    - path: ../../ElementX/Sources/Services/Keychain/KeychainController.swift
    - path: ../../ElementX/Sources/Services/Keychain/KeychainControllerProtocol.swift
    - path: ../../ElementX/Sources/Services/UserSession/RestorationToken.swift
    - path: ../../ElementX/Sources/Services/UserSession/SessionDirectories.swift
    - path: ../../ElementX/Sources/Other/Extensions/Bundle.swift
    - path: ../../ElementX/Sources/Other/Extensions/Dictionary.swift
    - path: ../../ElementX/Sources/Other/Extensions/FileManager.swift
    - path: ../../ElementX/Sources/Other/Extensions/NSItemProvider.swift
    - path: ../../ElementX/Sources/Other/Extensions/ProcessInfo.swift
    - path: ../../ElementX/Sources/Other/Extensions/UIView.swift
    - path: ../../ElementX/Sources/Other/Extensions/URL.swift
    - path: ../../ElementX/Sources/Other/InfoPlistReader.swift
    - path: ../../ElementX/Sources/Other/CurrentValuePublisher.swift
    - path: ../../ElementX/Sources/Other/Logging
    - path: ../../ElementX/Sources/UITests/UITestsScreenIdentifier.swift
