name: CallsPhone options: bundleIdPrefix: net.amadan.oficina deploymentTarget: iOS: '17.0' packages: CallsNative: path: ../apple settings: base: SWIFT_VERSION: '5.0' CODE_SIGN_STYLE: Automatic MARKETING_VERSION: '0.4.10' CURRENT_PROJECT_VERSION: '1' # The App Group the app and its broadcast extension share: the socket # the iPhone's screen crosses lives in its container. One setting # feeds both entitlements and both Info.plists' CallsAppGroup key, so # a build under another bundle identifier changes it here and only here. CALLS_APP_GROUP: group.net.amadan.oficina.calls targets: CallsPhone: type: application platform: iOS sources: - Sources - Assets.xcassets - path: ../LICENSE.lucide buildPhase: resources - path: ../LICENSE.rnnoise buildPhase: resources - path: ../LICENSE.webrtc buildPhase: resources - path: ../PATENTS.webrtc buildPhase: resources info: path: ../build/ios-info.plist properties: CFBundleURLTypes: - CFBundleURLName: net.amadan.oficina.calls.join CFBundleURLSchemes: [oficina-calls] CallsAppGroup: $(CALLS_APP_GROUP) # Audio, so a call sharing the whole screen survives the person # going to the app they meant to show. Only a call that is sharing # stays up in the background; every other call still ends there. UIBackgroundModes: [audio] entitlements: path: ../build/ios-app.entitlements properties: com.apple.security.application-groups: [$(CALLS_APP_GROUP)] dependencies: - package: CallsNative product: CallsKit - target: CallsBroadcast settings: base: ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon PRODUCT_BUNDLE_IDENTIFIER: net.amadan.oficina.calls.ios TARGETED_DEVICE_FAMILY: '1,2' GENERATE_INFOPLIST_FILE: YES INFOPLIST_KEY_CFBundleDisplayName: Calls INFOPLIST_KEY_NSCameraUsageDescription: Calls uses your camera so people in your meeting can see you. INFOPLIST_KEY_NSMicrophoneUsageDescription: Calls uses your microphone so people in your meeting can hear you. INFOPLIST_KEY_UILaunchScreen_Generation: YES INFOPLIST_KEY_UISupportedInterfaceOrientations: UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight UIInterfaceOrientationPortraitUpsideDown CallsBroadcast: type: app-extension platform: iOS sources: [Broadcast] info: path: ../build/ios-broadcast-info.plist properties: CFBundleDisplayName: Calls CallsAppGroup: $(CALLS_APP_GROUP) NSExtension: NSExtensionPointIdentifier: com.apple.broadcast-services-upload NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).SampleHandler RPBroadcastProcessMode: RPBroadcastProcessModeSampleBuffer entitlements: path: ../build/ios-broadcast.entitlements properties: com.apple.security.application-groups: [$(CALLS_APP_GROUP)] dependencies: - package: CallsNative product: CallsBroadcastKit settings: base: PRODUCT_BUNDLE_IDENTIFIER: net.amadan.oficina.calls.ios.broadcast TARGETED_DEVICE_FAMILY: '1,2' CallsPhoneTests: type: bundle.unit-test platform: iOS sources: - Tests - ../apple/Sources/CallsInterop/SyntheticVideo.swift dependencies: - target: CallsPhone - package: CallsNative product: CallsKit settings: base: GENERATE_INFOPLIST_FILE: YES CallsPhoneUITests: type: bundle.ui-testing platform: iOS sources: [UITests] dependencies: - target: CallsPhone settings: base: GENERATE_INFOPLIST_FILE: YES TEST_TARGET_NAME: CallsPhone info: path: ../build/ios-test-info.plist properties: NSAppTransportSecurity: NSAllowsArbitraryLoads: true schemes: CallsPhone: build: targets: CallsPhone: all test: targets: [CallsPhoneUITests, CallsPhoneTests]