Skip to content

Instantly share code, notes, and snippets.

@Hokila
Created May 16, 2021 07:00
Show Gist options
  • Save Hokila/29a2d7fa4f3d756a391d4cadeaf93561 to your computer and use it in GitHub Desktop.
Save Hokila/29a2d7fa4f3d756a391d4cadeaf93561 to your computer and use it in GitHub Desktop.
# read document if you don't understand something :)
# https://github.com/yonaskolb/XcodeGen/blob/master/Docs/ProjectSpec.md
name: mazu
options:
minimumXcodeGenVersion: 2.10
usesTabs: false
indentWidth: 4
tabWidth: 4
groupSortPosition: top
groupOrdering:
- order: [mazu, mazuTests, mazuUITests, configs, fastlane]
- pattern: mazu
order: [Booking, Itinerary, Member, More, AncillaryService, Component, API, Utility, Extension, ThirdPartyPackage, Resource]
- pattern: Component
order: [Demo, Base]
generateEmptyDirectories: true
bundleIdPrefix: com.starlux
developmentLanguage: en
preGenCommand: |
FILE=mazu/Resource/R.generated.swift
if [ ! -f "$FILE" ]; then
touch "$FILE"
echo "Create R.swift because it not exist"
fi
postGenCommand: bundle exec pod install
fileGroups:
- configs
- fastlane
- mazu
settings:
base:
ENABLE_BITCODE: false
configs:
DEV: debug
UAT DEBUG: debug
UAT: release
STAGE DEBUG: debug
STAGE: release
PROD DEBUG: debug
PROD: release
configFiles:
DEV: configs/Project-DEV.xcconfig
UAT DEBUG: configs/Project-UAT-DEBUG.xcconfig
UAT: configs/Project-UAT.xcconfig
STAGE DEBUG: configs/Project-STAGE-DEBUG.xcconfig
STAGE: configs/Project-STAGE.xcconfig
PROD DEBUG: configs/Project-PROD-DEBUG.xcconfig
PROD: configs/Project-PROD.xcconfig
### setting for each targets
targets:
mazu:
deploymentTarget: '13.0'
platform: iOS
type: application
sources:
- path: mazu
name: mazu
excludes:
- "**/*.md"
- "ThirdPartyPackage/*.framework"
- "ThirdPartyPackage/RLTMXProfiling/*.framework"
settings:
VALIDATE_WORKSPACE: true
SWIFT_OBJC_BRIDGING_HEADER: mazu/ThirdPartyPackage/ObjC-Briding-Header.h
configFiles:
DEV: configs/mazu-DEV.xcconfig
UAT DEBUG: configs/mazu-UAT-DEBUG.xcconfig
UAT: configs/mazu-UAT.xcconfig
STAGE DEBUG: configs/mazu-STAGE-DEBUG.xcconfig
STAGE: configs/mazu-STAGE.xcconfig
PROD DEBUG: configs/mazu-PROD-DEBUG.xcconfig
PROD: configs/mazu-PROD.xcconfig
scheme:
gatherCoverageData: true
testTargets:
- name: mazuTests
randomExecutionOrder: false
dependencies:
- target: mazuNotificationService
- framework: mazu/ThirdPartyPackage/RLTMXProfiling/RLTMXBehavioralBiometrics.xcframework
- framework: mazu/ThirdPartyPackage/RLTMXProfiling/RLTMXProfiling.xcframework
- framework: mazu/ThirdPartyPackage/RLTMXProfiling/RLTMXProfilingConnections.xcframework
- framework: mazu/ThirdPartyPackage/NCPayment.framework
embed: false
preBuildScripts:
- name: R.swift
script: |
"$PODS_ROOT/R.swift/rswift" generate "$SRCROOT/mazu/Resource/R.generated.swift"
inputFiles:
- $TEMP_DIR/rswift-lastrun
outputFiles:
- $SRCROOT/mazu/Resource/R.generated.swift
postCompileScripts:
- script: |
if [ "${DEBUG_INFORMATION_FORMAT}" = "dwarf" ]; then
"${PODS_ROOT}/SwiftLint/swiftlint"
fi
name: 馃敟 Swiftlint
mazuTests:
platform: iOS
type: bundle.unit-test
sources:
- mazuTests
dependencies:
- target: mazu
mazuUITests:
type: bundle.ui-testing
platform: iOS
sources:
- path: mazuUITests
dependencies:
- target: mazu
mazuNotificationService:
platform: iOS
type: app-extension
sources:
- mazuNotificationService
configFiles:
DEV: configs/mazuNotificationService-DEV.xcconfig
UAT DEBUG: configs/mazuNotificationService-UAT-DEBUG.xcconfig
UAT: configs/mazuNotificationService-UAT.xcconfig
STAGE DEBUG: configs/mazuNotificationService-STAGE-DEBUG.xcconfig
STAGE: configs/mazuNotificationService-STAGE.xcconfig
PROD DEBUG: configs/mazuNotificationService-PROD-DEBUG.xcconfig
PROD: configs/mazuNotificationService-PROD.xcconfig
scheme: {}
embed: true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment