mirror of
https://github.com/sudosylabs/vnidrop.git
synced 2026-08-05 10:29:58 +02:00
Adds project-wide build settings (applied to every target) so they persist
in project.yml instead of the gitignored generated .xcodeproj:
- DEAD_CODE_STRIPPING: strip unreachable code from release binaries
- CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: flag user-facing strings that
aren't localized (the app ships 9 languages), surfaced during Analyze
97 lines
2.9 KiB
YAML
97 lines
2.9 KiB
YAML
# XcodeGen spec for the native SwiftUI VniDrop app (iOS/iPadOS/macOS).
|
|
# Regenerate the project with: xcodegen generate (run from apple/)
|
|
# Requires two generated inputs first (both gitignored), before xcodegen:
|
|
# - Rust core: apple/scripts/build-core.sh debug
|
|
# - Localization: (cd localization && bun run src/cli.ts generate)
|
|
# -> VniDrop/Resources/Localizable.xcstrings, VniDrop/Generated/L10n.swift
|
|
name: VniDrop
|
|
options:
|
|
bundleIdPrefix: com.vnidrop
|
|
deploymentTarget:
|
|
iOS: "18.2"
|
|
macOS: "15.0"
|
|
createIntermediateGroups: true
|
|
|
|
# Project-wide build settings (applied to every target/config).
|
|
settings:
|
|
base:
|
|
# Strip unreachable code from release binaries.
|
|
DEAD_CODE_STRIPPING: YES
|
|
# Flag user-facing strings that aren't localized (the app ships 9 languages).
|
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED: YES
|
|
|
|
packages:
|
|
VnidropCore:
|
|
path: VnidropCore
|
|
SFSafeSymbols:
|
|
url: https://github.com/SFSafeSymbols/SFSafeSymbols
|
|
from: "5.3.0"
|
|
|
|
targets:
|
|
VniDrop:
|
|
type: application
|
|
supportedDestinations: [iOS, macOS]
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: VniDrop
|
|
excludes:
|
|
- "Resources/Info.plist"
|
|
- "Resources/VniDrop.entitlements"
|
|
- "Resources/**/.DS_Store"
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: com.vnidrop.app
|
|
MARKETING_VERSION: "0.1.0"
|
|
CURRENT_PROJECT_VERSION: "1"
|
|
GENERATE_INFOPLIST_FILE: NO
|
|
INFOPLIST_FILE: VniDrop/Resources/Info.plist
|
|
# Mirror the Info.plist identity so Xcode's Identity editor shows it too
|
|
# (the editor reads these build settings, not the manual plist).
|
|
INFOPLIST_KEY_CFBundleDisplayName: VniDrop
|
|
INFOPLIST_KEY_LSApplicationCategoryType: public.app-category.utilities
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
ENABLE_USER_SCRIPT_SANDBOXING: NO
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
configs:
|
|
debug:
|
|
CODE_SIGN_ENTITLEMENTS: VniDrop/Resources/VniDrop.entitlements
|
|
release:
|
|
CODE_SIGN_ENTITLEMENTS: VniDrop/Resources/VniDrop.entitlements
|
|
dependencies:
|
|
- package: VnidropCore
|
|
- package: SFSafeSymbols
|
|
- sdk: SystemConfiguration.framework
|
|
- sdk: Security.framework
|
|
- sdk: libresolv.tbd
|
|
|
|
VniDropTests:
|
|
type: bundle.unit-test
|
|
supportedDestinations: [iOS, macOS]
|
|
configFiles:
|
|
Debug: Signing.xcconfig
|
|
Release: Signing.xcconfig
|
|
sources:
|
|
- path: Tests
|
|
settings:
|
|
base:
|
|
GENERATE_INFOPLIST_FILE: YES
|
|
SWIFT_VERSION: "6.0"
|
|
SWIFT_STRICT_CONCURRENCY: complete
|
|
dependencies:
|
|
- target: VniDrop
|
|
|
|
schemes:
|
|
VniDrop:
|
|
build:
|
|
targets:
|
|
VniDrop: all
|
|
run:
|
|
config: Debug
|
|
test:
|
|
config: Debug
|
|
targets:
|
|
- VniDropTests
|