this repo has no description

Initial commit, just leaning Swift and SwiftUI

Corey Alexander 741e367c

+984
+617
AtProtoBackup.xcodeproj/project.pbxproj
··· 1 + // !$*UTF8*$! 2 + { 3 + archiveVersion = 1; 4 + classes = { 5 + }; 6 + objectVersion = 77; 7 + objects = { 8 + 9 + /* Begin PBXContainerItemProxy section */ 10 + 16A25D8A2E5CA47B0070BFFD /* PBXContainerItemProxy */ = { 11 + isa = PBXContainerItemProxy; 12 + containerPortal = 16A25D702E5CA4790070BFFD /* Project object */; 13 + proxyType = 1; 14 + remoteGlobalIDString = 16A25D772E5CA4790070BFFD; 15 + remoteInfo = AtProtoBackup; 16 + }; 17 + 16A25D942E5CA47B0070BFFD /* PBXContainerItemProxy */ = { 18 + isa = PBXContainerItemProxy; 19 + containerPortal = 16A25D702E5CA4790070BFFD /* Project object */; 20 + proxyType = 1; 21 + remoteGlobalIDString = 16A25D772E5CA4790070BFFD; 22 + remoteInfo = AtProtoBackup; 23 + }; 24 + /* End PBXContainerItemProxy section */ 25 + 26 + /* Begin PBXFileReference section */ 27 + 16A25D782E5CA4790070BFFD /* AtProtoBackup.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AtProtoBackup.app; sourceTree = BUILT_PRODUCTS_DIR; }; 28 + 16A25D892E5CA47B0070BFFD /* AtProtoBackupTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AtProtoBackupTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 29 + 16A25D932E5CA47B0070BFFD /* AtProtoBackupUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AtProtoBackupUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 30 + /* End PBXFileReference section */ 31 + 32 + /* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ 33 + 16A25D9B2E5CA47B0070BFFD /* Exceptions for "AtProtoBackup" folder in "AtProtoBackup" target */ = { 34 + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; 35 + membershipExceptions = ( 36 + Info.plist, 37 + ); 38 + target = 16A25D772E5CA4790070BFFD /* AtProtoBackup */; 39 + }; 40 + /* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ 41 + 42 + /* Begin PBXFileSystemSynchronizedRootGroup section */ 43 + 16A25D7A2E5CA4790070BFFD /* AtProtoBackup */ = { 44 + isa = PBXFileSystemSynchronizedRootGroup; 45 + exceptions = ( 46 + 16A25D9B2E5CA47B0070BFFD /* Exceptions for "AtProtoBackup" folder in "AtProtoBackup" target */, 47 + ); 48 + path = AtProtoBackup; 49 + sourceTree = "<group>"; 50 + }; 51 + 16A25D8C2E5CA47B0070BFFD /* AtProtoBackupTests */ = { 52 + isa = PBXFileSystemSynchronizedRootGroup; 53 + path = AtProtoBackupTests; 54 + sourceTree = "<group>"; 55 + }; 56 + 16A25D962E5CA47B0070BFFD /* AtProtoBackupUITests */ = { 57 + isa = PBXFileSystemSynchronizedRootGroup; 58 + path = AtProtoBackupUITests; 59 + sourceTree = "<group>"; 60 + }; 61 + /* End PBXFileSystemSynchronizedRootGroup section */ 62 + 63 + /* Begin PBXFrameworksBuildPhase section */ 64 + 16A25D752E5CA4790070BFFD /* Frameworks */ = { 65 + isa = PBXFrameworksBuildPhase; 66 + buildActionMask = 2147483647; 67 + files = ( 68 + ); 69 + runOnlyForDeploymentPostprocessing = 0; 70 + }; 71 + 16A25D862E5CA47B0070BFFD /* Frameworks */ = { 72 + isa = PBXFrameworksBuildPhase; 73 + buildActionMask = 2147483647; 74 + files = ( 75 + ); 76 + runOnlyForDeploymentPostprocessing = 0; 77 + }; 78 + 16A25D902E5CA47B0070BFFD /* Frameworks */ = { 79 + isa = PBXFrameworksBuildPhase; 80 + buildActionMask = 2147483647; 81 + files = ( 82 + ); 83 + runOnlyForDeploymentPostprocessing = 0; 84 + }; 85 + /* End PBXFrameworksBuildPhase section */ 86 + 87 + /* Begin PBXGroup section */ 88 + 16A25D6F2E5CA4790070BFFD = { 89 + isa = PBXGroup; 90 + children = ( 91 + 16A25D7A2E5CA4790070BFFD /* AtProtoBackup */, 92 + 16A25D8C2E5CA47B0070BFFD /* AtProtoBackupTests */, 93 + 16A25D962E5CA47B0070BFFD /* AtProtoBackupUITests */, 94 + 16A25D792E5CA4790070BFFD /* Products */, 95 + ); 96 + sourceTree = "<group>"; 97 + }; 98 + 16A25D792E5CA4790070BFFD /* Products */ = { 99 + isa = PBXGroup; 100 + children = ( 101 + 16A25D782E5CA4790070BFFD /* AtProtoBackup.app */, 102 + 16A25D892E5CA47B0070BFFD /* AtProtoBackupTests.xctest */, 103 + 16A25D932E5CA47B0070BFFD /* AtProtoBackupUITests.xctest */, 104 + ); 105 + name = Products; 106 + sourceTree = "<group>"; 107 + }; 108 + /* End PBXGroup section */ 109 + 110 + /* Begin PBXNativeTarget section */ 111 + 16A25D772E5CA4790070BFFD /* AtProtoBackup */ = { 112 + isa = PBXNativeTarget; 113 + buildConfigurationList = 16A25D9C2E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackup" */; 114 + buildPhases = ( 115 + 16A25D742E5CA4790070BFFD /* Sources */, 116 + 16A25D752E5CA4790070BFFD /* Frameworks */, 117 + 16A25D762E5CA4790070BFFD /* Resources */, 118 + ); 119 + buildRules = ( 120 + ); 121 + dependencies = ( 122 + ); 123 + fileSystemSynchronizedGroups = ( 124 + 16A25D7A2E5CA4790070BFFD /* AtProtoBackup */, 125 + ); 126 + name = AtProtoBackup; 127 + packageProductDependencies = ( 128 + ); 129 + productName = AtProtoBackup; 130 + productReference = 16A25D782E5CA4790070BFFD /* AtProtoBackup.app */; 131 + productType = "com.apple.product-type.application"; 132 + }; 133 + 16A25D882E5CA47B0070BFFD /* AtProtoBackupTests */ = { 134 + isa = PBXNativeTarget; 135 + buildConfigurationList = 16A25DA12E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackupTests" */; 136 + buildPhases = ( 137 + 16A25D852E5CA47B0070BFFD /* Sources */, 138 + 16A25D862E5CA47B0070BFFD /* Frameworks */, 139 + 16A25D872E5CA47B0070BFFD /* Resources */, 140 + ); 141 + buildRules = ( 142 + ); 143 + dependencies = ( 144 + 16A25D8B2E5CA47B0070BFFD /* PBXTargetDependency */, 145 + ); 146 + fileSystemSynchronizedGroups = ( 147 + 16A25D8C2E5CA47B0070BFFD /* AtProtoBackupTests */, 148 + ); 149 + name = AtProtoBackupTests; 150 + packageProductDependencies = ( 151 + ); 152 + productName = AtProtoBackupTests; 153 + productReference = 16A25D892E5CA47B0070BFFD /* AtProtoBackupTests.xctest */; 154 + productType = "com.apple.product-type.bundle.unit-test"; 155 + }; 156 + 16A25D922E5CA47B0070BFFD /* AtProtoBackupUITests */ = { 157 + isa = PBXNativeTarget; 158 + buildConfigurationList = 16A25DA42E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackupUITests" */; 159 + buildPhases = ( 160 + 16A25D8F2E5CA47B0070BFFD /* Sources */, 161 + 16A25D902E5CA47B0070BFFD /* Frameworks */, 162 + 16A25D912E5CA47B0070BFFD /* Resources */, 163 + ); 164 + buildRules = ( 165 + ); 166 + dependencies = ( 167 + 16A25D952E5CA47B0070BFFD /* PBXTargetDependency */, 168 + ); 169 + fileSystemSynchronizedGroups = ( 170 + 16A25D962E5CA47B0070BFFD /* AtProtoBackupUITests */, 171 + ); 172 + name = AtProtoBackupUITests; 173 + packageProductDependencies = ( 174 + ); 175 + productName = AtProtoBackupUITests; 176 + productReference = 16A25D932E5CA47B0070BFFD /* AtProtoBackupUITests.xctest */; 177 + productType = "com.apple.product-type.bundle.ui-testing"; 178 + }; 179 + /* End PBXNativeTarget section */ 180 + 181 + /* Begin PBXProject section */ 182 + 16A25D702E5CA4790070BFFD /* Project object */ = { 183 + isa = PBXProject; 184 + attributes = { 185 + BuildIndependentTargetsInParallel = 1; 186 + LastSwiftUpdateCheck = 1640; 187 + LastUpgradeCheck = 1640; 188 + TargetAttributes = { 189 + 16A25D772E5CA4790070BFFD = { 190 + CreatedOnToolsVersion = 16.4; 191 + }; 192 + 16A25D882E5CA47B0070BFFD = { 193 + CreatedOnToolsVersion = 16.4; 194 + TestTargetID = 16A25D772E5CA4790070BFFD; 195 + }; 196 + 16A25D922E5CA47B0070BFFD = { 197 + CreatedOnToolsVersion = 16.4; 198 + TestTargetID = 16A25D772E5CA4790070BFFD; 199 + }; 200 + }; 201 + }; 202 + buildConfigurationList = 16A25D732E5CA4790070BFFD /* Build configuration list for PBXProject "AtProtoBackup" */; 203 + developmentRegion = en; 204 + hasScannedForEncodings = 0; 205 + knownRegions = ( 206 + en, 207 + Base, 208 + ); 209 + mainGroup = 16A25D6F2E5CA4790070BFFD; 210 + minimizedProjectReferenceProxies = 1; 211 + preferredProjectObjectVersion = 77; 212 + productRefGroup = 16A25D792E5CA4790070BFFD /* Products */; 213 + projectDirPath = ""; 214 + projectRoot = ""; 215 + targets = ( 216 + 16A25D772E5CA4790070BFFD /* AtProtoBackup */, 217 + 16A25D882E5CA47B0070BFFD /* AtProtoBackupTests */, 218 + 16A25D922E5CA47B0070BFFD /* AtProtoBackupUITests */, 219 + ); 220 + }; 221 + /* End PBXProject section */ 222 + 223 + /* Begin PBXResourcesBuildPhase section */ 224 + 16A25D762E5CA4790070BFFD /* Resources */ = { 225 + isa = PBXResourcesBuildPhase; 226 + buildActionMask = 2147483647; 227 + files = ( 228 + ); 229 + runOnlyForDeploymentPostprocessing = 0; 230 + }; 231 + 16A25D872E5CA47B0070BFFD /* Resources */ = { 232 + isa = PBXResourcesBuildPhase; 233 + buildActionMask = 2147483647; 234 + files = ( 235 + ); 236 + runOnlyForDeploymentPostprocessing = 0; 237 + }; 238 + 16A25D912E5CA47B0070BFFD /* Resources */ = { 239 + isa = PBXResourcesBuildPhase; 240 + buildActionMask = 2147483647; 241 + files = ( 242 + ); 243 + runOnlyForDeploymentPostprocessing = 0; 244 + }; 245 + /* End PBXResourcesBuildPhase section */ 246 + 247 + /* Begin PBXSourcesBuildPhase section */ 248 + 16A25D742E5CA4790070BFFD /* Sources */ = { 249 + isa = PBXSourcesBuildPhase; 250 + buildActionMask = 2147483647; 251 + files = ( 252 + ); 253 + runOnlyForDeploymentPostprocessing = 0; 254 + }; 255 + 16A25D852E5CA47B0070BFFD /* Sources */ = { 256 + isa = PBXSourcesBuildPhase; 257 + buildActionMask = 2147483647; 258 + files = ( 259 + ); 260 + runOnlyForDeploymentPostprocessing = 0; 261 + }; 262 + 16A25D8F2E5CA47B0070BFFD /* Sources */ = { 263 + isa = PBXSourcesBuildPhase; 264 + buildActionMask = 2147483647; 265 + files = ( 266 + ); 267 + runOnlyForDeploymentPostprocessing = 0; 268 + }; 269 + /* End PBXSourcesBuildPhase section */ 270 + 271 + /* Begin PBXTargetDependency section */ 272 + 16A25D8B2E5CA47B0070BFFD /* PBXTargetDependency */ = { 273 + isa = PBXTargetDependency; 274 + target = 16A25D772E5CA4790070BFFD /* AtProtoBackup */; 275 + targetProxy = 16A25D8A2E5CA47B0070BFFD /* PBXContainerItemProxy */; 276 + }; 277 + 16A25D952E5CA47B0070BFFD /* PBXTargetDependency */ = { 278 + isa = PBXTargetDependency; 279 + target = 16A25D772E5CA4790070BFFD /* AtProtoBackup */; 280 + targetProxy = 16A25D942E5CA47B0070BFFD /* PBXContainerItemProxy */; 281 + }; 282 + /* End PBXTargetDependency section */ 283 + 284 + /* Begin XCBuildConfiguration section */ 285 + 16A25D9D2E5CA47B0070BFFD /* Debug */ = { 286 + isa = XCBuildConfiguration; 287 + buildSettings = { 288 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 289 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 290 + CODE_SIGN_ENTITLEMENTS = AtProtoBackup/AtProtoBackup.entitlements; 291 + CODE_SIGN_IDENTITY = "Apple Development"; 292 + CODE_SIGN_STYLE = Automatic; 293 + CURRENT_PROJECT_VERSION = 1; 294 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 295 + ENABLE_HARDENED_RUNTIME = YES; 296 + ENABLE_PREVIEWS = YES; 297 + GENERATE_INFOPLIST_FILE = YES; 298 + INFOPLIST_FILE = AtProtoBackup/Info.plist; 299 + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; 300 + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; 301 + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; 302 + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; 303 + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; 304 + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; 305 + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; 306 + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; 307 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 308 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 309 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 310 + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; 311 + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; 312 + MACOSX_DEPLOYMENT_TARGET = 14.0; 313 + MARKETING_VERSION = 1.0; 314 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackup; 315 + PRODUCT_NAME = "$(TARGET_NAME)"; 316 + PROVISIONING_PROFILE_SPECIFIER = ""; 317 + REGISTER_APP_GROUPS = YES; 318 + SDKROOT = auto; 319 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 320 + SWIFT_EMIT_LOC_STRINGS = YES; 321 + SWIFT_VERSION = 5.0; 322 + TARGETED_DEVICE_FAMILY = "1,2,7"; 323 + XROS_DEPLOYMENT_TARGET = 2.5; 324 + }; 325 + name = Debug; 326 + }; 327 + 16A25D9E2E5CA47B0070BFFD /* Release */ = { 328 + isa = XCBuildConfiguration; 329 + buildSettings = { 330 + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 331 + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; 332 + CODE_SIGN_ENTITLEMENTS = AtProtoBackup/AtProtoBackup.entitlements; 333 + CODE_SIGN_IDENTITY = "Apple Development"; 334 + CODE_SIGN_STYLE = Automatic; 335 + CURRENT_PROJECT_VERSION = 1; 336 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 337 + ENABLE_HARDENED_RUNTIME = YES; 338 + ENABLE_PREVIEWS = YES; 339 + GENERATE_INFOPLIST_FILE = YES; 340 + INFOPLIST_FILE = AtProtoBackup/Info.plist; 341 + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphoneos*]" = YES; 342 + "INFOPLIST_KEY_UIApplicationSceneManifest_Generation[sdk=iphonesimulator*]" = YES; 343 + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphoneos*]" = YES; 344 + "INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents[sdk=iphonesimulator*]" = YES; 345 + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphoneos*]" = YES; 346 + "INFOPLIST_KEY_UILaunchScreen_Generation[sdk=iphonesimulator*]" = YES; 347 + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphoneos*]" = UIStatusBarStyleDefault; 348 + "INFOPLIST_KEY_UIStatusBarStyle[sdk=iphonesimulator*]" = UIStatusBarStyleDefault; 349 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 350 + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; 351 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 352 + LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"; 353 + "LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks"; 354 + MACOSX_DEPLOYMENT_TARGET = 14.0; 355 + MARKETING_VERSION = 1.0; 356 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackup; 357 + PRODUCT_NAME = "$(TARGET_NAME)"; 358 + PROVISIONING_PROFILE_SPECIFIER = ""; 359 + REGISTER_APP_GROUPS = YES; 360 + SDKROOT = auto; 361 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 362 + SWIFT_EMIT_LOC_STRINGS = YES; 363 + SWIFT_VERSION = 5.0; 364 + TARGETED_DEVICE_FAMILY = "1,2,7"; 365 + XROS_DEPLOYMENT_TARGET = 2.5; 366 + }; 367 + name = Release; 368 + }; 369 + 16A25D9F2E5CA47B0070BFFD /* Debug */ = { 370 + isa = XCBuildConfiguration; 371 + buildSettings = { 372 + ALWAYS_SEARCH_USER_PATHS = NO; 373 + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 374 + CLANG_ANALYZER_NONNULL = YES; 375 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 376 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 377 + CLANG_ENABLE_MODULES = YES; 378 + CLANG_ENABLE_OBJC_ARC = YES; 379 + CLANG_ENABLE_OBJC_WEAK = YES; 380 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 381 + CLANG_WARN_BOOL_CONVERSION = YES; 382 + CLANG_WARN_COMMA = YES; 383 + CLANG_WARN_CONSTANT_CONVERSION = YES; 384 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 385 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 386 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 387 + CLANG_WARN_EMPTY_BODY = YES; 388 + CLANG_WARN_ENUM_CONVERSION = YES; 389 + CLANG_WARN_INFINITE_RECURSION = YES; 390 + CLANG_WARN_INT_CONVERSION = YES; 391 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 392 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 393 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 394 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 395 + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 396 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 397 + CLANG_WARN_STRICT_PROTOTYPES = YES; 398 + CLANG_WARN_SUSPICIOUS_MOVE = YES; 399 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 400 + CLANG_WARN_UNREACHABLE_CODE = YES; 401 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 402 + COPY_PHASE_STRIP = NO; 403 + DEBUG_INFORMATION_FORMAT = dwarf; 404 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 405 + ENABLE_STRICT_OBJC_MSGSEND = YES; 406 + ENABLE_TESTABILITY = YES; 407 + ENABLE_USER_SCRIPT_SANDBOXING = YES; 408 + GCC_C_LANGUAGE_STANDARD = gnu17; 409 + GCC_DYNAMIC_NO_PIC = NO; 410 + GCC_NO_COMMON_BLOCKS = YES; 411 + GCC_OPTIMIZATION_LEVEL = 0; 412 + GCC_PREPROCESSOR_DEFINITIONS = ( 413 + "DEBUG=1", 414 + "$(inherited)", 415 + ); 416 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 417 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 418 + GCC_WARN_UNDECLARED_SELECTOR = YES; 419 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 420 + GCC_WARN_UNUSED_FUNCTION = YES; 421 + GCC_WARN_UNUSED_VARIABLE = YES; 422 + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 423 + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 424 + MTL_FAST_MATH = YES; 425 + ONLY_ACTIVE_ARCH = YES; 426 + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; 427 + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 428 + }; 429 + name = Debug; 430 + }; 431 + 16A25DA02E5CA47B0070BFFD /* Release */ = { 432 + isa = XCBuildConfiguration; 433 + buildSettings = { 434 + ALWAYS_SEARCH_USER_PATHS = NO; 435 + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 436 + CLANG_ANALYZER_NONNULL = YES; 437 + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 438 + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; 439 + CLANG_ENABLE_MODULES = YES; 440 + CLANG_ENABLE_OBJC_ARC = YES; 441 + CLANG_ENABLE_OBJC_WEAK = YES; 442 + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 443 + CLANG_WARN_BOOL_CONVERSION = YES; 444 + CLANG_WARN_COMMA = YES; 445 + CLANG_WARN_CONSTANT_CONVERSION = YES; 446 + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 447 + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 448 + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 449 + CLANG_WARN_EMPTY_BODY = YES; 450 + CLANG_WARN_ENUM_CONVERSION = YES; 451 + CLANG_WARN_INFINITE_RECURSION = YES; 452 + CLANG_WARN_INT_CONVERSION = YES; 453 + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 454 + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 455 + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 456 + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 457 + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; 458 + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 459 + CLANG_WARN_STRICT_PROTOTYPES = YES; 460 + CLANG_WARN_SUSPICIOUS_MOVE = YES; 461 + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 462 + CLANG_WARN_UNREACHABLE_CODE = YES; 463 + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 464 + COPY_PHASE_STRIP = NO; 465 + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 466 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 467 + ENABLE_NS_ASSERTIONS = NO; 468 + ENABLE_STRICT_OBJC_MSGSEND = YES; 469 + ENABLE_USER_SCRIPT_SANDBOXING = YES; 470 + GCC_C_LANGUAGE_STANDARD = gnu17; 471 + GCC_NO_COMMON_BLOCKS = YES; 472 + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 473 + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 474 + GCC_WARN_UNDECLARED_SELECTOR = YES; 475 + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 476 + GCC_WARN_UNUSED_FUNCTION = YES; 477 + GCC_WARN_UNUSED_VARIABLE = YES; 478 + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; 479 + MTL_ENABLE_DEBUG_INFO = NO; 480 + MTL_FAST_MATH = YES; 481 + SWIFT_COMPILATION_MODE = wholemodule; 482 + }; 483 + name = Release; 484 + }; 485 + 16A25DA22E5CA47B0070BFFD /* Debug */ = { 486 + isa = XCBuildConfiguration; 487 + buildSettings = { 488 + BUNDLE_LOADER = "$(TEST_HOST)"; 489 + CODE_SIGN_STYLE = Automatic; 490 + CURRENT_PROJECT_VERSION = 1; 491 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 492 + GENERATE_INFOPLIST_FILE = YES; 493 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 494 + MACOSX_DEPLOYMENT_TARGET = 15.3; 495 + MARKETING_VERSION = 1.0; 496 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackupTests; 497 + PRODUCT_NAME = "$(TARGET_NAME)"; 498 + SDKROOT = auto; 499 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 500 + SWIFT_EMIT_LOC_STRINGS = NO; 501 + SWIFT_VERSION = 5.0; 502 + TARGETED_DEVICE_FAMILY = "1,2,7"; 503 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AtProtoBackup.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/AtProtoBackup"; 504 + XROS_DEPLOYMENT_TARGET = 2.5; 505 + }; 506 + name = Debug; 507 + }; 508 + 16A25DA32E5CA47B0070BFFD /* Release */ = { 509 + isa = XCBuildConfiguration; 510 + buildSettings = { 511 + BUNDLE_LOADER = "$(TEST_HOST)"; 512 + CODE_SIGN_STYLE = Automatic; 513 + CURRENT_PROJECT_VERSION = 1; 514 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 515 + GENERATE_INFOPLIST_FILE = YES; 516 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 517 + MACOSX_DEPLOYMENT_TARGET = 15.3; 518 + MARKETING_VERSION = 1.0; 519 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackupTests; 520 + PRODUCT_NAME = "$(TARGET_NAME)"; 521 + SDKROOT = auto; 522 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 523 + SWIFT_EMIT_LOC_STRINGS = NO; 524 + SWIFT_VERSION = 5.0; 525 + TARGETED_DEVICE_FAMILY = "1,2,7"; 526 + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/AtProtoBackup.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/AtProtoBackup"; 527 + XROS_DEPLOYMENT_TARGET = 2.5; 528 + }; 529 + name = Release; 530 + }; 531 + 16A25DA52E5CA47B0070BFFD /* Debug */ = { 532 + isa = XCBuildConfiguration; 533 + buildSettings = { 534 + CODE_SIGN_STYLE = Automatic; 535 + CURRENT_PROJECT_VERSION = 1; 536 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 537 + GENERATE_INFOPLIST_FILE = YES; 538 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 539 + MACOSX_DEPLOYMENT_TARGET = 15.3; 540 + MARKETING_VERSION = 1.0; 541 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackupUITests; 542 + PRODUCT_NAME = "$(TARGET_NAME)"; 543 + SDKROOT = auto; 544 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 545 + SWIFT_EMIT_LOC_STRINGS = NO; 546 + SWIFT_VERSION = 5.0; 547 + TARGETED_DEVICE_FAMILY = "1,2,7"; 548 + TEST_TARGET_NAME = AtProtoBackup; 549 + XROS_DEPLOYMENT_TARGET = 2.5; 550 + }; 551 + name = Debug; 552 + }; 553 + 16A25DA62E5CA47B0070BFFD /* Release */ = { 554 + isa = XCBuildConfiguration; 555 + buildSettings = { 556 + CODE_SIGN_STYLE = Automatic; 557 + CURRENT_PROJECT_VERSION = 1; 558 + DEVELOPMENT_TEAM = 2U6LPQ7AH5; 559 + GENERATE_INFOPLIST_FILE = YES; 560 + IPHONEOS_DEPLOYMENT_TARGET = 18.5; 561 + MACOSX_DEPLOYMENT_TARGET = 15.3; 562 + MARKETING_VERSION = 1.0; 563 + PRODUCT_BUNDLE_IDENTIFIER = com.coreyja.AtProtoBackupUITests; 564 + PRODUCT_NAME = "$(TARGET_NAME)"; 565 + SDKROOT = auto; 566 + SUPPORTED_PLATFORMS = "iphoneos iphonesimulator macosx xros xrsimulator"; 567 + SWIFT_EMIT_LOC_STRINGS = NO; 568 + SWIFT_VERSION = 5.0; 569 + TARGETED_DEVICE_FAMILY = "1,2,7"; 570 + TEST_TARGET_NAME = AtProtoBackup; 571 + XROS_DEPLOYMENT_TARGET = 2.5; 572 + }; 573 + name = Release; 574 + }; 575 + /* End XCBuildConfiguration section */ 576 + 577 + /* Begin XCConfigurationList section */ 578 + 16A25D732E5CA4790070BFFD /* Build configuration list for PBXProject "AtProtoBackup" */ = { 579 + isa = XCConfigurationList; 580 + buildConfigurations = ( 581 + 16A25D9F2E5CA47B0070BFFD /* Debug */, 582 + 16A25DA02E5CA47B0070BFFD /* Release */, 583 + ); 584 + defaultConfigurationIsVisible = 0; 585 + defaultConfigurationName = Release; 586 + }; 587 + 16A25D9C2E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackup" */ = { 588 + isa = XCConfigurationList; 589 + buildConfigurations = ( 590 + 16A25D9D2E5CA47B0070BFFD /* Debug */, 591 + 16A25D9E2E5CA47B0070BFFD /* Release */, 592 + ); 593 + defaultConfigurationIsVisible = 0; 594 + defaultConfigurationName = Release; 595 + }; 596 + 16A25DA12E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackupTests" */ = { 597 + isa = XCConfigurationList; 598 + buildConfigurations = ( 599 + 16A25DA22E5CA47B0070BFFD /* Debug */, 600 + 16A25DA32E5CA47B0070BFFD /* Release */, 601 + ); 602 + defaultConfigurationIsVisible = 0; 603 + defaultConfigurationName = Release; 604 + }; 605 + 16A25DA42E5CA47B0070BFFD /* Build configuration list for PBXNativeTarget "AtProtoBackupUITests" */ = { 606 + isa = XCConfigurationList; 607 + buildConfigurations = ( 608 + 16A25DA52E5CA47B0070BFFD /* Debug */, 609 + 16A25DA62E5CA47B0070BFFD /* Release */, 610 + ); 611 + defaultConfigurationIsVisible = 0; 612 + defaultConfigurationName = Release; 613 + }; 614 + /* End XCConfigurationList section */ 615 + }; 616 + rootObject = 16A25D702E5CA4790070BFFD /* Project object */; 617 + }
+7
AtProtoBackup.xcodeproj/project.xcworkspace/contents.xcworkspacedata
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <Workspace 3 + version = "1.0"> 4 + <FileRef 5 + location = "self:"> 6 + </FileRef> 7 + </Workspace>
+14
AtProtoBackup.xcodeproj/xcuserdata/coreyja.xcuserdatad/xcschemes/xcschememanagement.plist
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 + <plist version="1.0"> 4 + <dict> 5 + <key>SchemeUserState</key> 6 + <dict> 7 + <key>AtProtoBackup.xcscheme_^#shared#^_</key> 8 + <dict> 9 + <key>orderHint</key> 10 + <integer>0</integer> 11 + </dict> 12 + </dict> 13 + </dict> 14 + </plist>
+19
AtProtoBackup/Account.swift
··· 1 + // 2 + // Item.swift 3 + // AtProtoBackup 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import Foundation 9 + import SwiftData 10 + 11 + 12 + @Model 13 + final class Account { 14 + var did: String 15 + 16 + init(did: String) { 17 + self.did = did 18 + } 19 + }
+11
AtProtoBackup/Assets.xcassets/AccentColor.colorset/Contents.json
··· 1 + { 2 + "colors" : [ 3 + { 4 + "idiom" : "universal" 5 + } 6 + ], 7 + "info" : { 8 + "author" : "xcode", 9 + "version" : 1 10 + } 11 + }
+85
AtProtoBackup/Assets.xcassets/AppIcon.appiconset/Contents.json
··· 1 + { 2 + "images" : [ 3 + { 4 + "idiom" : "universal", 5 + "platform" : "ios", 6 + "size" : "1024x1024" 7 + }, 8 + { 9 + "appearances" : [ 10 + { 11 + "appearance" : "luminosity", 12 + "value" : "dark" 13 + } 14 + ], 15 + "idiom" : "universal", 16 + "platform" : "ios", 17 + "size" : "1024x1024" 18 + }, 19 + { 20 + "appearances" : [ 21 + { 22 + "appearance" : "luminosity", 23 + "value" : "tinted" 24 + } 25 + ], 26 + "idiom" : "universal", 27 + "platform" : "ios", 28 + "size" : "1024x1024" 29 + }, 30 + { 31 + "idiom" : "mac", 32 + "scale" : "1x", 33 + "size" : "16x16" 34 + }, 35 + { 36 + "idiom" : "mac", 37 + "scale" : "2x", 38 + "size" : "16x16" 39 + }, 40 + { 41 + "idiom" : "mac", 42 + "scale" : "1x", 43 + "size" : "32x32" 44 + }, 45 + { 46 + "idiom" : "mac", 47 + "scale" : "2x", 48 + "size" : "32x32" 49 + }, 50 + { 51 + "idiom" : "mac", 52 + "scale" : "1x", 53 + "size" : "128x128" 54 + }, 55 + { 56 + "idiom" : "mac", 57 + "scale" : "2x", 58 + "size" : "128x128" 59 + }, 60 + { 61 + "idiom" : "mac", 62 + "scale" : "1x", 63 + "size" : "256x256" 64 + }, 65 + { 66 + "idiom" : "mac", 67 + "scale" : "2x", 68 + "size" : "256x256" 69 + }, 70 + { 71 + "idiom" : "mac", 72 + "scale" : "1x", 73 + "size" : "512x512" 74 + }, 75 + { 76 + "idiom" : "mac", 77 + "scale" : "2x", 78 + "size" : "512x512" 79 + } 80 + ], 81 + "info" : { 82 + "author" : "xcode", 83 + "version" : 1 84 + } 85 + }
+6
AtProtoBackup/Assets.xcassets/Contents.json
··· 1 + { 2 + "info" : { 3 + "author" : "xcode", 4 + "version" : 1 5 + } 6 + }
+10
AtProtoBackup/AtProtoBackup.entitlements
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 + <plist version="1.0"> 4 + <dict> 5 + <key>com.apple.security.app-sandbox</key> 6 + <true/> 7 + <key>com.apple.security.files.user-selected.read-only</key> 8 + <true/> 9 + </dict> 10 + </plist>
+32
AtProtoBackup/AtProtoBackupApp.swift
··· 1 + // 2 + // AtProtoBackupApp.swift 3 + // AtProtoBackup 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import SwiftUI 9 + import SwiftData 10 + 11 + @main 12 + struct AtProtoBackupApp: App { 13 + var sharedModelContainer: ModelContainer = { 14 + let schema = Schema([ 15 + Account.self, 16 + ]) 17 + let modelConfiguration = ModelConfiguration(schema: schema, isStoredInMemoryOnly: false) 18 + 19 + do { 20 + return try ModelContainer(for: schema, configurations: [modelConfiguration]) 21 + } catch { 22 + fatalError("Could not create ModelContainer: \(error)") 23 + } 24 + }() 25 + 26 + var body: some Scene { 27 + WindowGroup { 28 + ContentView() 29 + } 30 + .modelContainer(sharedModelContainer) 31 + } 32 + }
+83
AtProtoBackup/ContentView.swift
··· 1 + // 2 + // ContentView.swift 3 + // AtProtoBackup 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import SwiftUI 9 + import SwiftData 10 + 11 + struct ContentView: View { 12 + @Environment(\.modelContext) private var modelContext 13 + @Query private var items: [Account] 14 + @State private var showingAlert = false 15 + @State private var inputText = "" 16 + 17 + var body: some View { 18 + NavigationSplitView { 19 + List { 20 + ForEach(items) { item in 21 + NavigationLink { 22 + Text("Item at \(item.did)") 23 + } label: { 24 + Text(item.did) 25 + } 26 + } 27 + .onDelete(perform: deleteItems) 28 + } 29 + #if os(macOS) 30 + .navigationSplitViewColumnWidth(min: 180, ideal: 200) 31 + #endif 32 + .toolbar { 33 + #if os(iOS) 34 + ToolbarItem(placement: .navigationBarTrailing) { 35 + EditButton() 36 + } 37 + #endif 38 + ToolbarItem { 39 + Button(action: addItem) { 40 + Label("Add Account", systemImage: "plus") 41 + } 42 + } 43 + } 44 + 45 + 46 + 47 + } detail: { 48 + Text("Select an item") 49 + }.alert("Test", isPresented: $showingAlert, actions: { 50 + TextField("Type something...", text: $inputText) 51 + Button("OK") { 52 + print("User entered: \(inputText)") 53 + showingAlert = false 54 + withAnimation { 55 + modelContext.insert(Account(did: inputText)) 56 + } 57 + } 58 + Button("Cancel", role: .cancel) { } 59 + }) 60 + 61 + } 62 + 63 + 64 + private func addItem() { 65 + showingAlert = true 66 + 67 + 68 + 69 + } 70 + 71 + private func deleteItems(offsets: IndexSet) { 72 + withAnimation { 73 + for index in offsets { 74 + modelContext.delete(items[index]) 75 + } 76 + } 77 + } 78 + } 79 + 80 + #Preview { 81 + ContentView() 82 + .modelContainer(for: Account.self, inMemory: true) 83 + }
+10
AtProtoBackup/Info.plist
··· 1 + <?xml version="1.0" encoding="UTF-8"?> 2 + <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 + <plist version="1.0"> 4 + <dict> 5 + <key>UIBackgroundModes</key> 6 + <array> 7 + <string>remote-notification</string> 8 + </array> 9 + </dict> 10 + </plist>
+16
AtProtoBackupTests/AtProtoBackupTests.swift
··· 1 + // 2 + // AtProtoBackupTests.swift 3 + // AtProtoBackupTests 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import Testing 9 + 10 + struct AtProtoBackupTests { 11 + 12 + @Test func example() async throws { 13 + // Write your test here and use APIs like `#expect(...)` to check expected conditions. 14 + } 15 + 16 + }
+41
AtProtoBackupUITests/AtProtoBackupUITests.swift
··· 1 + // 2 + // AtProtoBackupUITests.swift 3 + // AtProtoBackupUITests 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import XCTest 9 + 10 + final class AtProtoBackupUITests: XCTestCase { 11 + 12 + override func setUpWithError() throws { 13 + // Put setup code here. This method is called before the invocation of each test method in the class. 14 + 15 + // In UI tests it is usually best to stop immediately when a failure occurs. 16 + continueAfterFailure = false 17 + 18 + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. 19 + } 20 + 21 + override func tearDownWithError() throws { 22 + // Put teardown code here. This method is called after the invocation of each test method in the class. 23 + } 24 + 25 + @MainActor 26 + func testExample() throws { 27 + // UI tests must launch the application that they test. 28 + let app = XCUIApplication() 29 + app.launch() 30 + 31 + // Use XCTAssert and related functions to verify your tests produce the correct results. 32 + } 33 + 34 + @MainActor 35 + func testLaunchPerformance() throws { 36 + // This measures how long it takes to launch your application. 37 + measure(metrics: [XCTApplicationLaunchMetric()]) { 38 + XCUIApplication().launch() 39 + } 40 + } 41 + }
+33
AtProtoBackupUITests/AtProtoBackupUITestsLaunchTests.swift
··· 1 + // 2 + // AtProtoBackupUITestsLaunchTests.swift 3 + // AtProtoBackupUITests 4 + // 5 + // Created by Corey Alexander on 8/25/25. 6 + // 7 + 8 + import XCTest 9 + 10 + final class AtProtoBackupUITestsLaunchTests: XCTestCase { 11 + 12 + override class var runsForEachTargetApplicationUIConfiguration: Bool { 13 + true 14 + } 15 + 16 + override func setUpWithError() throws { 17 + continueAfterFailure = false 18 + } 19 + 20 + @MainActor 21 + func testLaunch() throws { 22 + let app = XCUIApplication() 23 + app.launch() 24 + 25 + // Insert steps here to perform after app launch but before taking a screenshot, 26 + // such as logging into a test account or navigating somewhere in the app 27 + 28 + let attachment = XCTAttachment(screenshot: app.screenshot()) 29 + attachment.name = "Launch Screen" 30 + attachment.lifetime = .keepAlways 31 + add(attachment) 32 + } 33 + }