name: OpenStats options: bundleIdPrefix: com.openstats deploymentTarget: macOS: "14.0" developmentLanguage: zh-Hans createIntermediateGroups: true groupSortPosition: top settings: base: SWIFT_VERSION: "6.0" MARKETING_VERSION: "0.3.0" # 构建号四位数字,每次 make build 加一;营销版本只在发布时用 Scripts/version.sh patch / minor 修改 CURRENT_PROJECT_VERSION: "0050" MACOSX_DEPLOYMENT_TARGET: "14.0" # 本地开发使用 ad-hoc 签名;发布时改为 Developer ID(见 docs/PLAN.md) CODE_SIGN_STYLE: Manual CODE_SIGN_IDENTITY: "-" DEVELOPMENT_TEAM: "" ENABLE_HARDENED_RUNTIME: YES DEAD_CODE_STRIPPING: YES ENABLE_USER_SCRIPT_SANDBOXING: YES packages: OpenStatsKit: path: Packages/OpenStatsKit targets: OpenStats: type: application platform: macOS sources: - path: App - path: Helper/com.openstats.helper.plist buildPhase: copyFiles: destination: wrapper subpath: Contents/Library/LaunchDaemons info: path: App/Info.plist properties: CFBundleName: OpenStats CFBundleDisplayName: OpenStats CFBundleShortVersionString: $(MARKETING_VERSION) CFBundleVersion: $(CURRENT_PROJECT_VERSION) CFBundleDevelopmentRegion: zh-Hans LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET) LSUIElement: true LSApplicationCategoryType: public.app-category.utilities NSHumanReadableCopyright: © 2026 OpenStats # 账号登录完成后浏览器跳回 openstats://auth/callback CFBundleURLTypes: - CFBundleURLName: com.openstats.app.auth CFBundleURLSchemes: [openstats] CFBundleTypeRole: Viewer settings: base: PRODUCT_NAME: OpenStats PRODUCT_BUNDLE_IDENTIFIER: com.openstats.app ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon dependencies: - package: OpenStatsKit product: OpenStatsUI - target: OpenStatsHelper embed: true copy: destination: executables - target: OpenStatsWidget embed: true # 桌面小组件(沙盒扩展),嵌入 OpenStats.app/Contents/PlugIns OpenStatsWidget: type: app-extension platform: macOS sources: - path: Widget excludes: - "*.entitlements" info: path: Widget/Info.plist properties: CFBundleDisplayName: OpenStats CFBundleShortVersionString: $(MARKETING_VERSION) CFBundleVersion: $(CURRENT_PROJECT_VERSION) LSMinimumSystemVersion: $(MACOSX_DEPLOYMENT_TARGET) NSExtension: NSExtensionPointIdentifier: com.apple.widgetkit-extension entitlements: path: Widget/OpenStatsWidget.entitlements properties: com.apple.security.app-sandbox: true settings: base: PRODUCT_NAME: OpenStatsWidget PRODUCT_BUNDLE_IDENTIFIER: com.openstats.app.widget SKIP_INSTALL: YES dependencies: - package: OpenStatsKit product: Metrics OpenStatsHelper: type: tool platform: macOS sources: - path: Helper excludes: - "*.plist" settings: base: PRODUCT_NAME: OpenStatsHelper PRODUCT_BUNDLE_IDENTIFIER: com.openstats.helper GENERATE_INFOPLIST_FILE: YES CREATE_INFOPLIST_SECTION_IN_BINARY: YES SKIP_INSTALL: YES dependencies: - package: OpenStatsKit product: SMC - package: OpenStatsKit product: HelperShared