project.yml (7498B)
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.2.2" 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 CrossmateICloudEnvironment: $(ICLOUD_ENVIRONMENT) 79 LSSupportsOpeningDocumentsInPlace: false 80 UILaunchScreen: {} 81 UISupportedInterfaceOrientations: 82 - UIInterfaceOrientationPortrait 83 UISupportedInterfaceOrientations~ipad: 84 - UIInterfaceOrientationPortrait 85 - UIInterfaceOrientationPortraitUpsideDown 86 - UIInterfaceOrientationLandscapeLeft 87 - UIInterfaceOrientationLandscapeRight 88 settings: 89 base: 90 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate 91 INFOPLIST_FILE: Crossmate/Info.plist 92 CODE_SIGN_ENTITLEMENTS: Crossmate/Crossmate.entitlements 93 CROSSMATE_ENGAGEMENT_SOCKET_URL: $(inherited) 94 CROSSMATE_PUSH_BASE_URL: $(inherited) 95 CROSSMATE_SHARE_LINK_BASE_URL: $(inherited) 96 # The share-link host (no scheme) for the associated-domains 97 # entitlement; set alongside CROSSMATE_SHARE_LINK_BASE_URL in 98 # Local.xcconfig. Empty on a checkout without it, which just means no 99 # universal-link handling (links still work via the worker redirect). 100 CROSSMATE_SHARE_LINK_HOST: $(inherited) 101 APP_ATTEST_ENVIRONMENT: production 102 TARGETED_DEVICE_FAMILY: "1,2" 103 CODE_SIGN_STYLE: Automatic 104 # ICLOUD_ENVIRONMENT is the single source of truth for the CloudKit 105 # environment, on the same pattern as APS_ENVIRONMENT: it feeds the 106 # icloud-container-environment entitlement (which picks the database) 107 # and Info.plist (which the storage audit reports), so a log can never 108 # misattribute which database it read. Xcode picks the environment 109 # implicitly from the build configuration when the entitlement is 110 # absent; naming it makes that choice visible and overridable. 111 # Set ICLOUD_ENVIRONMENT_OVERRIDE in Local.xcconfig to point a Debug 112 # build at Production without touching the committed defaults. 113 ICLOUD_ENVIRONMENT: $(ICLOUD_ENVIRONMENT_OVERRIDE:default=$(ICLOUD_ENVIRONMENT_DEFAULT)) 114 configs: 115 # APS_ENVIRONMENT is the single source of truth for the APNs 116 # environment: it is substituted into the aps-environment entitlement 117 # (which decides the token's environment) and into Info.plist (which 118 # PushClient reports to the push worker), so the two cannot diverge. 119 Debug: 120 APS_ENVIRONMENT: development 121 ICLOUD_ENVIRONMENT_DEFAULT: Development 122 # Disable linker identical-code-folding in Release so TestFlight crash 123 # reports name the real Swift async functions instead of collapsing 124 # them to <deduplicated_symbol> (which forces dwarfdump --lookup 125 # guesswork during symbolication). 126 Release: 127 APS_ENVIRONMENT: production 128 ICLOUD_ENVIRONMENT_DEFAULT: Production 129 OTHER_LDFLAGS: $(inherited) -Wl,-no_deduplicate 130 131 NotificationService: 132 type: app-extension 133 platform: iOS 134 sources: 135 - NotificationService 136 - Shared 137 info: 138 path: NotificationService/Info.plist 139 properties: 140 CFBundleDisplayName: Crossmate Notification Service 141 CFBundleShortVersionString: "1.2.2" 142 CFBundleVersion: $(CURRENT_PROJECT_VERSION) 143 NSExtension: 144 NSExtensionPointIdentifier: com.apple.usernotifications.service 145 NSExtensionPrincipalClass: $(PRODUCT_MODULE_NAME).NotificationService 146 settings: 147 base: 148 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate.notificationservice 149 INFOPLIST_FILE: NotificationService/Info.plist 150 CODE_SIGN_ENTITLEMENTS: NotificationService/NotificationService.entitlements 151 CODE_SIGN_STYLE: Automatic 152 TARGETED_DEVICE_FAMILY: "1,2" 153 154 Crossmate Unit Tests: 155 type: bundle.unit-test 156 platform: iOS 157 sources: 158 - Tests/Unit 159 - Tests/Support 160 dependencies: 161 - target: Crossmate 162 settings: 163 PRODUCT_BUNDLE_IDENTIFIER: net.inqk.crossmate.unittests 164 CODE_SIGN_STYLE: Automatic 165 TEST_HOST: $(BUILT_PRODUCTS_DIR)/Crossmate.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Crossmate 166 BUNDLE_LOADER: $(TEST_HOST) 167 GENERATE_INFOPLIST_FILE: YES 168 169 schemes: 170 Crossmate: 171 build: 172 targets: 173 Crossmate: all 174 preActions: 175 - script: | 176 cd "${SRCROOT}" 177 mkdir -p Generated 178 unset SWIFT_DEBUG_INFORMATION_FORMAT SWIFT_DEBUG_INFORMATION_VERSION 179 buildYear=`git log -1 --format=%cd --date=format:%Y` 180 buildVersion=`git rev-list HEAD | wc -l | tr -d ' '` 181 { 182 echo '#include? "Local.xcconfig"' 183 echo "CURRENT_PROJECT_VERSION = $buildYear.$buildVersion" 184 } > Generated/Config.xcconfig 185 settingsTarget: Crossmate 186 run: 187 config: Debug 188 test: 189 config: Debug 190 targets: 191 - name: Crossmate Unit Tests 192 parallelizable: true 193 randomExecutionOrder: true 194 profile: 195 config: Release 196 analyze: 197 config: Debug 198 archive: 199 config: Release