project.yml (6486B)
1 name: Crossmate 2 3 options: 4 bundleIdPrefix: net.inqk.crossmate 5 deploymentTarget: 6 iOS: "17.5" 7 8 configFiles: 9 Debug: Generated/Config.xcconfig 10 Release: Generated/Config.xcconfig 11 12 settings: 13 SWIFT_VERSION: 6 14 DEAD_CODE_STRIPPING: YES 15 ENABLE_USER_SCRIPT_SANDBOXING: YES 16 ASSETCATALOG_COMPILER_GENERATE_ASSET_SYMBOL_EXTENSIONS: YES 17 ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS: YES 18 SWIFT_EMIT_LOC_STRINGS: YES 19 STRING_CATALOG_GENERATE_SYMBOLS: YES 20 DEVELOPMENT_TEAM: 7TD7PZBNXP 21 22 targets: 23 Crossmate: 24 type: application 25 platform: iOS 26 sources: 27 - Crossmate 28 - Shared 29 - path: Puzzles 30 type: folder 31 buildPhase: resources 32 dependencies: 33 - target: NotificationService 34 embed: true 35 codeSign: true 36 info: 37 path: Crossmate/Info.plist 38 properties: 39 CFBundleDisplayName: Crossmate 40 CFBundleShortVersionString: "1.0.0" 41 CFBundleVersion: $(CURRENT_PROJECT_VERSION) 42 ITSAppUsesNonExemptEncryption: false 43 CADisableMinimumFrameDurationOnPhone: true 44 LSRequiresIPhoneOS: true 45 UIBackgroundModes: 46 - remote-notification 47 NSUbiquitousContainers: 48 iCloud.net.inqk.crossmate: 49 NSUbiquitousContainerIsDocumentScopePublic: true 50 NSUbiquitousContainerName: Crossmate 51 NSUbiquitousContainerSupportedFolderLevels: Any 52 UTImportedTypeDeclarations: 53 - UTTypeIdentifier: net.inqk.crossmate.xd 54 UTTypeDescription: Crossmate Puzzle 55 UTTypeConformsTo: 56 - public.plain-text 57 UTTypeTagSpecification: 58 public.filename-extension: 59 - xd 60 - UTTypeIdentifier: com.litsoft.puz 61 UTTypeDescription: Across Lite Puzzle 62 UTTypeConformsTo: 63 - public.data 64 UTTypeTagSpecification: 65 public.filename-extension: 66 - puz 67 CFBundleDocumentTypes: 68 - CFBundleTypeName: Crossmate Puzzle 69 LSHandlerRank: Owner 70 LSItemContentTypes: 71 - net.inqk.crossmate.xd 72 - com.litsoft.puz 73 CKSharingSupported: true 74 CrossmateEngagementSocketURL: $(CROSSMATE_ENGAGEMENT_SOCKET_URL) 75 CrossmatePushBaseURL: $(CROSSMATE_PUSH_BASE_URL) 76 CrossmateShareLinkBaseURL: $(CROSSMATE_SHARE_LINK_BASE_URL) 77 CrossmateAPSEnvironment: $(APS_ENVIRONMENT) 78 LSSupportsOpeningDocumentsInPlace: false 79 UILaunchScreen: {} 80 UISupportedInterfaceOrientations: 81 - UIInterfaceOrientationPortrait 82 UISupportedInterfaceOrientations~ipad: 83 - UIInterfaceOrientationPortrait 84 - UIInterfaceOrientationPortraitUpsideDown 85 - UIInterfaceOrientationLandscapeLeft 86 - UIInterfaceOrientationLandscapeRight 87 settings: 88 base: 89 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate 90 INFOPLIST_FILE: Crossmate/Info.plist 91 CODE_SIGN_ENTITLEMENTS: Crossmate/Crossmate.entitlements 92 CROSSMATE_ENGAGEMENT_SOCKET_URL: $(inherited) 93 CROSSMATE_PUSH_BASE_URL: $(inherited) 94 CROSSMATE_SHARE_LINK_BASE_URL: $(inherited) 95 # The share-link host (no scheme) for the associated-domains 96 # entitlement; set alongside CROSSMATE_SHARE_LINK_BASE_URL in 97 # Local.xcconfig. Empty on a checkout without it, which just means no 98 # universal-link handling (links still work via the worker redirect). 99 CROSSMATE_SHARE_LINK_HOST: $(inherited) 100 APP_ATTEST_ENVIRONMENT: production 101 TARGETED_DEVICE_FAMILY: "1,2" 102 CODE_SIGN_STYLE: Automatic 103 configs: 104 # APS_ENVIRONMENT is the single source of truth for the APNs 105 # environment: it is substituted into the aps-environment entitlement 106 # (which decides the token's environment) and into Info.plist (which 107 # PushClient reports to the push worker), so the two cannot diverge. 108 Debug: 109 APS_ENVIRONMENT: development 110 # Disable linker identical-code-folding in Release so TestFlight crash 111 # reports name the real Swift async functions instead of collapsing 112 # them to <deduplicated_symbol> (which forces dwarfdump --lookup 113 # guesswork during symbolication). 114 Release: 115 APS_ENVIRONMENT: production 116 OTHER_LDFLAGS: $(inherited) -Wl,-no_deduplicate 117 118 NotificationService: 119 type: app-extension 120 platform: iOS 121 sources: 122 - NotificationService 123 - Shared 124 info: 125 path: NotificationService/Info.plist 126 properties: 127 CFBundleDisplayName: Crossmate Notification Service 128 CFBundleShortVersionString: "1.0.0" 129 CFBundleVersion: $(CURRENT_PROJECT_VERSION) 130 NSExtension: 131 NSExtensionPointIdentifier: com.apple.usernotifications.service 132 NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).NotificationService 133 settings: 134 base: 135 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate.notificationservice 136 INFOPLIST_FILE: NotificationService/Info.plist 137 CODE_SIGN_ENTITLEMENTS: NotificationService/NotificationService.entitlements 138 CODE_SIGN_STYLE: Automatic 139 TARGETED_DEVICE_FAMILY: "1,2" 140 141 Crossmate Unit Tests: 142 type: bundle.unit-test 143 platform: iOS 144 sources: 145 - Tests/Unit 146 - Tests/Support 147 dependencies: 148 - target: Crossmate 149 settings: 150 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate.unittests 151 CODE_SIGN_STYLE: Automatic 152 TEST_HOST: $(BUILT_PRODUCTS_DIR)/Crossmate.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Crossmate 153 BUNDLE_LOADER: $(TEST_HOST) 154 GENERATE_INFOPLIST_FILE: YES 155 156 schemes: 157 Crossmate: 158 build: 159 targets: 160 Crossmate: all 161 preActions: 162 - script: | 163 cd "${SRCROOT}" 164 mkdir -p Generated 165 buildYear=`git log -1 --format=%cd --date=format:%Y` 166 buildVersion=`git rev-list HEAD | wc -l | tr -d ' '` 167 { 168 echo '#include? "Local.xcconfig"' 169 echo "CURRENT_PROJECT_VERSION = $buildYear.$buildVersion" 170 } > Generated/Config.xcconfig 171 settingsTarget: Crossmate 172 run: 173 config: Debug 174 test: 175 config: Debug 176 targets: 177 - name: Crossmate Unit Tests 178 parallelizable: true 179 randomExecutionOrder: true 180 profile: 181 config: Release 182 analyze: 183 config: Debug 184 archive: 185 config: Release