From 4b53ce0746b84f33c157f54fd9340e6d0b95ca18 Mon Sep 17 00:00:00 2001 From: Vlad Date: Sun, 29 Mar 2020 21:20:04 +0300 Subject: [PATCH] Initial Project --- .gitattributes | 2 + .gitignore | 74 +++ .gitmodules | 3 + Brewfile | 3 + Brewfile.lock.json | 64 +++ Gemfile | 3 + Gemfile.lock | 53 +++ build-scripts | 1 + fastlane/Fastfile | 17 + testapp/Podfile | 8 + testapp/Podfile.lock | 82 ++++ testapp/testapp.xcodeproj/project.pbxproj | 431 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 11651 bytes .../xcschemes/xcschememanagement.plist | 14 + .../contents.xcworkspacedata | 10 + testapp/testapp/AppDelegate.swift | 24 + .../AppIcon.appiconset/Contents.json | 98 ++++ testapp/testapp/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + testapp/testapp/Base.lproj/Main.storyboard | 24 + testapp/testapp/FirebaseConfigurator.swift | 22 + testapp/testapp/Info.plist | 64 +++ .../Resources/GoogleService-Info.plist | 36 ++ testapp/testapp/SceneDelegate.swift | 53 +++ testapp/testapp/ViewController.swift | 21 + 27 files changed, 1153 insertions(+) create mode 100755 .gitattributes create mode 100644 .gitignore create mode 100644 .gitmodules create mode 100644 Brewfile create mode 100644 Brewfile.lock.json create mode 100644 Gemfile create mode 100644 Gemfile.lock create mode 160000 build-scripts create mode 100644 fastlane/Fastfile create mode 100644 testapp/Podfile create mode 100644 testapp/Podfile.lock create mode 100644 testapp/testapp.xcodeproj/project.pbxproj create mode 100644 testapp/testapp.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 testapp/testapp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 testapp/testapp.xcodeproj/project.xcworkspace/xcuserdata/vladsuhomlinov.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 testapp/testapp.xcodeproj/xcuserdata/vladsuhomlinov.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 testapp/testapp.xcworkspace/contents.xcworkspacedata create mode 100644 testapp/testapp/AppDelegate.swift create mode 100644 testapp/testapp/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 testapp/testapp/Assets.xcassets/Contents.json create mode 100644 testapp/testapp/Base.lproj/LaunchScreen.storyboard create mode 100644 testapp/testapp/Base.lproj/Main.storyboard create mode 100644 testapp/testapp/FirebaseConfigurator.swift create mode 100644 testapp/testapp/Info.plist create mode 100644 testapp/testapp/Resources/GoogleService-Info.plist create mode 100644 testapp/testapp/SceneDelegate.swift create mode 100644 testapp/testapp/ViewController.swift diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..2342311 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +*.pbxproj merge=union +*.strings text diff diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..19f7e8d --- /dev/null +++ b/.gitignore @@ -0,0 +1,74 @@ +# Xcode +# +# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore + +## Build generated +build/ +DerivedData/ + +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata/ + +## Other +*.moved-aside +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa +*.dSYM.zip +*.dSYM + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +# +# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. +# Packages/ +# Package.pins +.build/ + +# CocoaPods +# +# We recommend against adding the Pods directory to your .gitignore. However +# you should judge for yourself, the pros and cons are mentioned at: +# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control +# +Pods/ + +# Carthage +# +# Add this line if you want to avoid checking in source code from Carthage dependencies. + +Carthage/Checkouts +Carthage/Build + +# fastlane +# +# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the +# screenshots whenever they are needed. +# For more information about the recommended setup visit: +# https://docs.fastlane.tools/best-practices/source-control/#source-control + +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots +fastlane/test_output + +# Touch Instinct custom +Downloads/ +fastlane/README.md +Templates/ +cpd-output.xml +*IDEWorkspaceChecks.plist diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..33d276a --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "build-scripts"] + path = build-scripts + url = git@github.com:TouchInstinct/BuildScripts.git diff --git a/Brewfile b/Brewfile new file mode 100644 index 0000000..5b4394a --- /dev/null +++ b/Brewfile @@ -0,0 +1,3 @@ +tap "yonaskolb/XcodeGen", "https://github.com/yonaskolb/XcodeGen.git" +brew "XcodeGen" +brew "carthage" diff --git a/Brewfile.lock.json b/Brewfile.lock.json new file mode 100644 index 0000000..ecc3145 --- /dev/null +++ b/Brewfile.lock.json @@ -0,0 +1,64 @@ +{ + "entries": { + "tap": { + "yonaskolb/xcodegen": { + "revision": "d3a3640fcbb39f2959d1f48778b5dae2ed15f5ba", + "options": { + "clone_target": "https://github.com/yonaskolb/XcodeGen.git" + } + } + }, + "brew": { + "xcodegen": { + "version": "2.13.1", + "bottle": { + "cellar": ":any_skip_relocation", + "prefix": "/usr/local", + "files": { + "catalina": { + "url": "https://homebrew.bintray.com/bottles/xcodegen-2.13.1.catalina.bottle.tar.gz", + "sha256": "941158e672e7f8e90b94ce3d371bf8728a5d568e224221c5b87cccf03bc282d9" + }, + "mojave": { + "url": "https://homebrew.bintray.com/bottles/xcodegen-2.13.1.mojave.bottle.tar.gz", + "sha256": "97849ee1115ee2665b72c3423704c6ad1368df496a3cf85d4fd24780b8d02952" + } + } + } + }, + "carthage": { + "version": "0.34.0", + "bottle": { + "cellar": ":any_skip_relocation", + "prefix": "/usr/local", + "files": { + "catalina": { + "url": "https://homebrew.bintray.com/bottles/carthage-0.34.0.catalina.bottle.tar.gz", + "sha256": "e3498577798d41c08522e1478e125c2c07fb1c1d1b9aadc447f9d028ec6b3e83" + }, + "mojave": { + "url": "https://homebrew.bintray.com/bottles/carthage-0.34.0.mojave.bottle.tar.gz", + "sha256": "42ec7f8f09fa1701634ba5f8f162778102db7d03a114320296d3b58df8495a6a" + }, + "high_sierra": { + "url": "https://homebrew.bintray.com/bottles/carthage-0.34.0.high_sierra.bottle.tar.gz", + "sha256": "948811ce4d294c0deee78142c5606a6277b2436afe31f502fc4681acc62428ee" + } + } + } + } + } + }, + "system": { + "macos": { + "catalina": { + "HOMEBREW_VERSION": "2.2.6", + "HOMEBREW_PREFIX": "/usr/local", + "Homebrew/homebrew-core": "6c5d006cf56eb131e90995e7f7cc04dca6355a9c", + "CLT": "11.3.1.0.1.1576735732", + "Xcode": "11.3.1", + "macOS": "10.15.4" + } + } + } +} diff --git a/Gemfile b/Gemfile new file mode 100644 index 0000000..b8087cb --- /dev/null +++ b/Gemfile @@ -0,0 +1,3 @@ +source 'https://rubygems.org' +gem 'mustache' +gem 'generamba' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..1a901ea --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,53 @@ +GEM + remote: https://rubygems.org/ + specs: + CFPropertyList (2.3.6) + activesupport (5.1.6) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + claide (1.0.2) + cocoapods-core (1.0.1) + activesupport (>= 4.0.2) + fuzzy_match (~> 2.0.4) + nap (~> 1.0) + colored (1.2) + concurrent-ruby (1.0.5) + fuzzy_match (2.0.4) + generamba (1.4.1) + cocoapods-core (= 1.0.1) + git (= 1.2.9.1) + liquid (= 4.0.0) + terminal-table (= 1.4.5) + thor (= 0.19.1) + xcodeproj (= 1.4.2) + git (1.2.9.1) + i18n (1.0.0) + concurrent-ruby (~> 1.0) + liquid (4.0.0) + minitest (5.11.3) + mustache (1.0.5) + nanaimo (0.2.4) + nap (1.1.0) + terminal-table (1.4.5) + thor (0.19.1) + thread_safe (0.3.6) + tzinfo (1.2.5) + thread_safe (~> 0.1) + xcodeproj (1.4.2) + CFPropertyList (~> 2.3.3) + activesupport (>= 3) + claide (>= 1.0.1, < 2.0) + colored (~> 1.2) + nanaimo (~> 0.2.3) + +PLATFORMS + ruby + +DEPENDENCIES + generamba + mustache + +BUNDLED WITH + 1.16.1 diff --git a/build-scripts b/build-scripts new file mode 160000 index 0000000..1f66650 --- /dev/null +++ b/build-scripts @@ -0,0 +1 @@ +Subproject commit 1f6665086b45a041695c1d52a8f8376bd8cb925e diff --git a/fastlane/Fastfile b/fastlane/Fastfile new file mode 100644 index 0000000..dcba894 --- /dev/null +++ b/fastlane/Fastfile @@ -0,0 +1,17 @@ +import "../build-scripts/xcode/commonFastfile" + +lane :StandardDebug do |options| + buildConfiguration(options) +end + +lane :StandardRelease do |options| + buildConfiguration(options) +end + +lane :EnterpriseDebug do |options| + buildConfiguration(options) +end + +lane :EnterpriseRelease do |options| + buildConfiguration(options) +end diff --git a/testapp/Podfile b/testapp/Podfile new file mode 100644 index 0000000..a797fc7 --- /dev/null +++ b/testapp/Podfile @@ -0,0 +1,8 @@ +source 'https://github.com/CocoaPods/Specs' +source 'https://github.com/TouchInstinct/Podspecs.git' + +platform :ios, '10.0' + +target 'testapp' do + pod 'Firebase/Crashlytics' +end diff --git a/testapp/Podfile.lock b/testapp/Podfile.lock new file mode 100644 index 0000000..8e4318e --- /dev/null +++ b/testapp/Podfile.lock @@ -0,0 +1,82 @@ +PODS: + - Firebase/CoreOnly (6.21.0): + - FirebaseCore (= 6.6.5) + - Firebase/Crashlytics (6.21.0): + - Firebase/CoreOnly + - FirebaseCrashlytics (~> 4.0.0-beta.6) + - FirebaseAnalyticsInterop (1.5.0) + - FirebaseCore (6.6.5): + - FirebaseCoreDiagnostics (~> 1.2) + - FirebaseCoreDiagnosticsInterop (~> 1.2) + - GoogleUtilities/Environment (~> 6.5) + - GoogleUtilities/Logger (~> 6.5) + - FirebaseCoreDiagnostics (1.2.2): + - FirebaseCoreDiagnosticsInterop (~> 1.2) + - GoogleDataTransportCCTSupport (~> 2.0) + - GoogleUtilities/Environment (~> 6.5) + - GoogleUtilities/Logger (~> 6.5) + - nanopb (~> 0.3.901) + - FirebaseCoreDiagnosticsInterop (1.2.0) + - FirebaseCrashlytics (4.0.0-beta.6): + - FirebaseAnalyticsInterop (~> 1.2) + - FirebaseCore (~> 6.6) + - FirebaseInstallations (~> 1.1) + - GoogleDataTransport (~> 5.1) + - GoogleDataTransportCCTSupport (>= 2.0.1, ~> 2.0) + - nanopb (~> 0.3.901) + - PromisesObjC (~> 1.2) + - FirebaseInstallations (1.1.1): + - FirebaseCore (~> 6.6) + - GoogleUtilities/UserDefaults (~> 6.5) + - PromisesObjC (~> 1.2) + - GoogleDataTransport (5.1.0) + - GoogleDataTransportCCTSupport (2.0.1): + - GoogleDataTransport (~> 5.1) + - nanopb (~> 0.3.901) + - GoogleUtilities/Environment (6.5.2) + - GoogleUtilities/Logger (6.5.2): + - GoogleUtilities/Environment + - GoogleUtilities/UserDefaults (6.5.2): + - GoogleUtilities/Logger + - nanopb (0.3.9011): + - nanopb/decode (= 0.3.9011) + - nanopb/encode (= 0.3.9011) + - nanopb/decode (0.3.9011) + - nanopb/encode (0.3.9011) + - PromisesObjC (1.2.8) + +DEPENDENCIES: + - Firebase/Crashlytics + +SPEC REPOS: + https://github.com/CocoaPods/Specs.git: + - Firebase + - FirebaseAnalyticsInterop + - FirebaseCore + - FirebaseCoreDiagnostics + - FirebaseCoreDiagnosticsInterop + - FirebaseCrashlytics + - FirebaseInstallations + - GoogleDataTransport + - GoogleDataTransportCCTSupport + - GoogleUtilities + - nanopb + - PromisesObjC + +SPEC CHECKSUMS: + Firebase: f378c80340dd41c0ad0914af740c021eb282a04b + FirebaseAnalyticsInterop: 3f86269c38ae41f47afeb43ebf32a001f58fcdae + FirebaseCore: 9f495d3afacb7b558711e6218ebb14b1c51b5802 + FirebaseCoreDiagnostics: e9b4cd8ba60dee0f2d13347332e4b7898cca5b61 + FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850 + FirebaseCrashlytics: b9e729da8b80d9c45f234f791a73b5fe647d4c31 + FirebaseInstallations: acb3216eb9784d3b1d2d2d635ff74fa892cc0c44 + GoogleDataTransport: b29a21d813e906014ca16c00897827e40e4a24ab + GoogleDataTransportCCTSupport: 6f15a89b0ca35d6fa523e1f752ef818588885988 + GoogleUtilities: ad0f3b691c67909d03a3327cc205222ab8f42e0e + nanopb: 18003b5e52dab79db540fe93fe9579f399bd1ccd + PromisesObjC: c119f3cd559f50b7ae681fa59dc1acd19173b7e6 + +PODFILE CHECKSUM: 9e07a86842a5d30e0e0fadd6263cf15aeec8b3ba + +COCOAPODS: 1.9.1 diff --git a/testapp/testapp.xcodeproj/project.pbxproj b/testapp/testapp.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8765229 --- /dev/null +++ b/testapp/testapp.xcodeproj/project.pbxproj @@ -0,0 +1,431 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 4CEDA81A243116E2009937F6 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CEDA819243116E2009937F6 /* AppDelegate.swift */; }; + 4CEDA81C243116E2009937F6 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CEDA81B243116E2009937F6 /* SceneDelegate.swift */; }; + 4CEDA81E243116E2009937F6 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CEDA81D243116E2009937F6 /* ViewController.swift */; }; + 4CEDA821243116E2009937F6 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4CEDA81F243116E2009937F6 /* Main.storyboard */; }; + 4CEDA823243116E4009937F6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4CEDA822243116E4009937F6 /* Assets.xcassets */; }; + 4CEDA826243116E4009937F6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4CEDA824243116E4009937F6 /* LaunchScreen.storyboard */; }; + 4CEDA82E24311BB7009937F6 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4CEDA82D24311BB7009937F6 /* GoogleService-Info.plist */; }; + 4CEDA83224311D39009937F6 /* FirebaseConfigurator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CEDA83124311D39009937F6 /* FirebaseConfigurator.swift */; }; + 5BA51FF56166E220C9EA9AE5 /* libPods-testapp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 51A495AFB846F07131234E07 /* libPods-testapp.a */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 4CEDA816243116E2009937F6 /* testapp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = testapp.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 4CEDA819243116E2009937F6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 4CEDA81B243116E2009937F6 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 4CEDA81D243116E2009937F6 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 4CEDA820243116E2009937F6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 4CEDA822243116E4009937F6 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 4CEDA825243116E4009937F6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 4CEDA827243116E4009937F6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 4CEDA82D24311BB7009937F6 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + 4CEDA83124311D39009937F6 /* FirebaseConfigurator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FirebaseConfigurator.swift; sourceTree = ""; }; + 51A495AFB846F07131234E07 /* libPods-testapp.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-testapp.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 850F47AFCB96FB78E12B45A6 /* Pods-testapp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testapp.release.xcconfig"; path = "Target Support Files/Pods-testapp/Pods-testapp.release.xcconfig"; sourceTree = ""; }; + D84BC60B89033587ECDE53FF /* Pods-testapp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-testapp.debug.xcconfig"; path = "Target Support Files/Pods-testapp/Pods-testapp.debug.xcconfig"; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 4CEDA813243116E2009937F6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BA51FF56166E220C9EA9AE5 /* libPods-testapp.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 4CEDA80D243116E1009937F6 = { + isa = PBXGroup; + children = ( + 4CEDA818243116E2009937F6 /* testapp */, + 4CEDA817243116E2009937F6 /* Products */, + 600902CE440FA2AFD0C2664F /* Pods */, + C2812CB4A734C6AFB671545A /* Frameworks */, + ); + sourceTree = ""; + }; + 4CEDA817243116E2009937F6 /* Products */ = { + isa = PBXGroup; + children = ( + 4CEDA816243116E2009937F6 /* testapp.app */, + ); + name = Products; + sourceTree = ""; + }; + 4CEDA818243116E2009937F6 /* testapp */ = { + isa = PBXGroup; + children = ( + 4CEDA82F24311BC0009937F6 /* Resources */, + 4CEDA819243116E2009937F6 /* AppDelegate.swift */, + 4CEDA81B243116E2009937F6 /* SceneDelegate.swift */, + 4CEDA81D243116E2009937F6 /* ViewController.swift */, + 4CEDA81F243116E2009937F6 /* Main.storyboard */, + 4CEDA822243116E4009937F6 /* Assets.xcassets */, + 4CEDA824243116E4009937F6 /* LaunchScreen.storyboard */, + 4CEDA827243116E4009937F6 /* Info.plist */, + 4CEDA83124311D39009937F6 /* FirebaseConfigurator.swift */, + ); + path = testapp; + sourceTree = ""; + }; + 4CEDA82F24311BC0009937F6 /* Resources */ = { + isa = PBXGroup; + children = ( + 4CEDA82D24311BB7009937F6 /* GoogleService-Info.plist */, + ); + path = Resources; + sourceTree = ""; + }; + 600902CE440FA2AFD0C2664F /* Pods */ = { + isa = PBXGroup; + children = ( + D84BC60B89033587ECDE53FF /* Pods-testapp.debug.xcconfig */, + 850F47AFCB96FB78E12B45A6 /* Pods-testapp.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + C2812CB4A734C6AFB671545A /* Frameworks */ = { + isa = PBXGroup; + children = ( + 51A495AFB846F07131234E07 /* libPods-testapp.a */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 4CEDA815243116E2009937F6 /* testapp */ = { + isa = PBXNativeTarget; + buildConfigurationList = 4CEDA82A243116E4009937F6 /* Build configuration list for PBXNativeTarget "testapp" */; + buildPhases = ( + 8E38795C80638C99DA8BB464 /* [CP] Check Pods Manifest.lock */, + 4CEDA812243116E2009937F6 /* Sources */, + 4CEDA814243116E2009937F6 /* Resources */, + 4CEDA813243116E2009937F6 /* Frameworks */, + 4CEDA83024311C33009937F6 /* Firebase */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = testapp; + productName = testapp; + productReference = 4CEDA816243116E2009937F6 /* testapp.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 4CEDA80E243116E1009937F6 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = touchin; + TargetAttributes = { + 4CEDA815243116E2009937F6 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 4CEDA811243116E1009937F6 /* Build configuration list for PBXProject "testapp" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 4CEDA80D243116E1009937F6; + productRefGroup = 4CEDA817243116E2009937F6 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 4CEDA815243116E2009937F6 /* testapp */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 4CEDA814243116E2009937F6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4CEDA826243116E4009937F6 /* LaunchScreen.storyboard in Resources */, + 4CEDA82E24311BB7009937F6 /* GoogleService-Info.plist in Resources */, + 4CEDA823243116E4009937F6 /* Assets.xcassets in Resources */, + 4CEDA821243116E2009937F6 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 4CEDA83024311C33009937F6 /* Firebase */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 8; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(GOOGLE_SERVICE_INFO_PLIST_PATH)", + ); + name = Firebase; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 1; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/FirebaseCrashlytics/run\" --google-service-plist ${GOOGLE_SERVICE_INFO_PLIST_PATH}\n"; + }; + 8E38795C80638C99DA8BB464 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-testapp-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 4CEDA812243116E2009937F6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 4CEDA81E243116E2009937F6 /* ViewController.swift in Sources */, + 4CEDA83224311D39009937F6 /* FirebaseConfigurator.swift in Sources */, + 4CEDA81A243116E2009937F6 /* AppDelegate.swift in Sources */, + 4CEDA81C243116E2009937F6 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 4CEDA81F243116E2009937F6 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4CEDA820243116E2009937F6 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 4CEDA824243116E4009937F6 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 4CEDA825243116E4009937F6 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 4CEDA828243116E4009937F6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 4CEDA829243116E4009937F6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 4CEDA82B243116E4009937F6 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D84BC60B89033587ECDE53FF /* Pods-testapp.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + GOOGLE_SERVICE_INFO_PLIST_PATH = "/Users/vladsuhomlinov/TestApp/testapp/testapp/Resources/GoogleService-Info.plist"; + INFOPLIST_FILE = testapp/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = ru.touchin.testapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 4CEDA82C243116E4009937F6 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 850F47AFCB96FB78E12B45A6 /* Pods-testapp.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + GOOGLE_SERVICE_INFO_PLIST_PATH = "/Users/vladsuhomlinov/TestApp/testapp/testapp/Resources/GoogleService-Info.plist"; + INFOPLIST_FILE = testapp/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = ru.touchin.testapp; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 4CEDA811243116E1009937F6 /* Build configuration list for PBXProject "testapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4CEDA828243116E4009937F6 /* Debug */, + 4CEDA829243116E4009937F6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 4CEDA82A243116E4009937F6 /* Build configuration list for PBXNativeTarget "testapp" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 4CEDA82B243116E4009937F6 /* Debug */, + 4CEDA82C243116E4009937F6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 4CEDA80E243116E1009937F6 /* Project object */; +} diff --git a/testapp/testapp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/testapp/testapp.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..aeff185 --- /dev/null +++ b/testapp/testapp.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/testapp/testapp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/testapp/testapp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/testapp/testapp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/testapp/testapp.xcodeproj/project.xcworkspace/xcuserdata/vladsuhomlinov.xcuserdatad/UserInterfaceState.xcuserstate b/testapp/testapp.xcodeproj/project.xcworkspace/xcuserdata/vladsuhomlinov.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..bb2f85cd91ab740cb88a65a5f1363d5368b95ab0 GIT binary patch literal 11651 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 + + + + SchemeUserState + + testapp.xcscheme_^#shared#^_ + + orderHint + 13 + + + + diff --git a/testapp/testapp.xcworkspace/contents.xcworkspacedata b/testapp/testapp.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..3708f3d --- /dev/null +++ b/testapp/testapp.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/testapp/testapp/AppDelegate.swift b/testapp/testapp/AppDelegate.swift new file mode 100644 index 0000000..cc86b58 --- /dev/null +++ b/testapp/testapp/AppDelegate.swift @@ -0,0 +1,24 @@ +// +// AppDelegate.swift +// testapp +// +// Created by Vlad Suhomlinov on 29.03.2020. +// Copyright © 2020 touchin. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + + FirebaseConfigurator.configure() + + return true + } +} + diff --git a/testapp/testapp/Assets.xcassets/AppIcon.appiconset/Contents.json b/testapp/testapp/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/testapp/testapp/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/testapp/testapp/Assets.xcassets/Contents.json b/testapp/testapp/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/testapp/testapp/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/testapp/testapp/Base.lproj/LaunchScreen.storyboard b/testapp/testapp/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/testapp/testapp/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testapp/testapp/Base.lproj/Main.storyboard b/testapp/testapp/Base.lproj/Main.storyboard new file mode 100644 index 0000000..25a7638 --- /dev/null +++ b/testapp/testapp/Base.lproj/Main.storyboard @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/testapp/testapp/FirebaseConfigurator.swift b/testapp/testapp/FirebaseConfigurator.swift new file mode 100644 index 0000000..49fc9fc --- /dev/null +++ b/testapp/testapp/FirebaseConfigurator.swift @@ -0,0 +1,22 @@ +import Firebase + +enum FirebaseConfigurator { + + private static var resourceName: String { + return "GoogleService-Info" + } + + static func configure() { + guard let filePath = Bundle.main.path(forResource: resourceName, ofType: .fileExtension), + let options = FirebaseOptions(contentsOfFile: filePath) else { + return + } + + FirebaseApp.configure(options: options) + } +} + +// MARK: - Constants +private extension String { + static let fileExtension = "plist" +} diff --git a/testapp/testapp/Info.plist b/testapp/testapp/Info.plist new file mode 100644 index 0000000..2a3483c --- /dev/null +++ b/testapp/testapp/Info.plist @@ -0,0 +1,64 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/testapp/testapp/Resources/GoogleService-Info.plist b/testapp/testapp/Resources/GoogleService-Info.plist new file mode 100644 index 0000000..b80f8d5 --- /dev/null +++ b/testapp/testapp/Resources/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 1009875821676-2s1d4tjn9dojsp3ao31cicm174mjehc5.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.1009875821676-2s1d4tjn9dojsp3ao31cicm174mjehc5 + API_KEY + AIzaSyDSUnGsmBO5kvfTeVDJywsyigcqqWSmuzY + GCM_SENDER_ID + 1009875821676 + PLIST_VERSION + 1 + BUNDLE_ID + ru.touchin.testapp + PROJECT_ID + ti-testapp + STORAGE_BUCKET + ti-testapp.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:1009875821676:ios:3b95cafada68fd3a07a449 + DATABASE_URL + https://ti-testapp.firebaseio.com + + \ No newline at end of file diff --git a/testapp/testapp/SceneDelegate.swift b/testapp/testapp/SceneDelegate.swift new file mode 100644 index 0000000..32a4b90 --- /dev/null +++ b/testapp/testapp/SceneDelegate.swift @@ -0,0 +1,53 @@ +// +// SceneDelegate.swift +// testapp +// +// Created by Vlad Suhomlinov on 29.03.2020. +// Copyright © 2020 touchin. All rights reserved. +// + +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + guard let _ = (scene as? UIWindowScene) else { return } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/testapp/testapp/ViewController.swift b/testapp/testapp/ViewController.swift new file mode 100644 index 0000000..a1e0a66 --- /dev/null +++ b/testapp/testapp/ViewController.swift @@ -0,0 +1,21 @@ +// +// ViewController.swift +// testapp +// +// Created by Vlad Suhomlinov on 29.03.2020. +// Copyright © 2020 touchin. All rights reserved. +// + +import UIKit + +class ViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + // Do any additional setup after loading the view. + } + + +} + +