name: TerminalX options: bundleIdPrefix: ai.athom.terminalx deploymentTarget: iOS: "17.0" createIntermediateGroups: true packages: # 本地 vendored(构建环境的认证代理不被 SwiftPM 支持,改用 local-path 零网络)。 GhosttyKit: path: ../../vendor/libghostty-spm TXTransport: path: ../../packages/TXTransport TXCore: path: ../../packages/TXCore targets: TerminalX: type: application platform: iOS deploymentTarget: "17.0" sources: - path: iOS # 打包字体(JetBrains Mono 四权重,UIAppFonts 在 TerminalX-Info.plist 声明)。 # 必须平铺进 bundle 根(UIAppFonts 的值不带目录),故用 group 而非 folder reference。 # OFL.txt 一并打包(OFL-1.1 要求许可随分发)。 - path: Resources/Fonts buildPhase: resources excludes: - "README.md" dependencies: - package: GhosttyKit product: GhosttyTerminal - package: GhosttyKit product: GhosttyTheme - package: TXTransport product: TXTransport - package: TXCore product: TXCore # gomobile bind 产出的 tsnet 桥接(动态 framework,需嵌入+签名拷贝)。 - framework: ../../artifacts/TsnetBridge.xcframework embed: true settings: base: PRODUCT_BUNDLE_IDENTIFIER: ai.athom.terminalx MARKETING_VERSION: "0.0.1" CURRENT_PROJECT_VERSION: "1" SWIFT_VERSION: "6.0" GENERATE_INFOPLIST_FILE: YES # 部分 Info.plist 基底(仅 URL scheme,供无头验证前台唤醒);生成键合并其上。 INFOPLIST_FILE: TerminalX-Info.plist TARGETED_DEVICE_FAMILY: "1,2" INFOPLIST_KEY_UILaunchScreen_Generation: YES INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents: YES # 真机自动签名(公司团队 Nanjing ShenRuan)。tsnet 用户态无需 NE entitlement。 # 签名后 Keychain(SecItem)/Secure Enclave 可用(未签名会 -34018 回退文件)。 CODE_SIGN_STYLE: Automatic DEVELOPMENT_TEAM: J75A6S5938