name: XStats options: bundleIdPrefix: work.12306.xstats deploymentTarget: macOS: "14.0" developmentLanguage: zh-Hans createIntermediateGroups: true groupSortPosition: top settings: base: SWIFT_VERSION: "6.0" # 公开版本号是标准 semver,真源是 CHANGELOG.md 顶部的 “## X.Y.Z · YYYY-MM-DD” MARKETING_VERSION: "0.14.5" # Apple 内部构建号每次 task build 加一,独立于公开版本号且不重置 CURRENT_PROJECT_VERSION: "131" MACOSX_DEPLOYMENT_TARGET: "14.0" # 本地开发使用 ad-hoc 签名;正式发布使用 Developer ID(见 DEVELOPMENT.md) CODE_SIGN_STYLE: Manual CODE_SIGN_IDENTITY: "-" DEVELOPMENT_TEAM: "" ENABLE_HARDENED_RUNTIME: YES DEAD_CODE_STRIPPING: YES ENABLE_USER_SCRIPT_SANDBOXING: YES packages: XStatsKit: path: Packages/XStatsKit targets: XStats: type: application platform: macOS sources: - path: App - path: LICENSES/Sparkle-License.txt buildPhase: resources - path: Helper/work.12306.xstats.helper.plist buildPhase: copyFiles: destination: wrapper subpath: Contents/Library/LaunchDaemons info: path: App/Info.plist properties: CFBundleName: XStats CFBundleDisplayName: XStats CFBundleShortVersionString: $(MARKETING_VERSION) CFBundleVersion: $(CURRENT_PROJECT_VERSION) CFBundleDevelopmentRegion: zh-Hans CFBundleLocalizations: [zh-Hans, zh-Hant, ja, ko, en, de, es, fr, ar] LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET) LSUIElement: true SUPublicEDKey: "j/I8zd8BXz4oPldnhocEySXTMmXPxKMyBRwoA4ewLIk=" SUEnableAutomaticChecks: false SUAutomaticallyUpdate: false SUEnableSystemProfiling: false SURequireSignedFeed: true SUVerifyUpdateBeforeExtraction: true LSApplicationCategoryType: public.app-category.utilities NSHumanReadableCopyright: © 2026 XStats NSCalendarsFullAccessUsageDescription: 在本机日历面板显示您选择的系统日程,不修改或上传日程内容。 NSRemindersFullAccessUsageDescription: 在本机日历面板显示您选择的到期提醒,不修改或上传提醒内容。 entitlements: path: App/XStats.entitlements properties: # EventKit 在 Hardened Runtime 下请求日历与提醒事项访问所需;仍由用户单独授权。 com.apple.security.personal-information.calendars: true com.apple.security.application-groups: - group.work.12306.xstats settings: base: PRODUCT_NAME: XStats PRODUCT_BUNDLE_IDENTIFIER: work.12306.xstats.app PROVISIONING_PROFILE_SPECIFIER: $(XSTATS_APP_PROFILE) ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon dependencies: - package: XStatsKit product: XStatsUI - target: XStatsHelper embed: true copy: destination: executables - target: XStatsWidget embed: true # 桌面小组件(沙盒扩展),嵌入 XStats.app/Contents/PlugIns XStatsWidget: type: app-extension platform: macOS sources: - path: Widget excludes: - "*.entitlements" info: path: Widget/Info.plist properties: CFBundleDisplayName: XStats CFBundleShortVersionString: $(MARKETING_VERSION) CFBundleVersion: $(CURRENT_PROJECT_VERSION) LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET) NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension entitlements: path: Widget/XStatsWidget.entitlements properties: com.apple.security.app-sandbox: true com.apple.security.application-groups: - group.work.12306.xstats settings: base: PRODUCT_NAME: XStatsWidget PRODUCT_BUNDLE_IDENTIFIER: work.12306.xstats.app.widget PROVISIONING_PROFILE_SPECIFIER: $(XSTATS_WIDGET_PROFILE) SKIP_INSTALL: YES dependencies: - package: XStatsKit product: Metrics - package: XStatsKit product: WidgetData - package: XStatsKit product: Localization XStatsHelper: type: tool platform: macOS sources: - path: Helper excludes: - "*.plist" settings: base: PRODUCT_NAME: XStatsHelper PRODUCT_BUNDLE_IDENTIFIER: work.12306.xstats.helper GENERATE_INFOPLIST_FILE: YES CREATE_INFOPLIST_SECTION_IN_BINARY: YES SKIP_INSTALL: YES dependencies: - package: XStatsKit product: SMC - package: XStatsKit product: HelperShared