name: CDrop options: bundleIdPrefix: net.commilitia deploymentTarget: iOS: "26.0" createIntermediateGroups: true settings: base: SWIFT_VERSION: "5.0" # 模拟器用 ad-hoc 签名(身份 "-",无需 Apple 账号),使 App Group / Push 等 entitlement 在 # 模拟器实际生效(否则共享容器不创建、远程通知注册失败)。真机签名须付费 ADP 配 # team / provisioning profile(账号门控,见 REALDEVICE.md)。 CODE_SIGN_IDENTITY: "-" CODE_SIGNING_REQUIRED: "NO" CODE_SIGNING_ALLOWED: "YES" targets: CDrop: type: application platform: iOS deploymentTarget: "26.0" sources: - path: Sources - path: Shared dependencies: - target: CDropShare embed: true - target: CDropWidgets embed: true info: path: Sources/Info.plist properties: CFBundleDisplayName: Commilitia Drop # cdrop:// URL scheme:Share Extension 交接后经 cdrop://share 深链唤起主 app 选设备发送。 CFBundleURLTypes: - CFBundleURLName: net.commilitia.Commilitia-Drop CFBundleURLSchemes: - cdrop # 声明支持的语言,使系统控件(EditButton 的「编辑」、滑动删除的「删除」等系统字符 # 串)跟随设备语言本地化,而非永远英文。开发区域设简体。 CFBundleDevelopmentRegion: zh-Hans CFBundleLocalizations: - zh-Hans - zh-Hant - en UILaunchScreen: {} # 后台续传:BGContinuedProcessingTask 的通配标识符须在此声明,系统才允许注册 / 提交 # (见 BackgroundTaskManager)。默认资源(CPU + 网络)无需额外 entitlement。 BGTaskSchedulerPermittedIdentifiers: - "net.commilitia.Commilitia-Drop.transfer.*" # 远程通知后台模式:APNs 推送送达 / 后台处理(如「收到文件」通知)。 UIBackgroundModes: - remote-notification # 让接收文件落地的 Documents 目录在 Files app「我的 iPhone / Commilitia Drop」下 # 可见、可就地打开(收到的文件有处可开、可被其他 app 取用)。 UIFileSharingEnabled: true LSSupportsOpeningDocumentsInPlace: true NSAppTransportSecurity: NSAllowsLocalNetworking: true NSLocalNetworkUsageDescription: "Commilitia Drop 需要访问本地网络以发现同内网设备并建立直连传输。" NSBonjourServices: - "_cdrop._tcp" NSCameraUsageDescription: "Commilitia Drop 使用相机扫描二维码登录新设备。" # 图库选择:从相册选取图片 / 视频发送(PhotosPicker,见 RootView #14)。 NSPhotoLibraryUsageDescription: "Commilitia Drop 需要访问照片库,以便从相册选取图片或视频发送给其他设备。" settings: base: PRODUCT_BUNDLE_IDENTIFIER: net.commilitia.Commilitia-Drop TARGETED_DEVICE_FAMILY: "1,2" ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon # APNs 推送的 aps-environment entitlement(见 CDrop.entitlements)。模拟器取令牌可用; # 真机签名须付费 ADP 开 Push 能力(账号门控)。 CODE_SIGN_ENTITLEMENTS: CDrop.entitlements # Share Extension:抓分享文件 → App Group 收件箱 → 深链主 app 选设备发送(只交接、不跑引擎, # 见 PLAN §I5)。只编 ShareViewController + 共享的 AppGroup,绝不拉主 app Sources(避超 120MB)。 CDropShare: type: app-extension platform: iOS deploymentTarget: "26.0" sources: - path: Share - path: Shared info: path: Share/Info.plist properties: CFBundleDisplayName: Commilitia Drop NSExtension: NSExtensionPointIdentifier: com.apple.share-services NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).ShareViewController NSExtensionAttributes: NSExtensionActivationRule: NSExtensionActivationSupportsFileWithMaxCount: 20 NSExtensionActivationSupportsImageWithMaxCount: 20 NSExtensionActivationSupportsMovieWithMaxCount: 20 settings: base: PRODUCT_BUNDLE_IDENTIFIER: net.commilitia.Commilitia-Drop.share TARGETED_DEVICE_FAMILY: "1,2" CODE_SIGN_ENTITLEMENTS: Share/CDropShare.entitlements # 控制中心剪贴板两控件(WidgetKit ControlWidget,iOS 18+,PLAN §I4)。纯原生 REST + 控件专用 # 设备会话(不跑引擎)。i18n JSON 一并打包使控件标签随设备语言(t() 经 no-subdir 回退读 bundle)。 CDropWidgets: type: app-extension platform: iOS deploymentTarget: "26.0" sources: - path: Widgets - path: Shared - path: Sources/Resources/i18n info: path: Widgets/Info.plist properties: CFBundleDisplayName: Commilitia Drop NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension settings: base: PRODUCT_BUNDLE_IDENTIFIER: net.commilitia.Commilitia-Drop.widgets TARGETED_DEVICE_FAMILY: "1,2" CODE_SIGN_ENTITLEMENTS: Widgets/CDropWidgets.entitlements schemes: CDrop: build: targets: CDrop: all run: config: Debug