From 5c59342e6e19989c012877362af529b3d5d0abeb Mon Sep 17 00:00:00 2001 From: Mathew Huusko V Date: Fri, 2 Jun 2017 18:42:17 +0100 Subject: macOS (#38) * Example/Core: create macOS app/tests target * Example/Core: Core_Example/Tests -> Core_Example/Tests_iOS * Example/Core: macOS building/tests passing * Example/Database: separate iOS/macOS targets * BuildFrameworks: macOS * .travis.yml, test.sh: AllUnitTests -> AllUnitTests_iOS * test.sh: add AllUnitTests_macOS * Example/Storage: Example/Tests->_iOS * Example/Storage: macOS * test.sh: try to prevent double error 65 * test.sh: build before test * Example/Auth|Messaging: -> _iOS * Example/Auth: macOS build * Example/Auth: macOS passing * Example/Firebase: pod de/re-integrate; fix static DerivedData references; copy phase for OCMock * Example/Firebase: manually copied OCMock, Products Dir vs. Frameworks * Example/Firebase: copied OCMock, prevent header removal * Example/Storage: integration tests sdk fix * Example/Auth: macOS exclude FIRAuthAppCredentialManager; cleanup * Firebase/Core: remove nullability annotation * Firebase/Core|Database: correct TARGET_X usage for correctness and anticipation of OS_WATCH|TV branches * build.swift: style fix * Firebase/Core: FIRLogger: fix macOS intermittent va_list error --- .travis.yml | 3 +- .../FrameworkMaker.xcodeproj/project.pbxproj | 198 +- .../xcschemes/FrameworkMaker_iOS.xcscheme | 91 + .../xcschemes/FrameworkMaker_macOS.xcscheme | 91 + BuildFrameworks/Podfile | 14 +- BuildFrameworks/build.swift | 63 +- BuildFrameworks/iOS-Info.plist | 49 + BuildFrameworks/macOS-Info.plist | 32 + Example/Auth/App/Auth-Info.plist | 49 - .../Auth/App/Base.lproj/LaunchScreen.storyboard | 27 - Example/Auth/App/Base.lproj/Main.storyboard | 27 - Example/Auth/App/FIRAppDelegate.h | 23 - Example/Auth/App/FIRAppDelegate.m | 52 - Example/Auth/App/FIRViewController.h | 21 - Example/Auth/App/FIRViewController.m | 35 - Example/Auth/App/iOS/Auth-Info.plist | 49 + .../App/iOS/Base.lproj/LaunchScreen.storyboard | 27 + Example/Auth/App/iOS/Base.lproj/Main.storyboard | 27 + Example/Auth/App/iOS/FIRAppDelegate.h | 23 + Example/Auth/App/iOS/FIRAppDelegate.m | 52 + Example/Auth/App/iOS/FIRViewController.h | 21 + Example/Auth/App/iOS/FIRViewController.m | 35 + Example/Auth/App/iOS/main.m | 23 + Example/Auth/App/macOS/Auth-Info.plist | 32 + Example/Auth/App/macOS/Base.lproj/Main.storyboard | 693 ++++ Example/Auth/App/macOS/FIRAppDelegate.h | 23 + Example/Auth/App/macOS/FIRAppDelegate.m | 35 + Example/Auth/App/macOS/FIRViewController.h | 23 + Example/Auth/App/macOS/FIRViewController.m | 35 + Example/Auth/App/macOS/main.m | 21 + Example/Auth/App/main.m | 23 - Example/Auth/Tests/FIRAuthTests.m | 43 +- Example/Auth/Tests/FIRUserTests.m | 53 +- .../Core/App/Base.lproj/LaunchScreen.storyboard | 27 - Example/Core/App/Base.lproj/Main.storyboard | 27 - Example/Core/App/Core-Info.plist | 49 - Example/Core/App/FIRAppDelegate.h | 23 - Example/Core/App/FIRAppDelegate.m | 52 - Example/Core/App/FIRViewController.h | 21 - Example/Core/App/FIRViewController.m | 35 - .../App/iOS/Base.lproj/LaunchScreen.storyboard | 27 + Example/Core/App/iOS/Base.lproj/Main.storyboard | 27 + Example/Core/App/iOS/Core-Info.plist | 49 + Example/Core/App/iOS/FIRAppDelegate.h | 23 + Example/Core/App/iOS/FIRAppDelegate.m | 52 + Example/Core/App/iOS/FIRViewController.h | 21 + Example/Core/App/iOS/FIRViewController.m | 35 + Example/Core/App/iOS/main.m | 23 + Example/Core/App/macOS/Base.lproj/Main.storyboard | 693 ++++ Example/Core/App/macOS/Core-Info.plist | 32 + Example/Core/App/macOS/FIRAppDelegate.h | 23 + Example/Core/App/macOS/FIRAppDelegate.m | 35 + Example/Core/App/macOS/FIRViewController.h | 23 + Example/Core/App/macOS/FIRViewController.m | 35 + Example/Core/App/macOS/main.m | 21 + Example/Core/App/main.m | 23 - .../App/Base.lproj/LaunchScreen.storyboard | 27 - Example/Database/App/Base.lproj/Main.storyboard | 27 - Example/Database/App/Database-Info.plist | 49 - Example/Database/App/FIRAppDelegate.h | 23 - Example/Database/App/FIRAppDelegate.m | 52 - Example/Database/App/FIRViewController.h | 21 - Example/Database/App/FIRViewController.m | 35 - .../App/iOS/Base.lproj/LaunchScreen.storyboard | 27 + .../Database/App/iOS/Base.lproj/Main.storyboard | 27 + Example/Database/App/iOS/Database-Info.plist | 49 + Example/Database/App/iOS/FIRAppDelegate.h | 23 + Example/Database/App/iOS/FIRAppDelegate.m | 52 + Example/Database/App/iOS/FIRViewController.h | 21 + Example/Database/App/iOS/FIRViewController.m | 35 + Example/Database/App/iOS/main.m | 23 + .../Database/App/macOS/Base.lproj/Main.storyboard | 693 ++++ Example/Database/App/macOS/Database-Info.plist | 32 + Example/Database/App/macOS/FIRAppDelegate.h | 23 + Example/Database/App/macOS/FIRAppDelegate.m | 35 + Example/Database/App/macOS/FIRViewController.h | 23 + Example/Database/App/macOS/FIRViewController.m | 35 + Example/Database/App/macOS/main.m | 21 + Example/Database/App/main.m | 23 - Example/Database/Tests/Unit/FUtilitiesTest.m | 3 +- Example/Firebase.xcodeproj/project.pbxproj | 4351 +++++++++++++++----- .../xcshareddata/xcschemes/AllUnitTests.xcscheme | 201 - .../xcschemes/AllUnitTests_iOS.xcscheme | 223 + .../xcschemes/AllUnitTests_macOS.xcscheme | 185 + .../xcschemes/Auth_Example_iOS.xcscheme | 101 + .../xcschemes/Auth_Example_macOS.xcscheme | 101 + .../xcshareddata/xcschemes/Auth_Tests.xcscheme | 56 - .../xcshareddata/xcschemes/Auth_Tests_iOS.xcscheme | 99 + .../xcschemes/Auth_Tests_macOS.xcscheme | 99 + .../xcschemes/Core_Example_iOS.xcscheme | 101 + .../xcschemes/Core_Example_macOS.xcscheme | 101 + .../xcshareddata/xcschemes/Core_Tests.xcscheme | 56 - .../xcshareddata/xcschemes/Core_Tests_iOS.xcscheme | 99 + .../xcschemes/Core_Tests_macOS.xcscheme | 99 + .../xcschemes/Database_Example_iOS.xcscheme | 101 + .../xcschemes/Database_Example_macOS.xcscheme | 101 + .../xcschemes/Database_IntegrationTests.xcscheme | 56 - .../Database_IntegrationTests_iOS.xcscheme | 99 + .../Database_IntegrationTests_macOS.xcscheme | 99 + .../xcshareddata/xcschemes/Database_Tests.xcscheme | 56 - .../xcschemes/Database_Tests_iOS.xcscheme | 81 + .../xcschemes/Database_Tests_macOS.xcscheme | 99 + .../xcschemes/Messaging_Example.xcscheme | 101 - .../xcschemes/Messaging_Example_iOS.xcscheme | 101 + .../xcschemes/Messaging_Tests.xcscheme | 56 - .../xcschemes/Messaging_Tests_iOS.xcscheme | 99 + .../xcschemes/Storage_Example_iOS.xcscheme | 101 + .../xcschemes/Storage_Example_macOS.xcscheme | 101 + .../xcschemes/Storage_IntegrationTests.xcscheme | 56 - .../Storage_IntegrationTests_iOS.xcscheme | 99 + .../Storage_IntegrationTests_macOS.xcscheme | 90 + .../xcshareddata/xcschemes/Storage_Tests.xcscheme | 56 - .../xcschemes/Storage_Tests_iOS.xcscheme | 99 + .../xcschemes/Storage_Tests_macOS.xcscheme | 99 + Example/Messaging/App/AppDelegate.swift | 128 - .../App/Base.lproj/LaunchScreen.storyboard | 27 - Example/Messaging/App/Base.lproj/Main.storyboard | 48 - .../Messaging/App/Data+MessagingExtensions.swift | 25 - Example/Messaging/App/Environment.swift | 28 - Example/Messaging/App/Messaging-Info.plist | 53 - .../Messaging/App/MessagingViewController.swift | 332 -- .../Messaging/App/Messaging_Example.entitlements | 8 - .../Messaging/App/NotificationsController.swift | 132 - Example/Messaging/App/iOS/AppDelegate.swift | 128 + .../App/iOS/Base.lproj/LaunchScreen.storyboard | 27 + .../Messaging/App/iOS/Base.lproj/Main.storyboard | 48 + .../App/iOS/Data+MessagingExtensions.swift | 25 + Example/Messaging/App/iOS/Environment.swift | 28 + Example/Messaging/App/iOS/Messaging-Info.plist | 53 + .../App/iOS/MessagingViewController.swift | 332 ++ .../App/iOS/Messaging_Example.entitlements | 8 + .../App/iOS/NotificationsController.swift | 132 + Example/Podfile | 93 +- .../AppIcon.appiconset/Contents.json | 51 + .../AppIcon.appiconset/Icon-Mac-128.png | Bin 0 -> 11117 bytes .../Storage/App/Base.lproj/LaunchScreen.storyboard | 27 - Example/Storage/App/Base.lproj/Main.storyboard | 27 - Example/Storage/App/FIRAppDelegate.h | 23 - Example/Storage/App/FIRAppDelegate.m | 52 - Example/Storage/App/FIRViewController.h | 21 - Example/Storage/App/FIRViewController.m | 35 - Example/Storage/App/Storage-Info.plist | 49 - .../App/iOS/Base.lproj/LaunchScreen.storyboard | 27 + Example/Storage/App/iOS/Base.lproj/Main.storyboard | 27 + Example/Storage/App/iOS/FIRAppDelegate.h | 23 + Example/Storage/App/iOS/FIRAppDelegate.m | 52 + Example/Storage/App/iOS/FIRViewController.h | 21 + Example/Storage/App/iOS/FIRViewController.m | 35 + Example/Storage/App/iOS/Storage-Info.plist | 49 + Example/Storage/App/iOS/main.m | 23 + .../Storage/App/macOS/Base.lproj/Main.storyboard | 693 ++++ Example/Storage/App/macOS/FIRAppDelegate.h | 23 + Example/Storage/App/macOS/FIRAppDelegate.m | 35 + Example/Storage/App/macOS/FIRViewController.h | 23 + Example/Storage/App/macOS/FIRViewController.m | 35 + Example/Storage/App/macOS/Storage-Info.plist | 32 + Example/Storage/App/macOS/main.m | 21 + Example/Storage/App/main.m | 23 - Firebase/Auth/FirebaseAuth.podspec | 9 + .../AuthProviders/Phone/FIRPhoneAuthCredential.m | 1 - Firebase/Auth/Source/FIRAuth.h | 9 +- Firebase/Auth/Source/FIRAuth.m | 37 +- Firebase/Auth/Source/FIRUser.h | 2 + Firebase/Auth/Source/FIRUser.m | 11 +- Firebase/Auth/Source/Private/FIRAuth_Internal.h | 4 + Firebase/Auth/Source/RPCs/FIRAuthBackend.h | 4 + Firebase/Auth/Source/RPCs/FIRAuthBackend.m | 9 +- Firebase/Core/FIRApp.h | 1 - Firebase/Core/FIRAppEnvironmentUtil.m | 28 +- Firebase/Core/FIRNetworkURLSession.m | 23 +- Firebase/Core/FIRReachabilityChecker.m | 8 + Firebase/Core/FirebaseCore.podspec | 1 + Firebase/Core/Private/FIRAppEnvironmentUtil.h | 9 + Firebase/Core/Private/FIRLogger.h | 2 +- Firebase/Database/Core/FPersistentConnection.m | 6 +- Firebase/Database/Core/FRepo.m | 6 +- Firebase/Database/FirebaseDatabase.podspec | 1 + .../Database/Persistence/FLevelDBStorageEngine.m | 6 +- Firebase/Database/Realtime/FWebSocketConnection.m | 4 +- .../third_party/SocketRocket/FSRWebSocket.m | 6 +- Firebase/Storage/FIRStorageUtils.m | 6 +- Firebase/Storage/FirebaseStorage.podspec | 4 +- FirebaseDev.podspec | 13 +- test.sh | 68 +- 184 files changed, 12107 insertions(+), 3643 deletions(-) create mode 100644 BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme create mode 100644 BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme create mode 100644 BuildFrameworks/iOS-Info.plist create mode 100644 BuildFrameworks/macOS-Info.plist delete mode 100644 Example/Auth/App/Auth-Info.plist delete mode 100644 Example/Auth/App/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/Auth/App/Base.lproj/Main.storyboard delete mode 100644 Example/Auth/App/FIRAppDelegate.h delete mode 100644 Example/Auth/App/FIRAppDelegate.m delete mode 100644 Example/Auth/App/FIRViewController.h delete mode 100644 Example/Auth/App/FIRViewController.m create mode 100644 Example/Auth/App/iOS/Auth-Info.plist create mode 100644 Example/Auth/App/iOS/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Auth/App/iOS/Base.lproj/Main.storyboard create mode 100644 Example/Auth/App/iOS/FIRAppDelegate.h create mode 100644 Example/Auth/App/iOS/FIRAppDelegate.m create mode 100644 Example/Auth/App/iOS/FIRViewController.h create mode 100644 Example/Auth/App/iOS/FIRViewController.m create mode 100644 Example/Auth/App/iOS/main.m create mode 100644 Example/Auth/App/macOS/Auth-Info.plist create mode 100644 Example/Auth/App/macOS/Base.lproj/Main.storyboard create mode 100644 Example/Auth/App/macOS/FIRAppDelegate.h create mode 100644 Example/Auth/App/macOS/FIRAppDelegate.m create mode 100644 Example/Auth/App/macOS/FIRViewController.h create mode 100644 Example/Auth/App/macOS/FIRViewController.m create mode 100644 Example/Auth/App/macOS/main.m delete mode 100644 Example/Auth/App/main.m delete mode 100644 Example/Core/App/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/Core/App/Base.lproj/Main.storyboard delete mode 100644 Example/Core/App/Core-Info.plist delete mode 100644 Example/Core/App/FIRAppDelegate.h delete mode 100644 Example/Core/App/FIRAppDelegate.m delete mode 100644 Example/Core/App/FIRViewController.h delete mode 100644 Example/Core/App/FIRViewController.m create mode 100644 Example/Core/App/iOS/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Core/App/iOS/Base.lproj/Main.storyboard create mode 100644 Example/Core/App/iOS/Core-Info.plist create mode 100644 Example/Core/App/iOS/FIRAppDelegate.h create mode 100644 Example/Core/App/iOS/FIRAppDelegate.m create mode 100644 Example/Core/App/iOS/FIRViewController.h create mode 100644 Example/Core/App/iOS/FIRViewController.m create mode 100644 Example/Core/App/iOS/main.m create mode 100644 Example/Core/App/macOS/Base.lproj/Main.storyboard create mode 100644 Example/Core/App/macOS/Core-Info.plist create mode 100644 Example/Core/App/macOS/FIRAppDelegate.h create mode 100644 Example/Core/App/macOS/FIRAppDelegate.m create mode 100644 Example/Core/App/macOS/FIRViewController.h create mode 100644 Example/Core/App/macOS/FIRViewController.m create mode 100644 Example/Core/App/macOS/main.m delete mode 100644 Example/Core/App/main.m delete mode 100644 Example/Database/App/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/Database/App/Base.lproj/Main.storyboard delete mode 100644 Example/Database/App/Database-Info.plist delete mode 100644 Example/Database/App/FIRAppDelegate.h delete mode 100644 Example/Database/App/FIRAppDelegate.m delete mode 100644 Example/Database/App/FIRViewController.h delete mode 100644 Example/Database/App/FIRViewController.m create mode 100644 Example/Database/App/iOS/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Database/App/iOS/Base.lproj/Main.storyboard create mode 100644 Example/Database/App/iOS/Database-Info.plist create mode 100644 Example/Database/App/iOS/FIRAppDelegate.h create mode 100644 Example/Database/App/iOS/FIRAppDelegate.m create mode 100644 Example/Database/App/iOS/FIRViewController.h create mode 100644 Example/Database/App/iOS/FIRViewController.m create mode 100644 Example/Database/App/iOS/main.m create mode 100644 Example/Database/App/macOS/Base.lproj/Main.storyboard create mode 100644 Example/Database/App/macOS/Database-Info.plist create mode 100644 Example/Database/App/macOS/FIRAppDelegate.h create mode 100644 Example/Database/App/macOS/FIRAppDelegate.m create mode 100644 Example/Database/App/macOS/FIRViewController.h create mode 100644 Example/Database/App/macOS/FIRViewController.m create mode 100644 Example/Database/App/macOS/main.m delete mode 100644 Example/Database/App/main.m delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_macOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_macOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_macOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example_iOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_macOS.xcscheme delete mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_iOS.xcscheme create mode 100644 Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_macOS.xcscheme delete mode 100644 Example/Messaging/App/AppDelegate.swift delete mode 100644 Example/Messaging/App/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/Messaging/App/Base.lproj/Main.storyboard delete mode 100644 Example/Messaging/App/Data+MessagingExtensions.swift delete mode 100644 Example/Messaging/App/Environment.swift delete mode 100644 Example/Messaging/App/Messaging-Info.plist delete mode 100644 Example/Messaging/App/MessagingViewController.swift delete mode 100644 Example/Messaging/App/Messaging_Example.entitlements delete mode 100644 Example/Messaging/App/NotificationsController.swift create mode 100644 Example/Messaging/App/iOS/AppDelegate.swift create mode 100644 Example/Messaging/App/iOS/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Messaging/App/iOS/Base.lproj/Main.storyboard create mode 100644 Example/Messaging/App/iOS/Data+MessagingExtensions.swift create mode 100644 Example/Messaging/App/iOS/Environment.swift create mode 100644 Example/Messaging/App/iOS/Messaging-Info.plist create mode 100644 Example/Messaging/App/iOS/MessagingViewController.swift create mode 100644 Example/Messaging/App/iOS/Messaging_Example.entitlements create mode 100644 Example/Messaging/App/iOS/NotificationsController.swift create mode 100644 Example/Shared/Shared.xcassets/AppIcon.appiconset/Icon-Mac-128.png delete mode 100644 Example/Storage/App/Base.lproj/LaunchScreen.storyboard delete mode 100644 Example/Storage/App/Base.lproj/Main.storyboard delete mode 100644 Example/Storage/App/FIRAppDelegate.h delete mode 100644 Example/Storage/App/FIRAppDelegate.m delete mode 100644 Example/Storage/App/FIRViewController.h delete mode 100644 Example/Storage/App/FIRViewController.m delete mode 100644 Example/Storage/App/Storage-Info.plist create mode 100644 Example/Storage/App/iOS/Base.lproj/LaunchScreen.storyboard create mode 100644 Example/Storage/App/iOS/Base.lproj/Main.storyboard create mode 100644 Example/Storage/App/iOS/FIRAppDelegate.h create mode 100644 Example/Storage/App/iOS/FIRAppDelegate.m create mode 100644 Example/Storage/App/iOS/FIRViewController.h create mode 100644 Example/Storage/App/iOS/FIRViewController.m create mode 100644 Example/Storage/App/iOS/Storage-Info.plist create mode 100644 Example/Storage/App/iOS/main.m create mode 100644 Example/Storage/App/macOS/Base.lproj/Main.storyboard create mode 100644 Example/Storage/App/macOS/FIRAppDelegate.h create mode 100644 Example/Storage/App/macOS/FIRAppDelegate.m create mode 100644 Example/Storage/App/macOS/FIRViewController.h create mode 100644 Example/Storage/App/macOS/FIRViewController.m create mode 100644 Example/Storage/App/macOS/Storage-Info.plist create mode 100644 Example/Storage/App/macOS/main.m delete mode 100644 Example/Storage/App/main.m diff --git a/.travis.yml b/.travis.yml index 1b8f95a..f528828 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ language: objective-c cache: - bundler - cocoapods -podfile: Example/Podfile rvm: 2.3.1 before_install: @@ -12,6 +11,6 @@ before_install: - gem install xcpretty - pod install --project-directory=Example --repo-update -script: +script: - ./test.sh - pod lib lint FirebaseDev.podspec diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj b/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj index a66077c..0c77c76 100644 --- a/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj +++ b/BuildFrameworks/FrameworkMaker.xcodeproj/project.pbxproj @@ -7,14 +7,24 @@ objects = { /* Begin PBXBuildFile section */ - C8F75C1E8772455450E51C69 /* libPods-FrameworkMaker.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */; }; + 03BED32F297D77A489B80DBA /* libPods-FrameworkMaker_macOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */; }; + 621808027FC20B1A1B769E50 /* libPods-FrameworkMaker_iOS.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ 01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker.release.xcconfig"; sourceTree = ""; }; - 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS.release.xcconfig"; sourceTree = ""; }; + 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; 1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS.debug.xcconfig"; sourceTree = ""; }; + 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker_macOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FrameworkMaker_iOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS.debug.xcconfig"; sourceTree = ""; }; C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker.debug.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker.debug.xcconfig"; sourceTree = ""; }; + D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FrameworkMaker_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D013FA131ED9EC0B00FD68A9 /* iOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "iOS-Info.plist"; sourceTree = ""; }; + D013FA141ED9EC1500FD68A9 /* macOS-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "macOS-Info.plist"; sourceTree = ""; }; + DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FrameworkMaker_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -22,7 +32,15 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C8F75C1E8772455450E51C69 /* libPods-FrameworkMaker.a in Frameworks */, + 621808027FC20B1A1B769E50 /* libPods-FrameworkMaker_iOS.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D013F9FC1ED9EB9900FD68A9 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 03BED32F297D77A489B80DBA /* libPods-FrameworkMaker_macOS.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -32,6 +50,8 @@ 05A46BCE1CC9B2BE007BDB33 = { isa = PBXGroup; children = ( + D013FA131ED9EC0B00FD68A9 /* iOS-Info.plist */, + D013FA141ED9EC1500FD68A9 /* macOS-Info.plist */, 05A46BD81CC9B2BE007BDB33 /* Products */, AA03828B8B59297B5A3389B0 /* Pods */, D3884AD1918E82D7FD21433D /* Frameworks */, @@ -41,7 +61,8 @@ 05A46BD81CC9B2BE007BDB33 /* Products */ = { isa = PBXGroup; children = ( - 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */, + 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */, + D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */, ); name = Products; sourceTree = ""; @@ -51,6 +72,10 @@ children = ( C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */, 01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */, + 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */, + 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */, + B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */, + DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */, ); name = Pods; sourceTree = ""; @@ -59,6 +84,8 @@ isa = PBXGroup; children = ( 1D25AC01A0F56F8BC5375DD2 /* libPods-FrameworkMaker.a */, + AB2E4F8834D5EA87A8F7124C /* libPods-FrameworkMaker_iOS.a */, + 93482F41CCA683759459AC1E /* libPods-FrameworkMaker_macOS.a */, ); name = Frameworks; sourceTree = ""; @@ -66,9 +93,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker */ = { + 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker" */; + buildConfigurationList = 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker_iOS" */; buildPhases = ( AC1C2B143A86214CE77C9932 /* [CP] Check Pods Manifest.lock */, 05A46BD31CC9B2BE007BDB33 /* Sources */, @@ -81,9 +108,29 @@ ); dependencies = ( ); - name = FrameworkMaker; + name = FrameworkMaker_iOS; productName = FrameworkMaker; - productReference = 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker.app */; + productReference = 05A46BD71CC9B2BE007BDB33 /* FrameworkMaker_iOS.app */; + productType = "com.apple.product-type.application"; + }; + D013F9FE1ED9EB9900FD68A9 /* FrameworkMaker_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D013FA121ED9EB9900FD68A9 /* Build configuration list for PBXNativeTarget "FrameworkMaker_macOS" */; + buildPhases = ( + 76A7EF97A6A2306CED685487 /* [CP] Check Pods Manifest.lock */, + D013F9FB1ED9EB9900FD68A9 /* Sources */, + D013F9FC1ED9EB9900FD68A9 /* Frameworks */, + D013F9FD1ED9EB9900FD68A9 /* Resources */, + 83F5D2024D97A1D542B7932F /* [CP] Embed Pods Frameworks */, + C712E44DB1FAE1B023552B35 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = FrameworkMaker_macOS; + productName = FrameworkMaker_macOS; + productReference = D013F9FF1ED9EB9900FD68A9 /* FrameworkMaker_macOS.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ @@ -98,6 +145,10 @@ 05A46BD61CC9B2BE007BDB33 = { CreatedOnToolsVersion = 7.3; }; + D013F9FE1ED9EB9900FD68A9 = { + CreatedOnToolsVersion = 8.3.2; + ProvisioningStyle = Automatic; + }; }; }; buildConfigurationList = 05A46BD21CC9B2BE007BDB33 /* Build configuration list for PBXProject "FrameworkMaker" */; @@ -113,7 +164,8 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker */, + 05A46BD61CC9B2BE007BDB33 /* FrameworkMaker_iOS */, + D013F9FE1ED9EB9900FD68A9 /* FrameworkMaker_macOS */, ); }; /* End PBXProject section */ @@ -126,6 +178,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D013F9FD1ED9EB9900FD68A9 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -141,7 +200,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; 5040608D1004852F08A22A14 /* [CP] Copy Pods Resources */ = { @@ -156,7 +215,37 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker/Pods-FrameworkMaker-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_iOS/Pods-FrameworkMaker_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 76A7EF97A6A2306CED685487 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + 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"; + showEnvVarsInLog = 0; + }; + 83F5D2024D97A1D542B7932F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; AC1C2B143A86214CE77C9932 /* [CP] Check Pods Manifest.lock */ = { @@ -174,6 +263,21 @@ 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"; showEnvVarsInLog = 0; }; + C712E44DB1FAE1B023552B35 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-FrameworkMaker_macOS/Pods-FrameworkMaker_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -184,6 +288,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + D013F9FB1ED9EB9900FD68A9 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -224,7 +335,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -262,7 +374,8 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.3; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; VALIDATE_PRODUCT = YES; @@ -271,25 +384,61 @@ }; 05A46BEF1CC9B2BE007BDB33 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C8DA4EE8A169B227B0576C02 /* Pods-FrameworkMaker.debug.xcconfig */; + baseConfigurationReference = 5BDF11E206B3015647181AB8 /* Pods-FrameworkMaker_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = FrameworkMaker/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/iOS-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = google.FrameworkMaker; + PRODUCT_BUNDLE_IDENTIFIER = "google.FrameworkMaker-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; 05A46BF01CC9B2BE007BDB33 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 01F29B956E7F6E45EF34DE72 /* Pods-FrameworkMaker.release.xcconfig */; + baseConfigurationReference = 04058317A2F1A863FB91F84F /* Pods-FrameworkMaker_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - INFOPLIST_FILE = FrameworkMaker/Info.plist; + INFOPLIST_FILE = "$(SRCROOT)/iOS-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = google.FrameworkMaker; + PRODUCT_BUNDLE_IDENTIFIER = "google.FrameworkMaker-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + D013FA101ED9EB9900FD68A9 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B9CD818DD62BFDAC11008E2A /* Pods-FrameworkMaker_macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "$(SRCROOT)/macOS-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.FrameworkMaker-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D013FA111ED9EB9900FD68A9 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DD9F6D0B1597A9F327565EDE /* Pods-FrameworkMaker_macOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = "$(SRCROOT)/macOS-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.FrameworkMaker-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; }; name = Release; }; @@ -305,7 +454,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker" */ = { + 05A46BEE1CC9B2BE007BDB33 /* Build configuration list for PBXNativeTarget "FrameworkMaker_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 05A46BEF1CC9B2BE007BDB33 /* Debug */, @@ -314,6 +463,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + D013FA121ED9EB9900FD68A9 /* Build configuration list for PBXNativeTarget "FrameworkMaker_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D013FA101ED9EB9900FD68A9 /* Debug */, + D013FA111ED9EB9900FD68A9 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 05A46BCF1CC9B2BE007BDB33 /* Project object */; diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme new file mode 100644 index 0000000..2994deb --- /dev/null +++ b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_iOS.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme new file mode 100644 index 0000000..dbe6579 --- /dev/null +++ b/BuildFrameworks/FrameworkMaker.xcodeproj/xcshareddata/xcschemes/FrameworkMaker_macOS.xcscheme @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BuildFrameworks/Podfile b/BuildFrameworks/Podfile index e7bf344..1c44028 100644 --- a/BuildFrameworks/Podfile +++ b/BuildFrameworks/Podfile @@ -1,8 +1,8 @@ -platform :ios, '7.0' - project 'FrameworkMaker.xcodeproj' -target 'FrameworkMaker' do +target 'FrameworkMaker_iOS' do + platform :ios, '7.0' + pod 'FirebaseAuth', :path => '../Firebase/Auth' pod 'FirebaseCore', :path => '../Firebase/Core' pod 'FirebaseDatabase', :path => '../Firebase/Database' @@ -10,3 +10,11 @@ target 'FrameworkMaker' do pod 'FirebaseStorage', :path => '../Firebase/Storage' end +target 'FrameworkMaker_macOS' do + platform :osx, '10.10' + + pod 'FirebaseAuth', :path => '../Firebase/Auth' + pod 'FirebaseCore', :path => '../Firebase/Core' + pod 'FirebaseDatabase', :path => '../Firebase/Database' + pod 'FirebaseStorage', :path => '../Firebase/Storage' +end diff --git a/BuildFrameworks/build.swift b/BuildFrameworks/build.swift index 7bcda2f..8721ca6 100755 --- a/BuildFrameworks/build.swift +++ b/BuildFrameworks/build.swift @@ -33,11 +33,20 @@ func colorPrint(color: Colors, text: String) { print(color.rawValue + text + "\u{001B}[0;0m") } -let allFrameworks = ["FirebaseAuth", - "FirebaseCore", - "FirebaseDatabase", - "FirebaseMessaging", - "FirebaseStorage"] +enum Platform: String { + case iOS + case macOS + case tvOS + case watchOS +} + +let allFrameworks: [String: [Platform]] = [ + "FirebaseAuth": [.iOS, .macOS], + "FirebaseCore": [.iOS, .macOS], + "FirebaseDatabase": [.iOS, .macOS], + "FirebaseMessaging": [.iOS], + "FirebaseStorage": [.iOS, .macOS] +] let currentDirectoryURL = URL(fileURLWithPath: FileManager.default.currentDirectoryPath) let url = URL(fileURLWithPath: CommandLine.arguments[0], relativeTo: currentDirectoryURL) @@ -63,7 +72,7 @@ func processOptions() -> [String] { colorPrint(color:Colors.red, text:"-all must be a solo option") usage() } - doFrameworks = allFrameworks + doFrameworks = Array(allFrameworks.keys) break whileLoop case "-f": optIndex += 1 @@ -72,7 +81,7 @@ func processOptions() -> [String] { usage() } let framework = CommandLine.arguments[optIndex] - guard allFrameworks.contains(framework) else { + guard allFrameworks.keys.contains(framework) else { colorPrint(color:Colors.red, text:"\(framework) is not a valid framework") usage() } @@ -110,17 +119,28 @@ func syncExec(command: String, args: [String] = []) { } } -func buildThin(framework: String, arch: String, sdk: String, parentDir: String) -> [String] { +func buildThin(framework: String, multiplatform: Bool, arch: String, multisdk: Bool, sdk: String, parentDir: String) -> [String] { + let schemeSuffix: String + if !multiplatform { + schemeSuffix = "" + } else if sdk.hasPrefix("mac") { + schemeSuffix = "-OSX" + } else if sdk.hasPrefix("iphone") { + schemeSuffix = "-iOS" + } else { + fatalError("TODO: tvOS/watchOS") + } + let buildDir = parentDir + "/" + arch let standardOptions = [ "build", "-configuration", "release", "-workspace", "FrameworkMaker.xcworkspace", - "-scheme", framework, + "-scheme", framework + schemeSuffix, "GCC_GENERATE_DEBUGGING_SYMBOLS=No"] let bitcode = (sdk == "iphoneos") ? ["OTHER_CFLAGS=\"" + "-fembed-bitcode\""] : [] let args = standardOptions + ["ARCHS=" + arch, "BUILD_DIR=" + buildDir, "-sdk", sdk] + bitcode syncExec(command:"/usr/bin/xcodebuild", args:args) - return [buildDir + "/Release-" + sdk + "/" + framework + "/lib" + framework + ".a"] + return [buildDir + "/Release" + (multisdk ? "-\(sdk)" : "") + "/" + framework + schemeSuffix + "/lib" + framework + schemeSuffix + ".a"] } func createFile(file: String, content: String) { @@ -144,15 +164,21 @@ func makeModuleMap(framework: String, dir: String) { createFile(file:moduleFile, content:content) } -func buildFramework(withName framework: String, outputDir: String) { +func buildFramework(withName framework: String, multiplatform: Bool, platform: Platform, outputDir: String) { let buildDir = tempDir() var thinArchives = [String]() - thinArchives += buildThin(framework:framework, arch:"arm64", sdk:"iphoneos", parentDir:buildDir) - thinArchives += buildThin(framework:framework, arch:"armv7", sdk:"iphoneos", parentDir:buildDir) - thinArchives += buildThin(framework:framework, arch:"i386", sdk:"iphonesimulator", parentDir:buildDir) - thinArchives += buildThin(framework:framework, arch:"x86_64", sdk:"iphonesimulator", parentDir:buildDir) + switch platform { + case .iOS: + thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"arm64", multisdk: true, sdk:"iphoneos", parentDir:buildDir) + thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"armv7", multisdk: true, sdk:"iphoneos", parentDir:buildDir) + thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"i386", multisdk: true, sdk:"iphonesimulator", parentDir:buildDir) + thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"x86_64", multisdk: true, sdk:"iphonesimulator", parentDir:buildDir) + case .macOS: + thinArchives += buildThin(framework:framework, multiplatform: multiplatform, arch:"x86_64", multisdk: false, sdk:"macosx", parentDir:buildDir) + default: fatalError("TODO: tvOS/watchOS") + } - let frameworkDir = outputDir + "/" + framework + ".framework" + let frameworkDir = outputDir + "/" + framework + "_" + platform.rawValue + ".framework" syncExec(command:"/bin/mkdir", args:["-p", frameworkDir]) let fatArchive = frameworkDir + "/" + framework syncExec(command:"/usr/bin/lipo", args:["-create", "-output", fatArchive] + thinArchives) @@ -171,7 +197,10 @@ let outputDir = tempDir() syncExec(command:"/usr/local/bin/pod", args:["update"]) for f in frameworks { - buildFramework(withName:f, outputDir:outputDir) + let platforms = allFrameworks[f]! + for p in platforms { + buildFramework(withName:f, multiplatform:platforms.count > 1, platform:p, outputDir:outputDir) + } } print() diff --git a/BuildFrameworks/iOS-Info.plist b/BuildFrameworks/iOS-Info.plist new file mode 100644 index 0000000..7576a0d --- /dev/null +++ b/BuildFrameworks/iOS-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/BuildFrameworks/macOS-Info.plist b/BuildFrameworks/macOS-Info.plist new file mode 100644 index 0000000..c28dbc8 --- /dev/null +++ b/BuildFrameworks/macOS-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 Google, Inc. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Example/Auth/App/Auth-Info.plist b/Example/Auth/App/Auth-Info.plist deleted file mode 100644 index 7576a0d..0000000 --- a/Example/Auth/App/Auth-Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/Auth/App/Base.lproj/LaunchScreen.storyboard b/Example/Auth/App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 66a7681..0000000 --- a/Example/Auth/App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Auth/App/Base.lproj/Main.storyboard b/Example/Auth/App/Base.lproj/Main.storyboard deleted file mode 100644 index d164a23..0000000 --- a/Example/Auth/App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Auth/App/FIRAppDelegate.h b/Example/Auth/App/FIRAppDelegate.h deleted file mode 100644 index e3fba8f..0000000 --- a/Example/Auth/App/FIRAppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Example/Auth/App/FIRAppDelegate.m b/Example/Auth/App/FIRAppDelegate.m deleted file mode 100644 index 0ecfdea..0000000 --- a/Example/Auth/App/FIRAppDelegate.m +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRAppDelegate.h" - -@implementation FIRAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Example/Auth/App/FIRViewController.h b/Example/Auth/App/FIRViewController.h deleted file mode 100644 index 64b4b74..0000000 --- a/Example/Auth/App/FIRViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRViewController : UIViewController - -@end diff --git a/Example/Auth/App/FIRViewController.m b/Example/Auth/App/FIRViewController.m deleted file mode 100644 index 901accf..0000000 --- a/Example/Auth/App/FIRViewController.m +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRViewController.h" - -@interface FIRViewController () - -@end - -@implementation FIRViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Example/Auth/App/iOS/Auth-Info.plist b/Example/Auth/App/iOS/Auth-Info.plist new file mode 100644 index 0000000..7576a0d --- /dev/null +++ b/Example/Auth/App/iOS/Auth-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Auth/App/iOS/Base.lproj/LaunchScreen.storyboard b/Example/Auth/App/iOS/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..66a7681 --- /dev/null +++ b/Example/Auth/App/iOS/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Auth/App/iOS/Base.lproj/Main.storyboard b/Example/Auth/App/iOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..d164a23 --- /dev/null +++ b/Example/Auth/App/iOS/Base.lproj/Main.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Auth/App/iOS/FIRAppDelegate.h b/Example/Auth/App/iOS/FIRAppDelegate.h new file mode 100644 index 0000000..e3fba8f --- /dev/null +++ b/Example/Auth/App/iOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Example/Auth/App/iOS/FIRAppDelegate.m b/Example/Auth/App/iOS/FIRAppDelegate.m new file mode 100644 index 0000000..0ecfdea --- /dev/null +++ b/Example/Auth/App/iOS/FIRAppDelegate.m @@ -0,0 +1,52 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRAppDelegate.h" + +@implementation FIRAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Example/Auth/App/iOS/FIRViewController.h b/Example/Auth/App/iOS/FIRViewController.h new file mode 100644 index 0000000..64b4b74 --- /dev/null +++ b/Example/Auth/App/iOS/FIRViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRViewController : UIViewController + +@end diff --git a/Example/Auth/App/iOS/FIRViewController.m b/Example/Auth/App/iOS/FIRViewController.m new file mode 100644 index 0000000..901accf --- /dev/null +++ b/Example/Auth/App/iOS/FIRViewController.m @@ -0,0 +1,35 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRViewController.h" + +@interface FIRViewController () + +@end + +@implementation FIRViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/Example/Auth/App/iOS/main.m b/Example/Auth/App/iOS/main.m new file mode 100644 index 0000000..03b5c12 --- /dev/null +++ b/Example/Auth/App/iOS/main.m @@ -0,0 +1,23 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +@import UIKit; +#import "FIRAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); + } +} diff --git a/Example/Auth/App/macOS/Auth-Info.plist b/Example/Auth/App/macOS/Auth-Info.plist new file mode 100644 index 0000000..6f7d78e --- /dev/null +++ b/Example/Auth/App/macOS/Auth-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 Google. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Example/Auth/App/macOS/Base.lproj/Main.storyboard b/Example/Auth/App/macOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1cd523a --- /dev/null +++ b/Example/Auth/App/macOS/Base.lproj/Main.storyboard @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Auth/App/macOS/FIRAppDelegate.h b/Example/Auth/App/macOS/FIRAppDelegate.h new file mode 100644 index 0000000..e637ef9 --- /dev/null +++ b/Example/Auth/App/macOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRAppDelegate : NSObject + + +@end + diff --git a/Example/Auth/App/macOS/FIRAppDelegate.m b/Example/Auth/App/macOS/FIRAppDelegate.m new file mode 100644 index 0000000..9a363a6 --- /dev/null +++ b/Example/Auth/App/macOS/FIRAppDelegate.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRAppDelegate.h" + +@interface FIRAppDelegate () + +@end + +@implementation FIRAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application +} + + +- (void)applicationWillTerminate:(NSNotification *)aNotification { + // Insert code here to tear down your application +} + + +@end diff --git a/Example/Auth/App/macOS/FIRViewController.h b/Example/Auth/App/macOS/FIRViewController.h new file mode 100644 index 0000000..efee5d5 --- /dev/null +++ b/Example/Auth/App/macOS/FIRViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRViewController : NSViewController + + +@end + diff --git a/Example/Auth/App/macOS/FIRViewController.m b/Example/Auth/App/macOS/FIRViewController.m new file mode 100644 index 0000000..08c5bb5 --- /dev/null +++ b/Example/Auth/App/macOS/FIRViewController.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRViewController.h" + +@implementation FIRViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Do any additional setup after loading the view. +} + + +- (void)setRepresentedObject:(id)representedObject { + [super setRepresentedObject:representedObject]; + + // Update the view, if already loaded. +} + + +@end diff --git a/Example/Auth/App/macOS/main.m b/Example/Auth/App/macOS/main.m new file mode 100644 index 0000000..e8858a6 --- /dev/null +++ b/Example/Auth/App/macOS/main.m @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +int main(int argc, const char * argv[]) { + return NSApplicationMain(argc, argv); +} diff --git a/Example/Auth/App/main.m b/Example/Auth/App/main.m deleted file mode 100644 index 03b5c12..0000000 --- a/Example/Auth/App/main.m +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -@import UIKit; -#import "FIRAppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); - } -} diff --git a/Example/Auth/Tests/FIRAuthTests.m b/Example/Auth/Tests/FIRAuthTests.m index 93d6074..b8d04f5 100644 --- a/Example/Auth/Tests/FIRAuthTests.m +++ b/Example/Auth/Tests/FIRAuthTests.m @@ -20,7 +20,6 @@ #import "EmailPassword/FIREmailAuthProvider.h" #import "Google/FIRGoogleAuthProvider.h" #import "Phone/FIRPhoneAuthCredential.h" -#import "Phone/FIRPhoneAuthProvider.h" #import "FIRAdditionalUserInfo.h" #import "FIRAuth_Internal.h" #import "FIRAuthErrorUtils.h" @@ -54,6 +53,10 @@ #import "OCMStubRecorder+FIRAuthUnitTests.h" #import +#if TARGET_OS_IOS +#import "Phone/FIRPhoneAuthProvider.h" +#endif + /** @var kFirebaseAppName1 @brief A fake Firebase app name. */ @@ -99,10 +102,10 @@ static NSString *const kRefreshToken = @"REFRESH_TOKEN"; */ static NSString *const kEmail = @"user@company.com"; -/** @var kPassword +/** @var kFakePassword @brief The fake user password. */ -static NSString *const kPassword = @"!@#$%^"; +static NSString *const kFakePassword = @"!@#$%^"; /** @var kPasswordHash @brief The fake user password hash. @@ -408,6 +411,7 @@ static const NSTimeInterval kWaitInterval = .5; OCMVerifyAll(_mockBackend); } +#if TARGET_OS_IOS /** @fn testPhoneAuthSuccess @brief Tests the flow of a successful @c signInWithCredential:completion for phone auth. */ @@ -485,6 +489,7 @@ static const NSTimeInterval kWaitInterval = .5; }]; [self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil]; } +#endif /** @fn testSignInWithEmailPasswordSuccess @brief Tests the flow of a successful @c signInWithEmail:password:completion: call. @@ -495,7 +500,7 @@ static const NSTimeInterval kWaitInterval = .5; FIRVerifyPasswordResponseCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.email, kEmail); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertTrue(request.returnSecureToken); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { id mockVerifyPasswordResponse = OCMClassMock([FIRVerifyPasswordResponse class]); @@ -506,8 +511,8 @@ static const NSTimeInterval kWaitInterval = .5; [self expectGetAccountInfo]; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; - [[FIRAuth auth] signInWithEmail:kEmail password:kPassword completion:^(FIRUser *_Nullable user, - NSError *_Nullable error) { + [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user, + NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); [self assertUser:user]; XCTAssertNil(error); @@ -526,8 +531,8 @@ static const NSTimeInterval kWaitInterval = .5; .andDispatchError2([FIRAuthErrorUtils wrongPasswordErrorWithMessage:nil]); XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; - [[FIRAuth auth] signInWithEmail:kEmail password:kPassword completion:^(FIRUser *_Nullable user, - NSError *_Nullable error) { + [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user, + NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); XCTAssertNil(user); XCTAssertEqual(error.code, FIRAuthErrorCodeWrongPassword); @@ -764,7 +769,7 @@ static const NSTimeInterval kWaitInterval = .5; FIRVerifyPasswordResponseCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.email, kEmail); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertTrue(request.returnSecureToken); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { id mockVeriyPasswordResponse = OCMClassMock([FIRVerifyPasswordResponse class]); @@ -776,7 +781,7 @@ static const NSTimeInterval kWaitInterval = .5; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; FIRAuthCredential *emailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); @@ -799,7 +804,7 @@ static const NSTimeInterval kWaitInterval = .5; FIRVerifyPasswordResponseCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.email, kEmail); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertTrue(request.returnSecureToken); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { id mockVeriyPasswordResponse = OCMClassMock([FIRVerifyPasswordResponse class]); @@ -813,7 +818,7 @@ static const NSTimeInterval kWaitInterval = .5; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" FIRAuthCredential *emailCredential = - [FIREmailPasswordAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailPasswordAuthProvider credentialWithEmail:kEmail password:kFakePassword]; #pragma clang diagnostic pop [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { @@ -837,7 +842,7 @@ static const NSTimeInterval kWaitInterval = .5; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; FIRAuthCredential *emailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [[FIRAuth auth] signInWithCredential:emailCredential completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); @@ -1133,7 +1138,7 @@ static const NSTimeInterval kWaitInterval = .5; FIRSignupNewUserCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.email, kEmail); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertTrue(request.returnSecureToken); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { id mockSignUpNewUserResponse = OCMClassMock([FIRSignUpNewUserResponse class]); @@ -1145,7 +1150,7 @@ static const NSTimeInterval kWaitInterval = .5; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:kEmail - password:kPassword + password:kFakePassword completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); [self assertUser:user]; @@ -1167,7 +1172,7 @@ static const NSTimeInterval kWaitInterval = .5; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; [[FIRAuth auth] signOut:NULL]; [[FIRAuth auth] createUserWithEmail:kEmail - password:kPassword + password:kFakePassword completion:^(FIRUser *_Nullable user, NSError *_Nullable error) { XCTAssertTrue([NSThread isMainThread]); XCTAssertNil(user); @@ -1495,6 +1500,7 @@ static const NSTimeInterval kWaitInterval = .5; OCMVerifyAll(_mockBackend); } +#if TARGET_OS_IOS /** @fn testAutomaticTokenRefreshInvalidTokenFailure @brief Tests that app foreground notification triggers the scheduling of an automatic token refresh task. @@ -1530,6 +1536,7 @@ static const NSTimeInterval kWaitInterval = .5; XCTAssertEqualObjects(kNewAccessToken, [FIRAuth auth].currentUser.rawAccessToken); OCMVerifyAll(_mockBackend); } +#endif #pragma mark - Helpers @@ -1733,8 +1740,8 @@ static const NSTimeInterval kWaitInterval = .5; }); [self expectGetAccountInfo]; XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; - [[FIRAuth auth] signInWithEmail:kEmail password:kPassword completion:^(FIRUser *_Nullable user, - NSError *_Nullable error) { + [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user, + NSError *_Nullable error) { [expectation fulfill]; }]; [self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil]; diff --git a/Example/Auth/Tests/FIRUserTests.m b/Example/Auth/Tests/FIRUserTests.m index 5a4c00a..c90da44 100644 --- a/Example/Auth/Tests/FIRUserTests.m +++ b/Example/Auth/Tests/FIRUserTests.m @@ -20,7 +20,6 @@ #import "Facebook/FIRFacebookAuthProvider.h" #import "Google/FIRGoogleAuthProvider.h" #import "Phone/FIRPhoneAuthCredential_Internal.h" -#import "Phone/FIRPhoneAuthProvider.h" #import "FIRAdditionalUserInfo.h" #import "FIRAuth.h" #import "FIRAuthErrorUtils.h" @@ -42,6 +41,10 @@ #import "OCMStubRecorder+FIRAuthUnitTests.h" #import +#if TARGET_OS_IOS +#import "Phone/FIRPhoneAuthProvider.h" +#endif + NS_ASSUME_NONNULL_BEGIN /** @var kAPIKey @@ -139,10 +142,10 @@ static NSString *const kPhotoURL = @"https://host.domain/image"; */ static NSString *const kNewPhotoURL = @"https://host.domain/new/image"; -/** @var kPassword +/** @var kFakePassword @brief The fake user password. */ -static NSString *const kPassword = @"123456"; +static NSString *const kFakePassword = @"123456"; /** @var kNewPassword @brief The fake new user password. @@ -276,10 +279,12 @@ static const NSTimeInterval kExpectationTimeout = 1; OCMStub([mockFacebookUserInfo federatedID]).andReturn(kFacebookID); OCMStub([mockFacebookUserInfo email]).andReturn(kFacebookEmail); + #if TARGET_OS_IOS // Mock auth provider user info from Phone auth provider for GetAccountInfo. id mockPhoneUserInfo = OCMClassMock([FIRGetAccountInfoResponseProviderUserInfo class]); OCMStub([mockPhoneUserInfo providerID]).andReturn(FIRPhoneAuthProviderID); OCMStub([mockPhoneUserInfo phoneNumber]).andReturn(kPhoneNumber); + #endif // Mock the root user info object for GetAccountInfo. id mockGetAccountInfoResponseUser = OCMClassMock([FIRGetAccountInfoResponseUser class]); @@ -288,11 +293,15 @@ static const NSTimeInterval kExpectationTimeout = 1; OCMStub([mockGetAccountInfoResponseUser emailVerified]).andReturn(YES); OCMStub([mockGetAccountInfoResponseUser displayName]).andReturn(kGoogleDisplayName); OCMStub([mockGetAccountInfoResponseUser photoURL]).andReturn([NSURL URLWithString:kPhotoURL]); - OCMStub([mockGetAccountInfoResponseUser providerUserInfo]) - .andReturn((@[ mockPasswordUserInfo, - mockGoogleUserInfo, - mockFacebookUserInfo, - mockPhoneUserInfo ])); + NSArray *providerUserInfos = @[ + #if TARGET_OS_IOS + mockPhoneUserInfo, + #endif + mockPasswordUserInfo, + mockGoogleUserInfo, + mockFacebookUserInfo + ]; + OCMStub([mockGetAccountInfoResponseUser providerUserInfo]).andReturn(providerUserInfos); OCMStub([mockGetAccountInfoResponseUser passwordHash]).andReturn(kPasswordHash); XCTestExpectation *expectation = [self expectationWithDescription:@"callback"]; @@ -309,7 +318,7 @@ static const NSTimeInterval kExpectationTimeout = 1; XCTAssertFalse(user.anonymous); XCTAssertTrue(user.emailVerified); XCTAssertEqualObjects(user.refreshToken, kRefreshToken); - XCTAssertEqual(user.providerData.count, 4u); + XCTAssertEqual(user.providerData.count, providerUserInfos.count); NSDictionary> *providerMap = [self dictionaryWithUserInfoArray:user.providerData]; @@ -338,10 +347,12 @@ static const NSTimeInterval kExpectationTimeout = 1; XCTAssertNil(facebookUserInfo.photoURL); XCTAssertEqualObjects(facebookUserInfo.email, kFacebookEmail); + #if TARGET_OS_IOS // Verify FIRUserInfo properties from the phone auth provider. id phoneUserInfo = providerMap[FIRPhoneAuthProviderID]; XCTAssertNotNil(phoneUserInfo); XCTAssertEqualObjects(phoneUserInfo.phoneNumber, kPhoneNumber); + #endif [expectation fulfill]; }]; @@ -425,6 +436,7 @@ static const NSTimeInterval kExpectationTimeout = 1; OCMVerifyAll(_mockBackend); } +#if TARGET_OS_IOS /** @fn testUpdatePhoneSuccess @brief Tests the flow of a successful @c updatePhoneNumberCredential:completion: call. */ @@ -487,6 +499,7 @@ static const NSTimeInterval kExpectationTimeout = 1; [self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil]; OCMVerifyAll(_mockBackend); } +#endif /** @fn testUpdatePasswordSuccess @brief Tests the flow of a successful @c updatePassword:completion: call. @@ -737,7 +750,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); }); FIRAuthCredential *emailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [user reauthenticateWithCredential:emailCredential completion:^(NSError *_Nullable error) { XCTAssertNil(error); // Verify that the current user is unchanged. @@ -851,7 +864,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); }); FIRAuthCredential *emailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [user reauthenticateWithCredential:emailCredential completion:^(NSError *_Nullable error) { // Verify user mismatch error. XCTAssertEqual(error.code, FIRAuthErrorCodeUserMismatch); @@ -1087,7 +1100,7 @@ static const NSTimeInterval kExpectationTimeout = 1; FIRSetAccountInfoResponseCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.accessToken, kAccessToken); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertNil(request.localID); XCTAssertNil(request.displayName); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { @@ -1097,7 +1110,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); FIRAuthCredential *linkEmailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [authResult.user linkAndRetrieveDataWithCredential:linkEmailCredential completion:^(FIRAuthDataResult *_Nullable linkAuthResult, @@ -1154,7 +1167,7 @@ static const NSTimeInterval kExpectationTimeout = 1; FIRSetAccountInfoResponseCallback callback) { XCTAssertEqualObjects(request.APIKey, kAPIKey); XCTAssertEqualObjects(request.accessToken, kAccessToken); - XCTAssertEqualObjects(request.password, kPassword); + XCTAssertEqualObjects(request.password, kFakePassword); XCTAssertNil(request.localID); XCTAssertNil(request.displayName); dispatch_async(FIRAuthGlobalWorkQueue(), ^() { @@ -1164,7 +1177,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); FIRAuthCredential *linkEmailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [authResult.user linkAndRetrieveDataWithCredential:linkEmailCredential completion:^(FIRAuthDataResult *_Nullable linkAuthResult, @@ -1226,7 +1239,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); FIRAuthCredential *linkEmailCredential = - [FIREmailAuthProvider credentialWithEmail:kEmail password:kPassword]; + [FIREmailAuthProvider credentialWithEmail:kEmail password:kFakePassword]; [authResult.user linkAndRetrieveDataWithCredential:linkEmailCredential completion:^(FIRAuthDataResult *_Nullable linkAuthResult, @@ -1378,6 +1391,7 @@ static const NSTimeInterval kExpectationTimeout = 1; OCMVerifyAll(_mockBackend); } +#if TARGET_OS_IOS /** @fn testlinkPhoneAuthCredentialSuccess @brief Tests the flow of a successful @c linkAndRetrieveDataWithCredential:completion: call using a phoneAuthCredential. @@ -1593,6 +1607,7 @@ static const NSTimeInterval kExpectationTimeout = 1; [self waitForExpectationsWithTimeout:kExpectationTimeout handler:nil]; OCMVerifyAll(_mockBackend); } +#endif #pragma mark - Helpers @@ -1618,8 +1633,8 @@ static const NSTimeInterval kExpectationTimeout = 1; }); [self expectGetAccountInfoWithMockUserInfoResponse:mockUserInfoResponse]; [[FIRAuth auth] signOut:NULL]; - [[FIRAuth auth] signInWithEmail:kEmail password:kPassword completion:^(FIRUser *_Nullable user, - NSError *_Nullable error) { + [[FIRAuth auth] signInWithEmail:kEmail password:kFakePassword completion:^(FIRUser *_Nullable user, + NSError *_Nullable error) { XCTAssertNotNil(user); XCTAssertNil(error); completion(user); @@ -1770,6 +1785,7 @@ static const NSTimeInterval kExpectationTimeout = 1; [self expectGetAccountInfo:providerId federatedID:federatedID displayName:displayName]; } +#if TARGET_OS_IOS /** @fn expectVerifyPhoneNumberRequestWithPhoneNumber:error: @brief Expects a verify phone numner request on the mock backend and calls back with fake account data or an error. @@ -1795,6 +1811,7 @@ static const NSTimeInterval kExpectationTimeout = 1; }); }); } +#endif @end diff --git a/Example/Core/App/Base.lproj/LaunchScreen.storyboard b/Example/Core/App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 66a7681..0000000 --- a/Example/Core/App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Core/App/Base.lproj/Main.storyboard b/Example/Core/App/Base.lproj/Main.storyboard deleted file mode 100644 index d164a23..0000000 --- a/Example/Core/App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Core/App/Core-Info.plist b/Example/Core/App/Core-Info.plist deleted file mode 100644 index 7576a0d..0000000 --- a/Example/Core/App/Core-Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/Core/App/FIRAppDelegate.h b/Example/Core/App/FIRAppDelegate.h deleted file mode 100644 index e3fba8f..0000000 --- a/Example/Core/App/FIRAppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Example/Core/App/FIRAppDelegate.m b/Example/Core/App/FIRAppDelegate.m deleted file mode 100644 index 0ecfdea..0000000 --- a/Example/Core/App/FIRAppDelegate.m +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRAppDelegate.h" - -@implementation FIRAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Example/Core/App/FIRViewController.h b/Example/Core/App/FIRViewController.h deleted file mode 100644 index 64b4b74..0000000 --- a/Example/Core/App/FIRViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRViewController : UIViewController - -@end diff --git a/Example/Core/App/FIRViewController.m b/Example/Core/App/FIRViewController.m deleted file mode 100644 index 901accf..0000000 --- a/Example/Core/App/FIRViewController.m +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRViewController.h" - -@interface FIRViewController () - -@end - -@implementation FIRViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Example/Core/App/iOS/Base.lproj/LaunchScreen.storyboard b/Example/Core/App/iOS/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..66a7681 --- /dev/null +++ b/Example/Core/App/iOS/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Core/App/iOS/Base.lproj/Main.storyboard b/Example/Core/App/iOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..d164a23 --- /dev/null +++ b/Example/Core/App/iOS/Base.lproj/Main.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Core/App/iOS/Core-Info.plist b/Example/Core/App/iOS/Core-Info.plist new file mode 100644 index 0000000..7576a0d --- /dev/null +++ b/Example/Core/App/iOS/Core-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Core/App/iOS/FIRAppDelegate.h b/Example/Core/App/iOS/FIRAppDelegate.h new file mode 100644 index 0000000..e3fba8f --- /dev/null +++ b/Example/Core/App/iOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Example/Core/App/iOS/FIRAppDelegate.m b/Example/Core/App/iOS/FIRAppDelegate.m new file mode 100644 index 0000000..0ecfdea --- /dev/null +++ b/Example/Core/App/iOS/FIRAppDelegate.m @@ -0,0 +1,52 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRAppDelegate.h" + +@implementation FIRAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Example/Core/App/iOS/FIRViewController.h b/Example/Core/App/iOS/FIRViewController.h new file mode 100644 index 0000000..64b4b74 --- /dev/null +++ b/Example/Core/App/iOS/FIRViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRViewController : UIViewController + +@end diff --git a/Example/Core/App/iOS/FIRViewController.m b/Example/Core/App/iOS/FIRViewController.m new file mode 100644 index 0000000..901accf --- /dev/null +++ b/Example/Core/App/iOS/FIRViewController.m @@ -0,0 +1,35 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRViewController.h" + +@interface FIRViewController () + +@end + +@implementation FIRViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/Example/Core/App/iOS/main.m b/Example/Core/App/iOS/main.m new file mode 100644 index 0000000..03b5c12 --- /dev/null +++ b/Example/Core/App/iOS/main.m @@ -0,0 +1,23 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +@import UIKit; +#import "FIRAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); + } +} diff --git a/Example/Core/App/macOS/Base.lproj/Main.storyboard b/Example/Core/App/macOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1cd523a --- /dev/null +++ b/Example/Core/App/macOS/Base.lproj/Main.storyboard @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Core/App/macOS/Core-Info.plist b/Example/Core/App/macOS/Core-Info.plist new file mode 100644 index 0000000..6f7d78e --- /dev/null +++ b/Example/Core/App/macOS/Core-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 Google. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Example/Core/App/macOS/FIRAppDelegate.h b/Example/Core/App/macOS/FIRAppDelegate.h new file mode 100644 index 0000000..e637ef9 --- /dev/null +++ b/Example/Core/App/macOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRAppDelegate : NSObject + + +@end + diff --git a/Example/Core/App/macOS/FIRAppDelegate.m b/Example/Core/App/macOS/FIRAppDelegate.m new file mode 100644 index 0000000..9a363a6 --- /dev/null +++ b/Example/Core/App/macOS/FIRAppDelegate.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRAppDelegate.h" + +@interface FIRAppDelegate () + +@end + +@implementation FIRAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application +} + + +- (void)applicationWillTerminate:(NSNotification *)aNotification { + // Insert code here to tear down your application +} + + +@end diff --git a/Example/Core/App/macOS/FIRViewController.h b/Example/Core/App/macOS/FIRViewController.h new file mode 100644 index 0000000..efee5d5 --- /dev/null +++ b/Example/Core/App/macOS/FIRViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRViewController : NSViewController + + +@end + diff --git a/Example/Core/App/macOS/FIRViewController.m b/Example/Core/App/macOS/FIRViewController.m new file mode 100644 index 0000000..08c5bb5 --- /dev/null +++ b/Example/Core/App/macOS/FIRViewController.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRViewController.h" + +@implementation FIRViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Do any additional setup after loading the view. +} + + +- (void)setRepresentedObject:(id)representedObject { + [super setRepresentedObject:representedObject]; + + // Update the view, if already loaded. +} + + +@end diff --git a/Example/Core/App/macOS/main.m b/Example/Core/App/macOS/main.m new file mode 100644 index 0000000..e8858a6 --- /dev/null +++ b/Example/Core/App/macOS/main.m @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +int main(int argc, const char * argv[]) { + return NSApplicationMain(argc, argv); +} diff --git a/Example/Core/App/main.m b/Example/Core/App/main.m deleted file mode 100644 index 03b5c12..0000000 --- a/Example/Core/App/main.m +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -@import UIKit; -#import "FIRAppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); - } -} diff --git a/Example/Database/App/Base.lproj/LaunchScreen.storyboard b/Example/Database/App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 66a7681..0000000 --- a/Example/Database/App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Database/App/Base.lproj/Main.storyboard b/Example/Database/App/Base.lproj/Main.storyboard deleted file mode 100644 index d164a23..0000000 --- a/Example/Database/App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Database/App/Database-Info.plist b/Example/Database/App/Database-Info.plist deleted file mode 100644 index 7576a0d..0000000 --- a/Example/Database/App/Database-Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/Database/App/FIRAppDelegate.h b/Example/Database/App/FIRAppDelegate.h deleted file mode 100644 index e3fba8f..0000000 --- a/Example/Database/App/FIRAppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Example/Database/App/FIRAppDelegate.m b/Example/Database/App/FIRAppDelegate.m deleted file mode 100644 index 0ecfdea..0000000 --- a/Example/Database/App/FIRAppDelegate.m +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRAppDelegate.h" - -@implementation FIRAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Example/Database/App/FIRViewController.h b/Example/Database/App/FIRViewController.h deleted file mode 100644 index 64b4b74..0000000 --- a/Example/Database/App/FIRViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRViewController : UIViewController - -@end diff --git a/Example/Database/App/FIRViewController.m b/Example/Database/App/FIRViewController.m deleted file mode 100644 index 901accf..0000000 --- a/Example/Database/App/FIRViewController.m +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRViewController.h" - -@interface FIRViewController () - -@end - -@implementation FIRViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Example/Database/App/iOS/Base.lproj/LaunchScreen.storyboard b/Example/Database/App/iOS/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..66a7681 --- /dev/null +++ b/Example/Database/App/iOS/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Database/App/iOS/Base.lproj/Main.storyboard b/Example/Database/App/iOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..d164a23 --- /dev/null +++ b/Example/Database/App/iOS/Base.lproj/Main.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Database/App/iOS/Database-Info.plist b/Example/Database/App/iOS/Database-Info.plist new file mode 100644 index 0000000..7576a0d --- /dev/null +++ b/Example/Database/App/iOS/Database-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Database/App/iOS/FIRAppDelegate.h b/Example/Database/App/iOS/FIRAppDelegate.h new file mode 100644 index 0000000..e3fba8f --- /dev/null +++ b/Example/Database/App/iOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Example/Database/App/iOS/FIRAppDelegate.m b/Example/Database/App/iOS/FIRAppDelegate.m new file mode 100644 index 0000000..0ecfdea --- /dev/null +++ b/Example/Database/App/iOS/FIRAppDelegate.m @@ -0,0 +1,52 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRAppDelegate.h" + +@implementation FIRAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Example/Database/App/iOS/FIRViewController.h b/Example/Database/App/iOS/FIRViewController.h new file mode 100644 index 0000000..64b4b74 --- /dev/null +++ b/Example/Database/App/iOS/FIRViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRViewController : UIViewController + +@end diff --git a/Example/Database/App/iOS/FIRViewController.m b/Example/Database/App/iOS/FIRViewController.m new file mode 100644 index 0000000..901accf --- /dev/null +++ b/Example/Database/App/iOS/FIRViewController.m @@ -0,0 +1,35 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRViewController.h" + +@interface FIRViewController () + +@end + +@implementation FIRViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/Example/Database/App/iOS/main.m b/Example/Database/App/iOS/main.m new file mode 100644 index 0000000..03b5c12 --- /dev/null +++ b/Example/Database/App/iOS/main.m @@ -0,0 +1,23 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +@import UIKit; +#import "FIRAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); + } +} diff --git a/Example/Database/App/macOS/Base.lproj/Main.storyboard b/Example/Database/App/macOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1cd523a --- /dev/null +++ b/Example/Database/App/macOS/Base.lproj/Main.storyboard @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Database/App/macOS/Database-Info.plist b/Example/Database/App/macOS/Database-Info.plist new file mode 100644 index 0000000..6f7d78e --- /dev/null +++ b/Example/Database/App/macOS/Database-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 Google. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Example/Database/App/macOS/FIRAppDelegate.h b/Example/Database/App/macOS/FIRAppDelegate.h new file mode 100644 index 0000000..e637ef9 --- /dev/null +++ b/Example/Database/App/macOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRAppDelegate : NSObject + + +@end + diff --git a/Example/Database/App/macOS/FIRAppDelegate.m b/Example/Database/App/macOS/FIRAppDelegate.m new file mode 100644 index 0000000..9a363a6 --- /dev/null +++ b/Example/Database/App/macOS/FIRAppDelegate.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRAppDelegate.h" + +@interface FIRAppDelegate () + +@end + +@implementation FIRAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application +} + + +- (void)applicationWillTerminate:(NSNotification *)aNotification { + // Insert code here to tear down your application +} + + +@end diff --git a/Example/Database/App/macOS/FIRViewController.h b/Example/Database/App/macOS/FIRViewController.h new file mode 100644 index 0000000..efee5d5 --- /dev/null +++ b/Example/Database/App/macOS/FIRViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRViewController : NSViewController + + +@end + diff --git a/Example/Database/App/macOS/FIRViewController.m b/Example/Database/App/macOS/FIRViewController.m new file mode 100644 index 0000000..08c5bb5 --- /dev/null +++ b/Example/Database/App/macOS/FIRViewController.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRViewController.h" + +@implementation FIRViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Do any additional setup after loading the view. +} + + +- (void)setRepresentedObject:(id)representedObject { + [super setRepresentedObject:representedObject]; + + // Update the view, if already loaded. +} + + +@end diff --git a/Example/Database/App/macOS/main.m b/Example/Database/App/macOS/main.m new file mode 100644 index 0000000..e8858a6 --- /dev/null +++ b/Example/Database/App/macOS/main.m @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +int main(int argc, const char * argv[]) { + return NSApplicationMain(argc, argv); +} diff --git a/Example/Database/App/main.m b/Example/Database/App/main.m deleted file mode 100644 index 03b5c12..0000000 --- a/Example/Database/App/main.m +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -@import UIKit; -#import "FIRAppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); - } -} diff --git a/Example/Database/Tests/Unit/FUtilitiesTest.m b/Example/Database/Tests/Unit/FUtilitiesTest.m index a012250..1bdc710 100644 --- a/Example/Database/Tests/Unit/FUtilitiesTest.m +++ b/Example/Database/Tests/Unit/FUtilitiesTest.m @@ -14,7 +14,6 @@ * limitations under the License. */ -#import #import #import "FUtilities.h" #import "FIRDatabase_Private.h" @@ -79,8 +78,8 @@ XCTAssertEqualObjects(parts[0], @"Firebase"); XCTAssertEqualObjects(parts[1], kWebsocketProtocolVersion); // Wire protocol version XCTAssertEqualObjects(parts[2], [FIRDatabase buildVersion]); // Build version - XCTAssertEqualObjects(parts[3], [[UIDevice currentDevice] systemVersion]); // iOS Version #if TARGET_OS_IPHONE + XCTAssertEqualObjects(parts[3], [[UIDevice currentDevice] systemVersion]); // iOS Version NSString *deviceName = [UIDevice currentDevice].model; XCTAssertEqualObjects([parts[4] componentsSeparatedByString:@"_"][0], deviceName); #endif diff --git a/Example/Firebase.xcodeproj/project.pbxproj b/Example/Firebase.xcodeproj/project.pbxproj index 1cec3db..818a10e 100644 --- a/Example/Firebase.xcodeproj/project.pbxproj +++ b/Example/Firebase.xcodeproj/project.pbxproj @@ -7,19 +7,33 @@ objects = { /* Begin PBXAggregateTarget section */ - DE3373891E73773400881891 /* AllUnitTests */ = { + D0FE8A041ED9C32C003F6722 /* AllUnitTests_macOS */ = { isa = PBXAggregateTarget; - buildConfigurationList = DE33738A1E73773400881891 /* Build configuration list for PBXAggregateTarget "AllUnitTests" */; + buildConfigurationList = D0FE8A0F1ED9C32C003F6722 /* Build configuration list for PBXAggregateTarget "AllUnitTests_macOS" */; + buildPhases = ( + ); + dependencies = ( + D01853CB1EDAD636003A645C /* PBXTargetDependency */, + D0FE8A131ED9C349003F6722 /* PBXTargetDependency */, + D054E9C91EDA095300BE996B /* PBXTargetDependency */, + D054E9CD1EDA097200BE996B /* PBXTargetDependency */, + ); + name = AllUnitTests_macOS; + productName = AllTests; + }; + DE3373891E73773400881891 /* AllUnitTests_iOS */ = { + isa = PBXAggregateTarget; + buildConfigurationList = DE33738A1E73773400881891 /* Build configuration list for PBXAggregateTarget "AllUnitTests_iOS" */; buildPhases = ( ); dependencies = ( - DE6F01BA1E957157004AEE01 /* PBXTargetDependency */, - DEB5185A1E9008CB0089C938 /* PBXTargetDependency */, DE9315871E86E9990083EDBF /* PBXTargetDependency */, DEE14E0B1E844FDC006FA992 /* PBXTargetDependency */, + DEB5185A1E9008CB0089C938 /* PBXTargetDependency */, + DE6F01BA1E957157004AEE01 /* PBXTargetDependency */, DE3373981E73776F00881891 /* PBXTargetDependency */, ); - name = AllUnitTests; + name = AllUnitTests_iOS; productName = AllTests; }; /* End PBXAggregateTarget section */ @@ -38,7 +52,6 @@ 0624F3F51EC0ED4D00E5940D /* FPersist.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4851EBA7AEF00038A59 /* FPersist.m */; }; 0624F3F61EC0ED5100E5940D /* FRealtime.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4871EBA7AEF00038A59 /* FRealtime.m */; }; 0624F3F71EC0ED5600E5940D /* FTransactionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB48F1EBA7AEF00038A59 /* FTransactionTest.m */; }; - 0637BA651EC0F99700CAEFD4 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0637BA641EC0F99700CAEFD4 /* FirebaseDev.framework */; }; 0637BA671EC0F9BA00CAEFD4 /* FDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D791E8EF202009EB6DF /* FDevice.m */; }; 0637BA681EC0F9BD00CAEFD4 /* FEventTester.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7B1E8EF202009EB6DF /* FEventTester.m */; }; 0637BA691EC0F9C100CAEFD4 /* FIRFakeApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47E1EBA7AEF00038A59 /* FIRFakeApp.m */; }; @@ -52,7 +65,6 @@ 0637BA711EC0F9DD00CAEFD4 /* FTestHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D891E8EF202009EB6DF /* FTestHelpers.m */; }; 0637BA721EC0F9E000CAEFD4 /* FTupleEventTypeString.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8B1E8EF203009EB6DF /* FTupleEventTypeString.m */; }; 0637BA731EC0F9E400CAEFD4 /* SenTest+FWaiter.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8D1E8EF203009EB6DF /* SenTest+FWaiter.m */; }; - 063CB49A1EBA7AEF00038A59 /* FirebaseTests-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 063CB47C1EBA7AEF00038A59 /* FirebaseTests-Info.plist */; }; 063CB4A71EBA7B0B00038A59 /* FCompoundWriteTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB46E1EBA7AEF00038A59 /* FCompoundWriteTest.m */; }; 063CB4BE1EBA7B3100038A59 /* FIRDataSnapshotTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47B1EBA7AEF00038A59 /* FIRDataSnapshotTests.m */; }; 063CB4BF1EBA7B3100038A59 /* FIRFakeApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47E1EBA7AEF00038A59 /* FIRFakeApp.m */; }; @@ -77,19 +89,22 @@ 0672F2F21EBBA7D900818E87 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */; }; 0672F2F31EBBA7D900818E87 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */; }; 069428831EC3B38C00F7BC69 /* 1mb.dat in Resources */ = {isa = PBXBuildFile; fileRef = 069428801EC3B35A00F7BC69 /* 1mb.dat */; }; - 0697B1221EC13D8A00542174 /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = 0697B1211EC13D8A00542174 /* Base64.m */; }; - 06B47E8C1EC39ADF00170C02 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 06B47E8B1EC39ADF00170C02 /* FirebaseDev.framework */; }; 06C24A061EC39BCB005208CA /* FIRStorageIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 06121ECA1EC39A0B0008D70E /* FIRStorageIntegrationTests.m */; }; - 22DD1E787F5347BD66CC842B /* Pods_Auth_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1EEA0F965ABC48C695972509 /* Pods_Auth_Example.framework */; }; - 260F4B35536ACE792D9BD6C6 /* Pods_Database_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 64928F2997FAF0EAEAC9B8CA /* Pods_Database_Tests.framework */; }; - 3054DA05818345789EA0C5B0 /* Pods_Core_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 08A821396D7D1089ECE810EF /* Pods_Core_Example.framework */; }; - 4768966C0C99B8D4215826A5 /* Pods_Auth_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAB9666F29A81704CA956317 /* Pods_Auth_Tests.framework */; }; - 48402D5F3CB17E091298C7FF /* Pods_Database_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66C7EEA21795A3320088DEBE /* Pods_Database_Example.framework */; }; - 7EA36B802D84DD89CE6203A0 /* Pods_Storage_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 16E92590A6B517109A2B219F /* Pods_Storage_Tests.framework */; }; - 83C9C772827554752364B400 /* Pods_Messaging_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C8A6D15690286B6BB4CB8023 /* Pods_Messaging_Example.framework */; }; - 8CE9133C8720B1C600F7C731 /* Pods_Core_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D52CEDD0146DF63640A4C3A5 /* Pods_Core_Tests.framework */; }; - 8D14BB390A3E191CCF78BF91 /* Pods_Storage_IntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 36DF4C7B93E6FE7AD8F88A38 /* Pods_Storage_IntegrationTests.framework */; }; - 9653E6AB7DDD8B5E4814442D /* Pods_Database_IntegrationTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E3DEB3CBB1440528DFE1E197 /* Pods_Database_IntegrationTests.framework */; }; + 0E069577AA9CF14E7625DBA6 /* Pods_Storage_Example_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5EA05A554FC35E7C5F8E5CA9 /* Pods_Storage_Example_iOS.framework */; }; + 105513F600A63173BC552556 /* Pods_Database_Example_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6F7376F39846E902979416D4 /* Pods_Database_Example_iOS.framework */; }; + 1D6A9D4E7CD72397532C488F /* Pods_Database_IntegrationTests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 439101D8922AE9DC78897FA1 /* Pods_Database_IntegrationTests_macOS.framework */; }; + 296461E35E6F9E49566104CC /* Pods_Storage_IntegrationTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C1C9B9A9F39B3A2C4620B31D /* Pods_Storage_IntegrationTests_iOS.framework */; }; + 3B5B4BDF69267238D023614C /* Pods_Auth_Example_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C85D77EF5F0AC7EB04FFEE6 /* Pods_Auth_Example_iOS.framework */; }; + 45A77EEB247ECF2500F13784 /* Pods_Core_Tests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5ECB335A2721006A272B6319 /* Pods_Core_Tests_macOS.framework */; }; + 46BAF46355EA2FB31BFBB9CC /* Pods_Auth_Example_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B67241DF1B67275CA11683A /* Pods_Auth_Example_macOS.framework */; }; + 53F96D962AC7E1FB44B321D7 /* Pods_Storage_Tests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 018F5A73A5594B2BFB86FA4F /* Pods_Storage_Tests_iOS.framework */; }; + 5AAA7CC9D289EC7A49A87097 /* Pods_Messaging_Example_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6A755474C372E792A35598FE /* Pods_Messaging_Example_iOS.framework */; }; + 5BA5BCACADA152589E33D130 /* Pods_Storage_IntegrationTests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E1DB278AD387CAB5D57BF135 /* Pods_Storage_IntegrationTests_macOS.framework */; }; + 72A4F3F8704E8148ADF12B0D /* Pods_Auth_Tests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 66C8AD396012BCC0A5112A85 /* Pods_Auth_Tests_macOS.framework */; }; + 79A15731AA31012CD937CF3A /* Pods_Core_Example_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CAD129FFEC477E1129AE6AA1 /* Pods_Core_Example_iOS.framework */; }; + 7A02646DEF386689CCFB9011 /* Pods_Core_Tests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AE6C9DD139E1FD21DC0F1082 /* Pods_Core_Tests_iOS.framework */; }; + 7AE9A7433F2BD9A52022AC71 /* Pods_Messaging_Tests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F902A29FA956ADD762F6921 /* Pods_Messaging_Tests_iOS.framework */; }; + 960665EC1C5F7A0E843A354F /* Pods_Database_Tests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 97768125F45377F35CA86EDC /* Pods_Database_Tests_macOS.framework */; }; AFAF36F51EC28C25004BDEE5 /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; AFAF36F61EC28C25004BDEE5 /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; AFAF36F71EC28C25004BDEE5 /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; @@ -98,19 +113,188 @@ AFC8BA9D1EBD230E00B8EEAE /* NotificationsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFC8BA9C1EBD230E00B8EEAE /* NotificationsController.swift */; }; AFC8BA9F1EBD51A700B8EEAE /* Environment.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFC8BA9E1EBD51A700B8EEAE /* Environment.swift */; }; AFC8BAA71EC257D800B8EEAE /* FIRSampleAppUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = AFC8BAA31EC257D800B8EEAE /* FIRSampleAppUtilities.m */; }; - AFD5630C1EB1400900EA2233 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AFD563081EB1400900EA2233 /* LaunchScreen.storyboard */; }; - AFD5630D1EB1400900EA2233 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AFD5630A1EB1400900EA2233 /* Main.storyboard */; }; AFD5630E1EB1402300EA2233 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFD562FF1EB13DF200EA2233 /* AppDelegate.swift */; }; AFD5630F1EB1402300EA2233 /* MessagingViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFD563011EB13DF200EA2233 /* MessagingViewController.swift */; }; AFD563151EB29EDE00EA2233 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = AFD563131EB1466100EA2233 /* GoogleService-Info.plist */; }; AFD563171EBBEF7B00EA2233 /* Data+MessagingExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFD563161EBBEF7B00EA2233 /* Data+MessagingExtensions.swift */; }; - BDE625D72CA3B8918088E0F5 /* Pods_Storage_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA7879CD6EE51EE4E20937C8 /* Pods_Storage_Example.framework */; }; + B4C784B02835699995BDB245 /* Pods_Database_Tests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 81E83B5ABAE219234F213B27 /* Pods_Database_Tests_iOS.framework */; }; + BB8642A73C1F482CBEEEA18B /* Pods_Database_IntegrationTests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0FBAE5798DCB94C9906773C4 /* Pods_Database_IntegrationTests_iOS.framework */; }; + C01629804D17B03619DABA5D /* Pods_Storage_Tests_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 88F663265024D7EE7A9D9706 /* Pods_Storage_Tests_macOS.framework */; }; + C660C27672BC028C144E4937 /* Pods_Database_Example_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BE87180EF72455631F684021 /* Pods_Database_Example_macOS.framework */; }; + CAE6C9ABFF3DA328D42457A4 /* Pods_Storage_Example_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 73B480AA654FC97FA72C6293 /* Pods_Storage_Example_macOS.framework */; }; + D018534D1EDACED4003A645C /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D01853491EDACED4003A645C /* LaunchScreen.storyboard */; }; + D018534E1EDACED4003A645C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D018534B1EDACED4003A645C /* Main.storyboard */; }; + D01853721EDAD084003A645C /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; + D01853831EDAD113003A645C /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D018537E1EDAD0E6003A645C /* FIRAppDelegate.m */; }; + D01853841EDAD113003A645C /* FIRViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D01853801EDAD0E6003A645C /* FIRViewController.m */; }; + D01853851EDAD113003A645C /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D01853811EDAD0E6003A645C /* main.m */; }; + D01853861EDAD120003A645C /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE9314F61E86C6FF0083EDBF /* GoogleService-Info.plist */; }; + D01853871EDAD124003A645C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D018537B1EDAD0E6003A645C /* Main.storyboard */; }; + D018538D1EDAD364003A645C /* FIRGetOOBConfirmationCodeResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150E1E86C6FF0083EDBF /* FIRGetOOBConfirmationCodeResponseTests.m */; }; + D018538E1EDAD364003A645C /* FIRGetAccountInfoRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150B1E86C6FF0083EDBF /* FIRGetAccountInfoRequestTests.m */; }; + D018538F1EDAD364003A645C /* FIRSignUpNewUserResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315181E86C6FF0083EDBF /* FIRSignUpNewUserResponseTests.m */; }; + D01853901EDAD364003A645C /* FIRGetOOBConfirmationCodeRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150D1E86C6FF0083EDBF /* FIRGetOOBConfirmationCodeRequestTests.m */; }; + D01853911EDAD364003A645C /* FIRAdditionalUserInfoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314FA1E86C6FF0083EDBF /* FIRAdditionalUserInfoTests.m */; }; + D01853931EDAD364003A645C /* FIRVerifyPasswordResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315201E86C6FF0083EDBF /* FIRVerifyPasswordResponseTests.m */; }; + D01853941EDAD364003A645C /* FIRAuthDispatcherTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314FF1E86C6FF0083EDBF /* FIRAuthDispatcherTests.m */; }; + D01853951EDAD364003A645C /* FIRVerifyCustomTokenResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151E1E86C6FF0083EDBF /* FIRVerifyCustomTokenResponseTests.m */; }; + D01853961EDAD364003A645C /* FIRAuthUserDefaultsStorageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315041E86C6FF0083EDBF /* FIRAuthUserDefaultsStorageTests.m */; }; + D01853971EDAD364003A645C /* FIRDeleteAccountResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315081E86C6FF0083EDBF /* FIRDeleteAccountResponseTests.m */; }; + D01853981EDAD364003A645C /* FIRTwitterAuthProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315191E86C6FF0083EDBF /* FIRTwitterAuthProviderTests.m */; }; + D018539A1EDAD364003A645C /* FIRGitHubAuthProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150F1E86C6FF0083EDBF /* FIRGitHubAuthProviderTests.m */; }; + D018539B1EDAD364003A645C /* FIRVerifyAssertionRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151B1E86C6FF0083EDBF /* FIRVerifyAssertionRequestTests.m */; }; + D018539C1EDAD364003A645C /* FIRVerifyCustomTokenRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151D1E86C6FF0083EDBF /* FIRVerifyCustomTokenRequestTests.m */; }; + D018539E1EDAD364003A645C /* FIRFakeBackendRPCIssuer.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150A1E86C6FF0083EDBF /* FIRFakeBackendRPCIssuer.m */; }; + D018539F1EDAD364003A645C /* FIRAuthBackendCreateAuthURITests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314FD1E86C6FF0083EDBF /* FIRAuthBackendCreateAuthURITests.m */; }; + D01853A21EDAD364003A645C /* FIRResetPasswordRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315111E86C6FF0083EDBF /* FIRResetPasswordRequestTests.m */; }; + D01853A31EDAD364003A645C /* FIRResetPasswordResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315121E86C6FF0083EDBF /* FIRResetPasswordResponseTests.m */; }; + D01853A41EDAD364003A645C /* FIRCreateAuthURIRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315051E86C6FF0083EDBF /* FIRCreateAuthURIRequestTests.m */; }; + D01853A61EDAD364003A645C /* FIRAuthKeychainTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315011E86C6FF0083EDBF /* FIRAuthKeychainTests.m */; }; + D01853A71EDAD364003A645C /* FIRAuthGlobalWorkQueueTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315001E86C6FF0083EDBF /* FIRAuthGlobalWorkQueueTests.m */; }; + D01853A81EDAD364003A645C /* FIRDeleteAccountRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315071E86C6FF0083EDBF /* FIRDeleteAccountRequestTests.m */; }; + D01853AB1EDAD364003A645C /* FIRVerifyPasswordRequestTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151F1E86C6FF0083EDBF /* FIRVerifyPasswordRequestTest.m */; }; + D01853AC1EDAD364003A645C /* FIRCreateAuthURIResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315061E86C6FF0083EDBF /* FIRCreateAuthURIResponseTests.m */; }; + D01853AD1EDAD364003A645C /* FIRAuthBackendRPCImplementationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314FE1E86C6FF0083EDBF /* FIRAuthBackendRPCImplementationTests.m */; }; + D01853AF1EDAD364003A645C /* OCMStubRecorder+FIRAuthUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315241E86C6FF0083EDBF /* OCMStubRecorder+FIRAuthUnitTests.m */; }; + D01853B01EDAD364003A645C /* FIRVerifyAssertionResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151C1E86C6FF0083EDBF /* FIRVerifyAssertionResponseTests.m */; }; + D01853B11EDAD364003A645C /* FIRSignUpNewUserRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315171E86C6FF0083EDBF /* FIRSignUpNewUserRequestTests.m */; }; + D01853B21EDAD364003A645C /* FIRGetAccountInfoResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93150C1E86C6FF0083EDBF /* FIRGetAccountInfoResponseTests.m */; }; + D01853B31EDAD364003A645C /* FIRSetAccountInfoRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315151E86C6FF0083EDBF /* FIRSetAccountInfoRequestTests.m */; }; + D01853B41EDAD364003A645C /* FIRAuthAppCredentialTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0E5BB51EA7D91C00FAA825 /* FIRAuthAppCredentialTests.m */; }; + D01853B51EDAD364003A645C /* FIRAuthSerialTaskQueueTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315021E86C6FF0083EDBF /* FIRAuthSerialTaskQueueTests.m */; }; + D01853B61EDAD364003A645C /* FIRApp+FIRAuthUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314FC1E86C6FF0083EDBF /* FIRApp+FIRAuthUnitTests.m */; }; + D01853B71EDAD364003A645C /* FIRSetAccountInfoResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315161E86C6FF0083EDBF /* FIRSetAccountInfoResponseTests.m */; }; + D01853B81EDAD364003A645C /* FIRAuthTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9315031E86C6FF0083EDBF /* FIRAuthTests.m */; }; + D01853BC1EDAD364003A645C /* FIRUserTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE93151A1E86C6FF0083EDBF /* FIRUserTests.m */; }; + D064E69A1ED9B1BF001956DF /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D064E6991ED9B1BF001956DF /* FIRAppDelegate.m */; }; + D064E69D1ED9B1BF001956DF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D064E69C1ED9B1BF001956DF /* main.m */; }; + D064E6A01ED9B1BF001956DF /* FIRViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D064E69F1ED9B1BF001956DF /* FIRViewController.m */; }; + D064E6A51ED9B1BF001956DF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D064E6A31ED9B1BF001956DF /* Main.storyboard */; }; + D064E6AF1ED9B31C001956DF /* FIRAppAssociationRegistrationUnitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D751E844677006FA992 /* FIRAppAssociationRegistrationUnitTests.m */; }; + D064E6B01ED9B31C001956DF /* FIRAppTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D761E844677006FA992 /* FIRAppTest.m */; }; + D064E6B11ED9B31C001956DF /* FIRConfigurationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D781E844677006FA992 /* FIRConfigurationTest.m */; }; + D064E6B21ED9B31C001956DF /* FIRLoggerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D791E844677006FA992 /* FIRLoggerTest.m */; }; + D064E6B31ED9B31C001956DF /* FIROptionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7A1E844677006FA992 /* FIROptionsTest.m */; }; + D064E6B41ED9B31C001956DF /* FIRBundleUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D771E844677006FA992 /* FIRBundleUtilTest.m */; }; + D064E6B51ED9B31C001956DF /* FIRTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7C1E844677006FA992 /* FIRTestCase.m */; }; + D067EF831ED9BDE00095C27F /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; + D067EF841ED9BDFF0095C27F /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DEE14D711E844677006FA992 /* GoogleService-Info.plist */; }; + D090052E1EDB2FA300154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D090052D1EDB2FA300154410 /* FirebaseDev.framework */; }; + D09005311EDB32D600154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005331EDB32F100154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005351EDB330E00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005371EDB331C00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005391EDB333A00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D090053B1EDB334400154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D090053D1EDB334D00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005401EDB34F900154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005421EDB358000154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005441EDB358F00154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005471EDB359F00154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D09005491EDB35B700154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D090054B1EDB35C100154410 /* OCMock-OSX/OCMock.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */; settings = {ATTRIBUTES = (); }; }; + D090054F1EDB366100154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D090054E1EDB366100154410 /* FirebaseDev.framework */; }; + D09005531EDB36BD00154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005521EDB36BD00154410 /* FirebaseDev.framework */; }; + D09005571EDB36ED00154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005561EDB36ED00154410 /* FirebaseDev.framework */; }; + D09005581EDB370500154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005561EDB36ED00154410 /* FirebaseDev.framework */; }; + D090055C1EDB372000154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D090055B1EDB372000154410 /* FirebaseDev.framework */; }; + D090055D1EDB372800154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D090055B1EDB372000154410 /* FirebaseDev.framework */; }; + D090055F1EDB372E00154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D090055E1EDB372E00154410 /* FirebaseDev.framework */; }; + D09005671EDB37A600154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005661EDB37A600154410 /* FirebaseDev.framework */; }; + D09005681EDB37AE00154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005661EDB37A600154410 /* FirebaseDev.framework */; }; + D090056B1EDB37DD00154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005691EDB37B600154410 /* FirebaseDev.framework */; }; + D090056C1EDB37E500154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005541EDB36DB00154410 /* FirebaseDev.framework */; }; + D090056D1EDB37E800154410 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D09005541EDB36DB00154410 /* FirebaseDev.framework */; }; + D0EDB2C51EDA04F800B6C31B /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; + D0EDB2D71EDA057800B6C31B /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D0EDB2D21EDA056A00B6C31B /* FIRAppDelegate.m */; }; + D0EDB2D81EDA057800B6C31B /* FIRViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0EDB2D41EDA056A00B6C31B /* FIRViewController.m */; }; + D0EDB2D91EDA057800B6C31B /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D0EDB2D51EDA056A00B6C31B /* main.m */; }; + D0EDB2DB1EDA058400B6C31B /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D0EDB2CF1EDA056A00B6C31B /* Main.storyboard */; }; + D0EDB2DC1EDA058700B6C31B /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DEB61EC11E7C5DBB00C04B96 /* GoogleService-Info.plist */; }; + D0EDB2DD1EDA058A00B6C31B /* 1mb.dat in Resources */ = {isa = PBXBuildFile; fileRef = 069428801EC3B35A00F7BC69 /* 1mb.dat */; }; + D0EDB2E31EDA06CB00B6C31B /* FIRStorageUtilsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139CB1E734D9D00AC236D /* FIRStorageUtilsTests.m */; }; + D0EDB2E41EDA06CB00B6C31B /* FIRStorageTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C81E734D9D00AC236D /* FIRStorageTests.m */; }; + D0EDB2E51EDA06CB00B6C31B /* FIRStorageGetMetadataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C21E734D9D00AC236D /* FIRStorageGetMetadataTests.m */; }; + D0EDB2E61EDA06CB00B6C31B /* FIRStorageUpdateMetadataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139CA1E734D9D00AC236D /* FIRStorageUpdateMetadataTests.m */; }; + D0EDB2E71EDA06CB00B6C31B /* FIRStorageDeleteTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C11E734D9D00AC236D /* FIRStorageDeleteTests.m */; }; + D0EDB2E81EDA06CB00B6C31B /* FIRStorageTestHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C71E734D9D00AC236D /* FIRStorageTestHelpers.m */; }; + D0EDB2E91EDA06CB00B6C31B /* FIRStorageMetadataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C31E734D9D00AC236D /* FIRStorageMetadataTests.m */; }; + D0EDB2EA1EDA06CB00B6C31B /* FIRStorageTokenAuthorizerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C91E734D9D00AC236D /* FIRStorageTokenAuthorizerTests.m */; }; + D0EDB2EB1EDA06CB00B6C31B /* FIRStorageReferenceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C51E734D9D00AC236D /* FIRStorageReferenceTests.m */; }; + D0EDB2EC1EDA06CB00B6C31B /* FIRStoragePathTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB139C41E734D9D00AC236D /* FIRStoragePathTests.m */; }; + D0EDB2FD1EDA06D500B6C31B /* FIRStorageIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 06121ECA1EC39A0B0008D70E /* FIRStorageIntegrationTests.m */; }; + D0FE8A271ED9C804003F6722 /* Shared.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */; }; + D0FE8A361ED9C86F003F6722 /* FTestHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D891E8EF202009EB6DF /* FTestHelpers.m */; }; + D0FE8A371ED9C86F003F6722 /* FPathTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB44E1EBA7AE200038A59 /* FPathTests.m */; }; + D0FE8A381ED9C86F003F6722 /* FTestCachePolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D831E8EF202009EB6DF /* FTestCachePolicy.m */; }; + D0FE8A391ED9C86F003F6722 /* FPruningTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4511EBA7AE200038A59 /* FPruningTest.m */; }; + D0FE8A3A1ED9C86F003F6722 /* FTestClock.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D851E8EF202009EB6DF /* FTestClock.m */; }; + D0FE8A3B1ED9C86F003F6722 /* FIRTestAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7D1E8EF202009EB6DF /* FIRTestAuthTokenProvider.m */; }; + D0FE8A3C1ED9C86F003F6722 /* FRangeMergeTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4531EBA7AE200038A59 /* FRangeMergeTest.m */; }; + D0FE8A3D1ED9C86F003F6722 /* FTreeSortedDictionaryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4901EBA7AEF00038A59 /* FTreeSortedDictionaryTests.m */; }; + D0FE8A3E1ED9C86F003F6722 /* FNodeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB44C1EBA7AE200038A59 /* FNodeTests.m */; }; + D0FE8A3F1ED9C86F003F6722 /* FIRMutableDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB44A1EBA7AE200038A59 /* FIRMutableDataTests.m */; }; + D0FE8A401ED9C86F003F6722 /* FIRDataSnapshotTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47B1EBA7AEF00038A59 /* FIRDataSnapshotTests.m */; }; + D0FE8A411ED9C86F003F6722 /* FMockStorageEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7F1E8EF202009EB6DF /* FMockStorageEngine.m */; }; + D0FE8A421ED9C86F003F6722 /* FTupleEventTypeString.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8B1E8EF203009EB6DF /* FTupleEventTypeString.m */; }; + D0FE8A431ED9C86F003F6722 /* FLevelDBStorageEngineTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB44B1EBA7AE200038A59 /* FLevelDBStorageEngineTests.m */; }; + D0FE8A441ED9C86F003F6722 /* FRepoInfoTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4541EBA7AE200038A59 /* FRepoInfoTest.m */; }; + D0FE8A451ED9C86F003F6722 /* FCompoundHashTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4481EBA7AE200038A59 /* FCompoundHashTest.m */; }; + D0FE8A461ED9C86F003F6722 /* FTrackedQueryManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB45B1EBA7AE200038A59 /* FTrackedQueryManagerTest.m */; }; + D0FE8A471ED9C86F003F6722 /* FUtilitiesTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB45C1EBA7AE200038A59 /* FUtilitiesTest.m */; }; + D0FE8A481ED9C86F003F6722 /* FSparseSnapshotTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4561EBA7AE200038A59 /* FSparseSnapshotTests.m */; }; + D0FE8A491ED9C86F003F6722 /* FTestBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB45A1EBA7AE200038A59 /* FTestBase.m */; }; + D0FE8A4A1ED9C86F003F6722 /* FDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D791E8EF202009EB6DF /* FDevice.m */; }; + D0FE8A4B1ED9C86F003F6722 /* FPersistenceManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB44F1EBA7AE200038A59 /* FPersistenceManagerTest.m */; }; + D0FE8A4C1ED9C86F003F6722 /* FCompoundWriteTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB46E1EBA7AEF00038A59 /* FCompoundWriteTest.m */; }; + D0FE8A4D1ED9C86F003F6722 /* SenTest+FWaiter.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8D1E8EF203009EB6DF /* SenTest+FWaiter.m */; }; + D0FE8A4E1ED9C86F003F6722 /* FPruneForestTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4501EBA7AE200038A59 /* FPruneForestTest.m */; }; + D0FE8A4F1ED9C86F003F6722 /* FTestExpectations.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D871E8EF202009EB6DF /* FTestExpectations.m */; }; + D0FE8A501ED9C86F003F6722 /* FIRFakeApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47E1EBA7AEF00038A59 /* FIRFakeApp.m */; }; + D0FE8A511ED9C86F003F6722 /* FEventTester.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7B1E8EF202009EB6DF /* FEventTester.m */; }; + D0FE8A521ED9C86F003F6722 /* FQueryParamsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4521EBA7AE200038A59 /* FQueryParamsTest.m */; }; + D0FE8A531ED9C86F003F6722 /* FSyncPointTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4581EBA7AE200038A59 /* FSyncPointTests.m */; }; + D0FE8A541ED9C86F003F6722 /* FArraySortedDictionaryTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4471EBA7AE200038A59 /* FArraySortedDictionaryTest.m */; }; + D0FE8A551ED9C86F003F6722 /* FTestAuthTokenGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D811E8EF202009EB6DF /* FTestAuthTokenGenerator.m */; }; + D0FE8A5A1ED9C86F003F6722 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = DE7B8D691E8EF202009EB6DF /* InfoPlist.strings */; }; + D0FE8A5B1ED9C86F003F6722 /* syncPointSpec.json in Resources */ = {isa = PBXBuildFile; fileRef = DE7B8D8E1E8EF203009EB6DF /* syncPointSpec.json */; }; + D0FE8A5C1ED9C86F003F6722 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */; }; + D0FE8A691ED9C87B003F6722 /* FData.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4711EBA7AEF00038A59 /* FData.m */; }; + D0FE8A6A1ED9C87B003F6722 /* FTestBase.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB45A1EBA7AE200038A59 /* FTestBase.m */; }; + D0FE8A6B1ED9C87B003F6722 /* FTupleEventTypeString.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8B1E8EF203009EB6DF /* FTupleEventTypeString.m */; }; + D0FE8A6C1ED9C87B003F6722 /* FTestAuthTokenGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D811E8EF202009EB6DF /* FTestAuthTokenGenerator.m */; }; + D0FE8A6D1ED9C87B003F6722 /* FMockStorageEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7F1E8EF202009EB6DF /* FMockStorageEngine.m */; }; + D0FE8A6E1ED9C87B003F6722 /* FConnectionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB46F1EBA7AEF00038A59 /* FConnectionTest.m */; }; + D0FE8A6F1ED9C87B003F6722 /* FKeepSyncedTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47F1EBA7AEF00038A59 /* FKeepSyncedTest.m */; }; + D0FE8A701ED9C87B003F6722 /* FTransactionTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB48F1EBA7AEF00038A59 /* FTransactionTest.m */; }; + D0FE8A711ED9C87B003F6722 /* FIRDatabaseQueryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4781EBA7AEF00038A59 /* FIRDatabaseQueryTests.m */; }; + D0FE8A721ED9C87B003F6722 /* FTestExpectations.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D871E8EF202009EB6DF /* FTestExpectations.m */; }; + D0FE8A731ED9C87B003F6722 /* FTestClock.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D851E8EF202009EB6DF /* FTestClock.m */; }; + D0FE8A741ED9C87B003F6722 /* FIRFakeApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB47E1EBA7AEF00038A59 /* FIRFakeApp.m */; }; + D0FE8A751ED9C87B003F6722 /* FEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4751EBA7AEF00038A59 /* FEventTests.m */; }; + D0FE8A761ED9C87B003F6722 /* FDotInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4731EBA7AEF00038A59 /* FDotInfo.m */; }; + D0FE8A771ED9C87B003F6722 /* FRealtime.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4871EBA7AEF00038A59 /* FRealtime.m */; }; + D0FE8A781ED9C87B003F6722 /* FDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D791E8EF202009EB6DF /* FDevice.m */; }; + D0FE8A791ED9C87B003F6722 /* FIRTestAuthTokenProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7D1E8EF202009EB6DF /* FIRTestAuthTokenProvider.m */; }; + D0FE8A7A1ED9C87B003F6722 /* SenTest+FWaiter.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D8D1E8EF203009EB6DF /* SenTest+FWaiter.m */; }; + D0FE8A7B1ED9C87B003F6722 /* FIRDatabaseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4791EBA7AEF00038A59 /* FIRDatabaseTests.m */; }; + D0FE8A7C1ED9C87B003F6722 /* FOrderByTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4831EBA7AEF00038A59 /* FOrderByTests.m */; }; + D0FE8A7D1ED9C87B003F6722 /* FPersist.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4851EBA7AEF00038A59 /* FPersist.m */; }; + D0FE8A7E1ED9C87B003F6722 /* FIRAuthTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4761EBA7AEF00038A59 /* FIRAuthTests.m */; }; + D0FE8A7F1ED9C87B003F6722 /* FOrder.m in Sources */ = {isa = PBXBuildFile; fileRef = 063CB4811EBA7AEF00038A59 /* FOrder.m */; }; + D0FE8A801ED9C87B003F6722 /* FTestCachePolicy.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D831E8EF202009EB6DF /* FTestCachePolicy.m */; }; + D0FE8A811ED9C87B003F6722 /* FTestHelpers.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D891E8EF202009EB6DF /* FTestHelpers.m */; }; + D0FE8A821ED9C87B003F6722 /* FEventTester.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D7B1E8EF202009EB6DF /* FEventTester.m */; }; + D0FE8A921ED9CA44003F6722 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */; }; + D0FE8A931ED9CA44003F6722 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D0FE8A161ED9C6D2003F6722 /* Main.storyboard */; }; + D0FE8A941ED9CAAE003F6722 /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FE8A1A1ED9C6D2003F6722 /* FIRAppDelegate.m */; }; + D0FE8A951ED9CAAE003F6722 /* FIRViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FE8A1C1ED9C6D2003F6722 /* FIRViewController.m */; }; + D0FE8A961ED9CAAE003F6722 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = D0FE8A1D1ED9C6D2003F6722 /* main.m */; }; + D22080FB4B7F4238FAC548D6 /* Pods_Auth_Tests_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CECEF04E3B788FA2FA9B29F1 /* Pods_Auth_Tests_iOS.framework */; }; DE0E5BBB1EA7D92E00FAA825 /* FIRVerifyClientRequestTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0E5BB91EA7D92E00FAA825 /* FIRVerifyClientRequestTest.m */; }; DE0E5BBC1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0E5BBA1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m */; }; DE0E5BBD1EA7D93100FAA825 /* FIRAuthAppCredentialTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0E5BB51EA7D91C00FAA825 /* FIRAuthAppCredentialTests.m */; }; DE0E5BBE1EA7D93500FAA825 /* FIRAuthAppDelegateProxyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE0E5BB61EA7D91C00FAA825 /* FIRAuthAppDelegateProxyTests.m */; }; - DE4E711B1E953ABC00070092 /* FirebaseDev.podspec in Resources */ = {isa = PBXBuildFile; fileRef = DE4E711A1E953ABC00070092 /* FirebaseDev.podspec */; }; - DE6F01B01E95675E004AEE01 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE6F01AC1E95673C004AEE01 /* FirebaseDev.framework */; }; DE750DBD1EB3DD5B00A75E47 /* FIRAuthAPNSTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE750DB61EB3DD4000A75E47 /* FIRAuthAPNSTokenTests.m */; }; DE750DBE1EB3DD6800A75E47 /* FIRAuthAPNSTokenManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE750DB51EB3DD4000A75E47 /* FIRAuthAPNSTokenManagerTests.m */; }; DE750DBF1EB3DD6C00A75E47 /* FIRAuthAppCredentialManagerTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DE750DB71EB3DD4000A75E47 /* FIRAuthAppCredentialManagerTests.m */; }; @@ -133,7 +317,6 @@ DE7B8DCC1E8EF23A009EB6DF /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DE7B8D371E8EF202009EB6DF /* main.m */; }; DE7B8DD01E8EF246009EB6DF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7B8D2C1E8EF202009EB6DF /* LaunchScreen.storyboard */; }; DE7B8DD11E8EF24F009EB6DF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7B8D2E1E8EF202009EB6DF /* Main.storyboard */; }; - DE7B8DD31E8F1CA7009EB6DF /* Database-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE7B8DD21E8F1CA7009EB6DF /* Database-Info.plist */; }; DE9315261E86C6FF0083EDBF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE9314ED1E86C6FF0083EDBF /* LaunchScreen.storyboard */; }; DE9315271E86C6FF0083EDBF /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE9314EF1E86C6FF0083EDBF /* Main.storyboard */; }; DE9315291E86C6FF0083EDBF /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DE9314F31E86C6FF0083EDBF /* FIRAppDelegate.m */; }; @@ -216,11 +399,7 @@ DEB61EC81E7C5DBB00C04B96 /* FIRViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB61EC01E7C5DBB00C04B96 /* FIRViewController.m */; }; DEB61EC91E7C5DBB00C04B96 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DEB61EC11E7C5DBB00C04B96 /* GoogleService-Info.plist */; }; DEB61ECB1E7C5DBB00C04B96 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DEB61EC31E7C5DBB00C04B96 /* main.m */; }; - DEC0EE0D1EA427CC007E2177 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE6F01B31E9567F1004AEE01 /* FirebaseDev.framework */; }; - DEC0EE0F1EA42D5D007E2177 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC0EE0E1EA42D5D007E2177 /* FirebaseDev.framework */; }; - DEC0EE111EA42D73007E2177 /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEC0EE101EA42D73007E2177 /* FirebaseDev.framework */; }; DECE039B1E9ED01600164CA4 /* FIRPhoneAuthProviderTests.m in Sources */ = {isa = PBXBuildFile; fileRef = DECE03991E9ECFF500164CA4 /* FIRPhoneAuthProviderTests.m */; }; - DEE13AA11EA170D500D1BABA /* FirebaseDev.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DE6F01B11E9567BF004AEE01 /* FirebaseDev.framework */; }; DEE14D7E1E844677006FA992 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEE14D681E844677006FA992 /* LaunchScreen.storyboard */; }; DEE14D7F1E844677006FA992 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DEE14D6A1E844677006FA992 /* Main.storyboard */; }; DEE14D811E844677006FA992 /* FIRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D6E1E844677006FA992 /* FIRAppDelegate.m */; }; @@ -234,7 +413,7 @@ DEE14D921E84468D006FA992 /* FIRLoggerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D791E844677006FA992 /* FIRLoggerTest.m */; }; DEE14D931E84468D006FA992 /* FIROptionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7A1E844677006FA992 /* FIROptionsTest.m */; }; DEE14D941E84468D006FA992 /* FIRTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = DEE14D7C1E844677006FA992 /* FIRTestCase.m */; }; - EA9A4B8DCCA67EB6F9B4008F /* Pods_Messaging_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E9D28B14E5B756D3A1938CB2 /* Pods_Messaging_Tests.framework */; }; + FFE130CF56C04A4F1F90F58C /* Pods_Core_Example_macOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 491500C8507A3B80D6FE1B61 /* Pods_Core_Example_macOS.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -243,7 +422,7 @@ containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DEB139E01E73506A00AC236D; - remoteInfo = Storage_Example; + remoteInfo = Storage_Example_iOS; }; 0624F3E61EC0ECFA00E5940D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -257,21 +436,91 @@ containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = AFD562E41EB13C6D00EA2233; - remoteInfo = Messaging_Example; + remoteInfo = Messaging_Example_iOS; + }; + D01853C81EDAD45C003A645C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D01853671EDAD084003A645C; + remoteInfo = Auth_Example_macOS; + }; + D01853CA1EDAD636003A645C /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D01853881EDAD364003A645C; + remoteInfo = Auth_Tests_macOS; + }; + D054E9C81EDA095300BE996B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0FE8A311ED9C86F003F6722; + remoteInfo = Database_Tests_macOS; + }; + D054E9CC1EDA097200BE996B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0EDB2DE1EDA06CB00B6C31B; + remoteInfo = Storage_Tests_macOS; + }; + D064E6C11ED9B369001956DF /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D064E6951ED9B1BF001956DF; + remoteInfo = Core_Example_macOS; + }; + D0EDB3091EDA07A300B6C31B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0EDB2BC1EDA04F800B6C31B; + remoteInfo = Storage_Example_macOS; + }; + D0EDB30B1EDA07A600B6C31B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0EDB2BC1EDA04F800B6C31B; + remoteInfo = Storage_Example_macOS; + }; + D0FE8A121ED9C349003F6722 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D064E6AA1ED9B31C001956DF; + remoteInfo = Core_Tests_macOS; + }; + D0FE8A8E1ED9C885003F6722 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0FE8A1E1ED9C804003F6722; + remoteInfo = Database_Example_macOS; + }; + D0FE8A901ED9C9CD003F6722 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 6003F582195388D10070C39A /* Project object */; + proxyType = 1; + remoteGlobalIDString = D0FE8A1E1ED9C804003F6722; + remoteInfo = Database_Example_macOS; }; DE3373971E73776F00881891 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DEB13A0A1E73507E00AC236D; - remoteInfo = Storage_Tests; + remoteInfo = Storage_Tests_iOS; }; DE6F01B91E957157004AEE01 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DE9315A61E8738460083EDBF; - remoteInfo = Messaging_Tests; + remoteInfo = Messaging_Tests_iOS; }; DE7B8D1E1E8EF078009EB6DF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -285,21 +534,21 @@ containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DE9314C51E86C6BD0083EDBF; - remoteInfo = Auth_Example; + remoteInfo = Auth_Example_iOS; }; DE9315861E86E9990083EDBF /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DE9314DD1E86C6BE0083EDBF; - remoteInfo = Auth_Tests; + remoteInfo = Auth_Tests_iOS; }; DEB13A251E73512500AC236D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6003F582195388D10070C39A /* Project object */; proxyType = 1; remoteGlobalIDString = DEB139E01E73506A00AC236D; - remoteInfo = Storage_Example; + remoteInfo = Storage_Example_iOS; }; DEB518591E9008CB0089C938 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -324,11 +573,146 @@ }; /* End PBXContainerItemProxy section */ +/* Begin PBXCopyFilesBuildPhase section */ + D090052F1EDB32B700154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005311EDB32D600154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005321EDB32EA00154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005331EDB32F100154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005341EDB330800154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005351EDB330E00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005361EDB331700154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005371EDB331C00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005381EDB333700154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005391EDB333A00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D090053A1EDB334000154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D090053B1EDB334400154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D090053C1EDB334800154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D090053D1EDB334D00154410 /* OCMock-iOS/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D090053E1EDB34DF00154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005401EDB34F900154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005411EDB356900154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005421EDB358000154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005431EDB358A00154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005441EDB358F00154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005461EDB359900154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005471EDB359F00154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D09005481EDB35B200154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D09005491EDB35B700154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D090054A1EDB35BD00154410 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + D090054B1EDB35C100154410 /* OCMock-OSX/OCMock.framework in CopyFiles */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ - 06121EBC1EC399C50008D70E /* Storage_IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 018F5A73A5594B2BFB86FA4F /* Pods_Storage_Tests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Tests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0431E01853516524ED683CB1 /* Pods-Database_Tests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests_macOS/Pods-Database_Tests_macOS.debug.xcconfig"; sourceTree = ""; }; + 0555A4F3B37CB783D805569C /* Pods-Auth_Tests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests_macOS/Pods-Auth_Tests_macOS.debug.xcconfig"; sourceTree = ""; }; + 06121EBC1EC399C50008D70E /* Storage_IntegrationTests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_IntegrationTests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 06121ECA1EC39A0B0008D70E /* FIRStorageIntegrationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRStorageIntegrationTests.m; sourceTree = ""; }; - 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_IntegrationTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 0637BA641EC0F99700CAEFD4 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-dajssrvxpeovebatpcchwkfhwcjh/Build/Products/Debug-iphonesimulator/FirebaseDev-Core-Database-Root/FirebaseDev.framework"; sourceTree = ""; }; + 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_IntegrationTests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 063CB4471EBA7AE200038A59 /* FArraySortedDictionaryTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FArraySortedDictionaryTest.m; path = Database/Tests/Unit/FArraySortedDictionaryTest.m; sourceTree = SOURCE_ROOT; }; 063CB4481EBA7AE200038A59 /* FCompoundHashTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FCompoundHashTest.m; path = Database/Tests/Unit/FCompoundHashTest.m; sourceTree = SOURCE_ROOT; }; 063CB4491EBA7AE200038A59 /* FIRMutableDataTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIRMutableDataTests.h; path = Database/Tests/Unit/FIRMutableDataTests.h; sourceTree = SOURCE_ROOT; }; @@ -385,70 +769,142 @@ 069428801EC3B35A00F7BC69 /* 1mb.dat */ = {isa = PBXFileReference; lastKnownFileType = file; path = 1mb.dat; sourceTree = ""; }; 0697B1201EC13D8A00542174 /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; 0697B1211EC13D8A00542174 /* Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Base64.m; sourceTree = ""; }; - 06B47E8B1EC39ADF00170C02 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-dajssrvxpeovebatpcchwkfhwcjh/Build/Products/Debug-iphonesimulator/FirebaseDev-Core-Root-Storage/FirebaseDev.framework"; sourceTree = ""; }; - 08A821396D7D1089ECE810EF /* Pods_Core_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 0B1BDA534E1F49931795B5E6 /* Pods-Core_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests/Pods-Core_Tests.release.xcconfig"; sourceTree = ""; }; - 16E92590A6B517109A2B219F /* Pods_Storage_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 18B5255FF5BEBF6F72C40F39 /* Pods-Auth_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests/Pods-Auth_Tests.debug.xcconfig"; sourceTree = ""; }; - 1EEA0F965ABC48C695972509 /* Pods_Auth_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 2F002D4E7FA7F07A830CCFDA /* Pods-Auth_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example/Pods-Auth_Example.release.xcconfig"; sourceTree = ""; }; - 3673564CCB64DE360C8CB97F /* Pods-Storage_IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests/Pods-Storage_IntegrationTests.debug.xcconfig"; sourceTree = ""; }; - 36DF4C7B93E6FE7AD8F88A38 /* Pods_Storage_IntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_IntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 3E84D28D93B8196D6A483F15 /* Pods-Storage_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests/Pods-Storage_Tests.debug.xcconfig"; sourceTree = ""; }; - 4A8B7AE7C053949F6BBBDD3E /* Pods-Database_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests/Pods-Database_Tests.release.xcconfig"; sourceTree = ""; }; + 0FBAE5798DCB94C9906773C4 /* Pods_Database_IntegrationTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_IntegrationTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 151BA010E214D6892BB84638 /* Pods-Storage_Example_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example_macOS/Pods-Storage_Example_macOS.debug.xcconfig"; sourceTree = ""; }; + 1D71F5289CE296DAF099055B /* Pods-Core_Example_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example_macOS/Pods-Core_Example_macOS.release.xcconfig"; sourceTree = ""; }; + 1D81C7B58B484ADBACBBD404 /* Pods-Storage_Example_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example_macOS/Pods-Storage_Example_macOS.release.xcconfig"; sourceTree = ""; }; + 1E31642E764D25811E378FE5 /* Pods-Storage_IntegrationTests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests_iOS/Pods-Storage_IntegrationTests_iOS.debug.xcconfig"; sourceTree = ""; }; + 1EB1C884C0DD8B2A67F138F7 /* Pods-Core_Tests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests_iOS/Pods-Core_Tests_iOS.debug.xcconfig"; sourceTree = ""; }; + 20453CB242D5D3A942B50354 /* Pods-Database_Tests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests_iOS/Pods-Database_Tests_iOS.debug.xcconfig"; sourceTree = ""; }; + 250749E8701D9E197482958F /* Pods-Core_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests_iOS/Pods-Core_Tests_iOS.release.xcconfig"; sourceTree = ""; }; + 252CAA8955610722B3FDB809 /* Pods-Database_Example_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example_iOS/Pods-Database_Example_iOS.debug.xcconfig"; sourceTree = ""; }; + 33B9D617B528A586BBB22CE3 /* Pods-Database_Example_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example_iOS/Pods-Database_Example_iOS.release.xcconfig"; sourceTree = ""; }; + 3B67241DF1B67275CA11683A /* Pods_Auth_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 3CFDED6919C5EB23FBEC360E /* Pods-Auth_Example_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example_iOS/Pods-Auth_Example_iOS.release.xcconfig"; sourceTree = ""; }; + 439101D8922AE9DC78897FA1 /* Pods_Database_IntegrationTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_IntegrationTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 491500C8507A3B80D6FE1B61 /* Pods_Core_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 4F902A29FA956ADD762F6921 /* Pods_Messaging_Tests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Messaging_Tests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 55CF04372D55EE9115457D4B /* Pods-Storage_Tests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests_macOS/Pods-Storage_Tests_macOS.release.xcconfig"; sourceTree = ""; }; + 5AEA6E0678E8F5DFAAC04393 /* Pods-Auth_Example_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example_iOS/Pods-Auth_Example_iOS.debug.xcconfig"; sourceTree = ""; }; + 5C85D77EF5F0AC7EB04FFEE6 /* Pods_Auth_Example_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Example_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5D149A186F9ECAEA642BC70A /* Pods-Core_Tests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests_macOS/Pods-Core_Tests_macOS.debug.xcconfig"; sourceTree = ""; }; + 5EA05A554FC35E7C5F8E5CA9 /* Pods_Storage_Example_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Example_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 5ECB335A2721006A272B6319 /* Pods_Core_Tests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Tests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; 6003F591195388D20070C39A /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 60FCE4043D8FE42648646A7F /* Pods-Auth_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests/Pods-Auth_Tests.release.xcconfig"; sourceTree = ""; }; - 64928F2997FAF0EAEAC9B8CA /* Pods_Database_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 66C7EEA21795A3320088DEBE /* Pods_Database_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6A0FCB2A37144B3C05E519F6 /* Pods-Storage_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example/Pods-Storage_Example.debug.xcconfig"; sourceTree = ""; }; - 6BAD1CF3DDEDDD76EC87052D /* Pods-Storage_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example/Pods-Storage_Example.release.xcconfig"; sourceTree = ""; }; - 6D2E4A9396D707C5DEF9B74B /* Pods-Messaging_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Tests/Pods-Messaging_Tests.release.xcconfig"; sourceTree = ""; }; - 6E974DE29EBB9602E723757E /* Pods-Messaging_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Tests/Pods-Messaging_Tests.debug.xcconfig"; sourceTree = ""; }; - 7727BC17692B98E2B7D0EA7A /* Pods-Database_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example/Pods-Database_Example.debug.xcconfig"; sourceTree = ""; }; + 659F5E0EE747A8831F95BB6A /* Pods-Storage_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests_iOS/Pods-Storage_Tests_iOS.release.xcconfig"; sourceTree = ""; }; + 66C8AD396012BCC0A5112A85 /* Pods_Auth_Tests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Tests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A755474C372E792A35598FE /* Pods_Messaging_Example_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Messaging_Example_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6B311CFB1407D62B89196FA6 /* Pods-Database_IntegrationTests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests_macOS/Pods-Database_IntegrationTests_macOS.release.xcconfig"; sourceTree = ""; }; + 6E7C47E104D6D59E31DE6BC7 /* Pods-Storage_Example_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example_iOS/Pods-Storage_Example_iOS.release.xcconfig"; sourceTree = ""; }; + 6F7376F39846E902979416D4 /* Pods_Database_Example_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Example_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6FAA689FDCBD3261300292D5 /* Pods-Database_IntegrationTests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests_macOS/Pods-Database_IntegrationTests_macOS.debug.xcconfig"; sourceTree = ""; }; + 73B480AA654FC97FA72C6293 /* Pods_Storage_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 81E83B5ABAE219234F213B27 /* Pods_Database_Tests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Tests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 8496034D8156555C5FCF8F14 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; - 884B87C50C7C950BC18E9091 /* Pods-Messaging_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Example/Pods-Messaging_Example.debug.xcconfig"; sourceTree = ""; }; - 8E32E359BE29C3100CF51FC4 /* Pods-Core_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests/Pods-Core_Tests.debug.xcconfig"; sourceTree = ""; }; - 8F77C04C2E764FBB0F6C05C6 /* Pods-Core_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example/Pods-Core_Example.release.xcconfig"; sourceTree = ""; }; - A6903B88963F6FD1857889E6 /* Pods-Messaging_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Example/Pods-Messaging_Example.release.xcconfig"; sourceTree = ""; }; + 862CC98282A6123508E8CA49 /* Pods-Database_Example_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example_macOS/Pods-Database_Example_macOS.release.xcconfig"; sourceTree = ""; }; + 88F663265024D7EE7A9D9706 /* Pods_Storage_Tests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Tests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 8D6342869F0562D44DB08B3E /* Pods-Core_Example_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example_iOS/Pods-Core_Example_iOS.debug.xcconfig"; sourceTree = ""; }; + 93814BE83D93EE757314FA2D /* Pods-Storage_IntegrationTests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests_macOS/Pods-Storage_IntegrationTests_macOS.debug.xcconfig"; sourceTree = ""; }; + 97768125F45377F35CA86EDC /* Pods_Database_Tests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Tests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9F0AFFA90A9C1A9D334B0564 /* Pods-Core_Example_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example_iOS/Pods-Core_Example_iOS.release.xcconfig"; sourceTree = ""; }; + A297C4C2BC1856144C88DF94 /* Pods-Database_IntegrationTests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests_iOS/Pods-Database_IntegrationTests_iOS.release.xcconfig"; sourceTree = ""; }; + A77589942C6AB46A7BFC24A3 /* Pods-Storage_Example_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Example_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Example_iOS/Pods-Storage_Example_iOS.debug.xcconfig"; sourceTree = ""; }; + AA63A277F8A24228C5E3C882 /* Pods-Auth_Tests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests_macOS/Pods-Auth_Tests_macOS.release.xcconfig"; sourceTree = ""; }; + AB624D103857665A41CAE8E6 /* Pods-Database_Tests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests_macOS/Pods-Database_Tests_macOS.release.xcconfig"; sourceTree = ""; }; + AB69974504A1071F15C41E70 /* Pods-Messaging_Example_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Example_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Example_iOS/Pods-Messaging_Example_iOS.release.xcconfig"; sourceTree = ""; }; + AC2ED7A06FF0EAA148CA8144 /* Pods-Messaging_Example_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Example_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Example_iOS/Pods-Messaging_Example_iOS.debug.xcconfig"; sourceTree = ""; }; + AE6C9DD139E1FD21DC0F1082 /* Pods_Core_Tests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Tests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AF6414F985B340F104ABE09C /* Pods-Messaging_Tests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Tests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Tests_iOS/Pods-Messaging_Tests_iOS.debug.xcconfig"; sourceTree = ""; }; AFAF36F41EC28C25004BDEE5 /* Shared.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Shared.xcassets; path = Shared/Shared.xcassets; sourceTree = ""; }; - AFC8BA9C1EBD230E00B8EEAE /* NotificationsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = NotificationsController.swift; path = App/NotificationsController.swift; sourceTree = ""; }; - AFC8BA9E1EBD51A700B8EEAE /* Environment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = Environment.swift; path = App/Environment.swift; sourceTree = ""; }; + AFC8BA9C1EBD230E00B8EEAE /* NotificationsController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationsController.swift; sourceTree = ""; }; + AFC8BA9E1EBD51A700B8EEAE /* Environment.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Environment.swift; sourceTree = ""; }; AFC8BAA11EC257D700B8EEAE /* Messaging_Example-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Messaging_Example-Bridging-Header.h"; sourceTree = ""; }; AFC8BAA21EC257D800B8EEAE /* FIRSampleAppUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FIRSampleAppUtilities.h; path = Shared/FIRSampleAppUtilities.h; sourceTree = ""; }; AFC8BAA31EC257D800B8EEAE /* FIRSampleAppUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = FIRSampleAppUtilities.m; path = Shared/FIRSampleAppUtilities.m; sourceTree = ""; }; - AFD562E51EB13C6D00EA2233 /* Messaging_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Messaging_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - AFD562FF1EB13DF200EA2233 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = App/AppDelegate.swift; sourceTree = ""; }; - AFD563001EB13DF200EA2233 /* Messaging-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Messaging-Info.plist"; path = "App/Messaging-Info.plist"; sourceTree = ""; }; - AFD563011EB13DF200EA2233 /* MessagingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = MessagingViewController.swift; path = App/MessagingViewController.swift; sourceTree = ""; }; - AFD563091EB1400900EA2233 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = App/Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - AFD5630B1EB1400900EA2233 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = App/Base.lproj/Main.storyboard; sourceTree = ""; }; + AFD562E51EB13C6D00EA2233 /* Messaging_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Messaging_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD562FF1EB13DF200EA2233 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + AFD563001EB13DF200EA2233 /* Messaging-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Messaging-Info.plist"; sourceTree = ""; }; + AFD563011EB13DF200EA2233 /* MessagingViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagingViewController.swift; sourceTree = ""; }; AFD563131EB1466100EA2233 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "GoogleService-Info.plist"; path = "App/GoogleService-Info.plist"; sourceTree = ""; }; - AFD563141EB29B8C00EA2233 /* Messaging_Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = Messaging_Example.entitlements; path = App/Messaging_Example.entitlements; sourceTree = ""; }; - AFD563161EBBEF7B00EA2233 /* Data+MessagingExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = "Data+MessagingExtensions.swift"; path = "App/Data+MessagingExtensions.swift"; sourceTree = ""; }; - BEEA177FFAAB9FA02F898C51 /* Pods-Database_IntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests/Pods-Database_IntegrationTests.release.xcconfig"; sourceTree = ""; }; - C45949C3AB12F54D27702387 /* Pods-Auth_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example/Pods-Auth_Example.debug.xcconfig"; sourceTree = ""; }; - C8A6D15690286B6BB4CB8023 /* Pods_Messaging_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Messaging_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CA86AD35456DA6130F7DE02C /* Pods-Storage_IntegrationTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests/Pods-Storage_IntegrationTests.release.xcconfig"; sourceTree = ""; }; - D52CEDD0146DF63640A4C3A5 /* Pods_Core_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D58064F9C4DE303997B89D2E /* Pods-Storage_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests/Pods-Storage_Tests.release.xcconfig"; sourceTree = ""; }; - DA7879CD6EE51EE4E20937C8 /* Pods_Storage_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + AFD563141EB29B8C00EA2233 /* Messaging_Example.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Messaging_Example.entitlements; sourceTree = ""; }; + AFD563161EBBEF7B00EA2233 /* Data+MessagingExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Data+MessagingExtensions.swift"; sourceTree = ""; }; + B36A2A837EF9387CBF9FE7F6 /* Pods-Database_Example_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example_macOS/Pods-Database_Example_macOS.debug.xcconfig"; sourceTree = ""; }; + B41089F21AD56BFCAFF09C89 /* Pods-Core_Example_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example_macOS/Pods-Core_Example_macOS.debug.xcconfig"; sourceTree = ""; }; + BE87180EF72455631F684021 /* Pods_Database_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + BFF6849AC334804952C8B985 /* Pods-Storage_Tests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests_iOS/Pods-Storage_Tests_iOS.debug.xcconfig"; sourceTree = ""; }; + C1C9B9A9F39B3A2C4620B31D /* Pods_Storage_IntegrationTests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_IntegrationTests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C2F672645182329577757001 /* Pods-Auth_Example_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example_macOS/Pods-Auth_Example_macOS.release.xcconfig"; sourceTree = ""; }; + CAD129FFEC477E1129AE6AA1 /* Pods_Core_Example_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Core_Example_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CBB9C19A1D046D56AF6BD820 /* Pods-Storage_IntegrationTests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests_macOS/Pods-Storage_IntegrationTests_macOS.release.xcconfig"; sourceTree = ""; }; + CECEF04E3B788FA2FA9B29F1 /* Pods_Auth_Tests_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Tests_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D018534A1EDACED4003A645C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + D018534C1EDACED4003A645C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + D01853791EDAD084003A645C /* Auth_Example_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Auth_Example_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D018537C1EDAD0E6003A645C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + D018537D1EDAD0E6003A645C /* FIRAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRAppDelegate.h; sourceTree = ""; }; + D018537E1EDAD0E6003A645C /* FIRAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRAppDelegate.m; sourceTree = ""; }; + D018537F1EDAD0E6003A645C /* FIRViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRViewController.h; sourceTree = ""; }; + D01853801EDAD0E6003A645C /* FIRViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRViewController.m; sourceTree = ""; }; + D01853811EDAD0E6003A645C /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + D01853821EDAD0E6003A645C /* Auth-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Auth-Info.plist"; sourceTree = ""; }; + D01853C61EDAD364003A645C /* Auth_Tests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Auth_Tests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D064E6961ED9B1BF001956DF /* Core_Example_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Core_Example_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D064E6981ED9B1BF001956DF /* FIRAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRAppDelegate.h; sourceTree = ""; }; + D064E6991ED9B1BF001956DF /* FIRAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRAppDelegate.m; sourceTree = ""; }; + D064E69C1ED9B1BF001956DF /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + D064E69E1ED9B1BF001956DF /* FIRViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRViewController.h; sourceTree = ""; }; + D064E69F1ED9B1BF001956DF /* FIRViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRViewController.m; sourceTree = ""; }; + D064E6A41ED9B1BF001956DF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + D064E6A61ED9B1BF001956DF /* Core-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Core-Info.plist"; sourceTree = ""; }; + D064E6BF1ED9B31C001956DF /* Core_Tests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Core_Tests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D090052D1EDB2FA300154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Auth-Core-Root-iOS/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = "OCMock-iOS/OCMock.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = "OCMock-OSX/OCMock.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D090054E1EDB366100154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Auth-Core-Root-OSX/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005521EDB36BD00154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Root-iOS/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005541EDB36DB00154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Root-Storage-OSX/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005561EDB36ED00154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Database-Root-iOS/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D090055B1EDB372000154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Database-Root-OSX/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D090055E1EDB372E00154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Messaging-Root/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005661EDB37A600154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Root-Storage-iOS/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D09005691EDB37B600154410 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "FirebaseDev-Core-Root-OSX/FirebaseDev.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EDB2CD1EDA04F800B6C31B /* Storage_Example_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Storage_Example_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EDB2D01EDA056A00B6C31B /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + D0EDB2D11EDA056A00B6C31B /* FIRAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRAppDelegate.h; sourceTree = ""; }; + D0EDB2D21EDA056A00B6C31B /* FIRAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRAppDelegate.m; sourceTree = ""; }; + D0EDB2D31EDA056A00B6C31B /* FIRViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FIRViewController.h; sourceTree = ""; }; + D0EDB2D41EDA056A00B6C31B /* FIRViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FIRViewController.m; sourceTree = ""; }; + D0EDB2D51EDA056A00B6C31B /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + D0EDB2D61EDA056A00B6C31B /* Storage-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Storage-Info.plist"; sourceTree = ""; }; + D0EDB2F61EDA06CB00B6C31B /* Storage_Tests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_Tests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D0EDB3071EDA06D500B6C31B /* Storage_IntegrationTests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_IntegrationTests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D0FE8A171ED9C6D2003F6722 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = macOS/Base.lproj/Main.storyboard; sourceTree = ""; }; + D0FE8A181ED9C6D2003F6722 /* Database-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Database-Info.plist"; path = "macOS/Database-Info.plist"; sourceTree = ""; }; + D0FE8A191ED9C6D2003F6722 /* FIRAppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FIRAppDelegate.h; path = macOS/FIRAppDelegate.h; sourceTree = ""; }; + D0FE8A1A1ED9C6D2003F6722 /* FIRAppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FIRAppDelegate.m; path = macOS/FIRAppDelegate.m; sourceTree = ""; }; + D0FE8A1B1ED9C6D2003F6722 /* FIRViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = FIRViewController.h; path = macOS/FIRViewController.h; sourceTree = ""; }; + D0FE8A1C1ED9C6D2003F6722 /* FIRViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = FIRViewController.m; path = macOS/FIRViewController.m; sourceTree = ""; }; + D0FE8A1D1ED9C6D2003F6722 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = main.m; path = macOS/main.m; sourceTree = ""; }; + D0FE8A2F1ED9C804003F6722 /* Database_Example_macOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Database_Example_macOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D0FE8A621ED9C870003F6722 /* Database_Tests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_Tests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D0FE8A8C1ED9C87B003F6722 /* Database_IntegrationTests_macOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_IntegrationTests_macOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + D4E15AD159B5F9FD595AD761 /* Pods-Auth_Example_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Example_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Example_macOS/Pods-Auth_Example_macOS.debug.xcconfig"; sourceTree = ""; }; + D8324AEFAEEF81EEDE114E33 /* Pods-Auth_Tests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests_iOS/Pods-Auth_Tests_iOS.debug.xcconfig"; sourceTree = ""; }; + DAEC0C3CA3C043F584C0D281 /* Pods-Database_IntegrationTests_iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests_iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests_iOS/Pods-Database_IntegrationTests_iOS.debug.xcconfig"; sourceTree = ""; }; DE0E5BB51EA7D91C00FAA825 /* FIRAuthAppCredentialTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthAppCredentialTests.m; sourceTree = ""; }; DE0E5BB61EA7D91C00FAA825 /* FIRAuthAppDelegateProxyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthAppDelegateProxyTests.m; sourceTree = ""; }; DE0E5BB91EA7D92E00FAA825 /* FIRVerifyClientRequestTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRVerifyClientRequestTest.m; sourceTree = ""; }; DE0E5BBA1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRVerifyClientResponseTests.m; sourceTree = ""; }; DE45C6641E7DA8CB009E6ACD /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; DE4E711A1E953ABC00070092 /* FirebaseDev.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = FirebaseDev.podspec; path = ../FirebaseDev.podspec; sourceTree = ""; }; - DE6F01AC1E95673C004AEE01 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-chgkzndqfwnawrfmbrhkugiybjre/Build/Products/Debug-iphonesimulator/FirebaseDev-Core-Root-Storage/FirebaseDev.framework"; sourceTree = ""; }; - DE6F01B11E9567BF004AEE01 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-chgkzndqfwnawrfmbrhkugiybjre/Build/Products/Debug-iphonesimulator/FirebaseDev-Auth-Core-Root/FirebaseDev.framework"; sourceTree = ""; }; - DE6F01B31E9567F1004AEE01 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-chgkzndqfwnawrfmbrhkugiybjre/Build/Products/Debug-iphonesimulator/FirebaseDev-Core/FirebaseDev.framework"; sourceTree = ""; }; DE750DB51EB3DD4000A75E47 /* FIRAuthAPNSTokenManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthAPNSTokenManagerTests.m; sourceTree = ""; }; DE750DB61EB3DD4000A75E47 /* FIRAuthAPNSTokenTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthAPNSTokenTests.m; sourceTree = ""; }; DE750DB71EB3DD4000A75E47 /* FIRAuthAppCredentialManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthAppCredentialManagerTests.m; sourceTree = ""; }; DE750DB81EB3DD4000A75E47 /* FIRAuthNotificationManagerTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRAuthNotificationManagerTests.m; sourceTree = ""; }; - DE7B8D051E8EF077009EB6DF /* Database_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Database_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DE7B8D1D1E8EF078009EB6DF /* Database_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DE7B8D051E8EF077009EB6DF /* Database_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Database_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DE7B8D1D1E8EF078009EB6DF /* Database_Tests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Database_Tests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE7B8D2D1E8EF202009EB6DF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; DE7B8D2F1E8EF202009EB6DF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; DE7B8D311E8EF202009EB6DF /* FIRAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRAppDelegate.h; sourceTree = ""; }; @@ -481,8 +937,8 @@ DE7B8D8D1E8EF203009EB6DF /* SenTest+FWaiter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "SenTest+FWaiter.m"; sourceTree = ""; }; DE7B8D8E1E8EF203009EB6DF /* syncPointSpec.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = syncPointSpec.json; sourceTree = ""; }; DE7B8DD21E8F1CA7009EB6DF /* Database-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Database-Info.plist"; sourceTree = ""; }; - DE9314C61E86C6BD0083EDBF /* Auth_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Auth_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DE9314DE1E86C6BE0083EDBF /* Auth_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Auth_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DE9314C61E86C6BD0083EDBF /* Auth_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Auth_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DE9314DE1E86C6BE0083EDBF /* Auth_Tests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Auth_Tests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE9314EE1E86C6FF0083EDBF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; DE9314F01E86C6FF0083EDBF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; DE9314F21E86C6FF0083EDBF /* FIRAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRAppDelegate.h; sourceTree = ""; }; @@ -535,7 +991,7 @@ DE9315241E86C6FF0083EDBF /* OCMStubRecorder+FIRAuthUnitTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OCMStubRecorder+FIRAuthUnitTests.m"; sourceTree = ""; }; DE9315251E86C6FF0083EDBF /* Tests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; DE9315801E86C7F70083EDBF /* Auth-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Auth-Info.plist"; sourceTree = ""; }; - DE9315A71E8738460083EDBF /* Messaging_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Messaging_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DE9315A71E8738460083EDBF /* Messaging_Tests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Messaging_Tests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE9315C31E8738B70083EDBF /* FIRMessagingClientTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRMessagingClientTest.m; sourceTree = ""; }; DE9315C41E8738B70083EDBF /* FIRMessagingCodedInputStreamTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRMessagingCodedInputStreamTest.m; sourceTree = ""; }; DE9315C51E8738B70083EDBF /* FIRMessagingConnectionTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRMessagingConnectionTest.m; sourceTree = ""; }; @@ -570,8 +1026,8 @@ DEB139CA1E734D9D00AC236D /* FIRStorageUpdateMetadataTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRStorageUpdateMetadataTests.m; sourceTree = ""; }; DEB139CB1E734D9D00AC236D /* FIRStorageUtilsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRStorageUtilsTests.m; sourceTree = ""; }; DEB139CC1E734D9D00AC236D /* Tests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; - DEB13A081E73506A00AC236D /* Storage_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Storage_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DEB13A231E73507E00AC236D /* Storage_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DEB13A081E73506A00AC236D /* Storage_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Storage_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DEB13A231E73507E00AC236D /* Storage_Tests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Storage_Tests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DEB61E781E7C542600C04B96 /* libsqlite3.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.tbd; path = usr/lib/libsqlite3.tbd; sourceTree = SDKROOT; }; DEB61EBA1E7C5DBB00C04B96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; DEB61EBC1E7C5DBB00C04B96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; @@ -582,11 +1038,9 @@ DEB61EC11E7C5DBB00C04B96 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; DEB61EC31E7C5DBB00C04B96 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; DEB61EC41E7C5DBB00C04B96 /* Storage-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Storage-Info.plist"; sourceTree = ""; }; - DEC0EE0E1EA42D5D007E2177 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-chgkzndqfwnawrfmbrhkugiybjre/Build/Products/Debug-iphonesimulator/FirebaseDev-Core-Messaging-Root/FirebaseDev.framework"; sourceTree = ""; }; - DEC0EE101EA42D73007E2177 /* FirebaseDev.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FirebaseDev.framework; path = "../../../Library/Developer/Xcode/DerivedData/Firebase-chgkzndqfwnawrfmbrhkugiybjre/Build/Products/Debug-iphonesimulator/FirebaseDev-Core-Database-Root/FirebaseDev.framework"; sourceTree = ""; }; DECE03991E9ECFF500164CA4 /* FIRPhoneAuthProviderTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRPhoneAuthProviderTests.m; sourceTree = ""; }; - DEE14D411E84464D006FA992 /* Core_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Core_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DEE14D591E84464D006FA992 /* Core_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Core_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DEE14D411E84464D006FA992 /* Core_Example_iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Core_Example_iOS.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DEE14D591E84464D006FA992 /* Core_Tests_iOS.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Core_Tests_iOS.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DEE14D691E844677006FA992 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; DEE14D6B1E844677006FA992 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; DEE14D6C1E844677006FA992 /* Core-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Core-Info.plist"; sourceTree = ""; }; @@ -605,14 +1059,14 @@ DEE14D7B1E844677006FA992 /* FIRTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FIRTestCase.h; sourceTree = ""; }; DEE14D7C1E844677006FA992 /* FIRTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FIRTestCase.m; sourceTree = ""; }; DEE14D7D1E844677006FA992 /* Tests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = ""; }; + DF22AB406738B8C54A49A248 /* Pods-Auth_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Auth_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Auth_Tests_iOS/Pods-Auth_Tests_iOS.release.xcconfig"; sourceTree = ""; }; + E1DB278AD387CAB5D57BF135 /* Pods_Storage_IntegrationTests_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Storage_IntegrationTests_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E27502AAA61906D3F236AD2C /* Pods-Storage_Tests_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_Tests_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_Tests_macOS/Pods-Storage_Tests_macOS.debug.xcconfig"; sourceTree = ""; }; E2C2834C90DBAB56D568189F /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; - E3DEB3CBB1440528DFE1E197 /* Pods_Database_IntegrationTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Database_IntegrationTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - E9D28B14E5B756D3A1938CB2 /* Pods_Messaging_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Messaging_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - EE077EBC5A738E61E06B5FA2 /* Pods-Database_IntegrationTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_IntegrationTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_IntegrationTests/Pods-Database_IntegrationTests.debug.xcconfig"; sourceTree = ""; }; - EEA5C6257533CD27D37A14FC /* Pods-Database_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Example/Pods-Database_Example.release.xcconfig"; sourceTree = ""; }; - F0A9002767E1A9D63CEECFF6 /* Pods-Database_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests/Pods-Database_Tests.debug.xcconfig"; sourceTree = ""; }; - FAB9666F29A81704CA956317 /* Pods_Auth_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Auth_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FF57915145DB00008E7C56A8 /* Pods-Core_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Example/Pods-Core_Example.debug.xcconfig"; sourceTree = ""; }; + E74998B8B0ABF367C66518FE /* Pods-Database_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Database_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Database_Tests_iOS/Pods-Database_Tests_iOS.release.xcconfig"; sourceTree = ""; }; + F02831CE3FC789F6F6A656AF /* Pods-Storage_IntegrationTests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Storage_IntegrationTests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Storage_IntegrationTests_iOS/Pods-Storage_IntegrationTests_iOS.release.xcconfig"; sourceTree = ""; }; + F08B9FA857DB758D0925510E /* Pods-Messaging_Tests_iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Messaging_Tests_iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Messaging_Tests_iOS/Pods-Messaging_Tests_iOS.release.xcconfig"; sourceTree = ""; }; + F57A7D2DD698EE8495DB047B /* Pods-Core_Tests_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Core_Tests_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Core_Tests_macOS/Pods-Core_Tests_macOS.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -620,8 +1074,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 06B47E8C1EC39ADF00170C02 /* FirebaseDev.framework in Frameworks */, - 8D14BB390A3E191CCF78BF91 /* Pods_Storage_IntegrationTests.framework in Frameworks */, + 296461E35E6F9E49566104CC /* Pods_Storage_IntegrationTests_iOS.framework in Frameworks */, + D09005681EDB37AE00154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -629,8 +1083,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0637BA651EC0F99700CAEFD4 /* FirebaseDev.framework in Frameworks */, - 9653E6AB7DDD8B5E4814442D /* Pods_Database_IntegrationTests.framework in Frameworks */, + BB8642A73C1F482CBEEEA18B /* Pods_Database_IntegrationTests_iOS.framework in Frameworks */, + D09005581EDB370500154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -638,7 +1092,93 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 83C9C772827554752364B400 /* Pods_Messaging_Example.framework in Frameworks */, + 5AAA7CC9D289EC7A49A87097 /* Pods_Messaging_Example_iOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D018536D1EDAD084003A645C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 46BAF46355EA2FB31BFBB9CC /* Pods_Auth_Example_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D01853BD1EDAD364003A645C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 72A4F3F8704E8148ADF12B0D /* Pods_Auth_Tests_macOS.framework in Frameworks */, + D090054F1EDB366100154410 /* FirebaseDev.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6931ED9B1BF001956DF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + FFE130CF56C04A4F1F90F58C /* Pods_Core_Example_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6B61ED9B31C001956DF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 45A77EEB247ECF2500F13784 /* Pods_Core_Tests_macOS.framework in Frameworks */, + D090056B1EDB37DD00154410 /* FirebaseDev.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2C21EDA04F800B6C31B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CAE6C9ABFF3DA328D42457A4 /* Pods_Storage_Example_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2ED1EDA06CB00B6C31B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C01629804D17B03619DABA5D /* Pods_Storage_Tests_macOS.framework in Frameworks */, + D090056D1EDB37E800154410 /* FirebaseDev.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2FE1EDA06D500B6C31B /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BA5BCACADA152589E33D130 /* Pods_Storage_IntegrationTests_macOS.framework in Frameworks */, + D090056C1EDB37E500154410 /* FirebaseDev.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A241ED9C804003F6722 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C660C27672BC028C144E4937 /* Pods_Database_Example_macOS.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A561ED9C86F003F6722 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 960665EC1C5F7A0E843A354F /* Pods_Database_Tests_macOS.framework in Frameworks */, + D090055C1EDB372000154410 /* FirebaseDev.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A831ED9C87B003F6722 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1D6A9D4E7CD72397532C488F /* Pods_Database_IntegrationTests_macOS.framework in Frameworks */, + D090055D1EDB372800154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -646,7 +1186,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 48402D5F3CB17E091298C7FF /* Pods_Database_Example.framework in Frameworks */, + 105513F600A63173BC552556 /* Pods_Database_Example_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -654,8 +1194,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DEC0EE111EA42D73007E2177 /* FirebaseDev.framework in Frameworks */, - 260F4B35536ACE792D9BD6C6 /* Pods_Database_Tests.framework in Frameworks */, + B4C784B02835699995BDB245 /* Pods_Database_Tests_iOS.framework in Frameworks */, + D09005571EDB36ED00154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -663,7 +1203,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 22DD1E787F5347BD66CC842B /* Pods_Auth_Example.framework in Frameworks */, + 3B5B4BDF69267238D023614C /* Pods_Auth_Example_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -671,8 +1211,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DEE13AA11EA170D500D1BABA /* FirebaseDev.framework in Frameworks */, - 4768966C0C99B8D4215826A5 /* Pods_Auth_Tests.framework in Frameworks */, + D22080FB4B7F4238FAC548D6 /* Pods_Auth_Tests_iOS.framework in Frameworks */, + D090052E1EDB2FA300154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -680,8 +1220,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DEC0EE0F1EA42D5D007E2177 /* FirebaseDev.framework in Frameworks */, - EA9A4B8DCCA67EB6F9B4008F /* Pods_Messaging_Tests.framework in Frameworks */, + 7AE9A7433F2BD9A52022AC71 /* Pods_Messaging_Tests_iOS.framework in Frameworks */, + D090055F1EDB372E00154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -692,7 +1232,7 @@ DEB139F41E73506A00AC236D /* CoreGraphics.framework in Frameworks */, DEB139F51E73506A00AC236D /* UIKit.framework in Frameworks */, DEB139F61E73506A00AC236D /* Foundation.framework in Frameworks */, - BDE625D72CA3B8918088E0F5 /* Pods_Storage_Example.framework in Frameworks */, + 0E069577AA9CF14E7625DBA6 /* Pods_Storage_Example_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -700,8 +1240,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DE6F01B01E95675E004AEE01 /* FirebaseDev.framework in Frameworks */, - 7EA36B802D84DD89CE6203A0 /* Pods_Storage_Tests.framework in Frameworks */, + 53F96D962AC7E1FB44B321D7 /* Pods_Storage_Tests_iOS.framework in Frameworks */, + D09005671EDB37A600154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -709,7 +1249,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 3054DA05818345789EA0C5B0 /* Pods_Core_Example.framework in Frameworks */, + 79A15731AA31012CD937CF3A /* Pods_Core_Example_iOS.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -717,8 +1257,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DEC0EE0D1EA427CC007E2177 /* FirebaseDev.framework in Frameworks */, - 8CE9133C8720B1C600F7C731 /* Pods_Core_Tests.framework in Frameworks */, + 7A02646DEF386689CCFB9011 /* Pods_Core_Tests_iOS.framework in Frameworks */, + D09005531EDB36BD00154410 /* FirebaseDev.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -801,25 +1341,35 @@ DEB139B31E734D9D00AC236D /* Storage */, 6003F58C195388D20070C39A /* Frameworks */, 6003F58B195388D20070C39A /* Products */, - BDA0613720DCD29C1C3C3791 /* Pods */, + AE25F8B7BBCD580A43061D0D /* Pods */, ); sourceTree = ""; }; 6003F58B195388D20070C39A /* Products */ = { isa = PBXGroup; children = ( - DEB13A081E73506A00AC236D /* Storage_Example.app */, - DEB13A231E73507E00AC236D /* Storage_Tests.xctest */, - DEE14D411E84464D006FA992 /* Core_Example.app */, - DEE14D591E84464D006FA992 /* Core_Tests.xctest */, - DE9314C61E86C6BD0083EDBF /* Auth_Example.app */, - DE9314DE1E86C6BE0083EDBF /* Auth_Tests.xctest */, - DE9315A71E8738460083EDBF /* Messaging_Tests.xctest */, - DE7B8D051E8EF077009EB6DF /* Database_Example.app */, - DE7B8D1D1E8EF078009EB6DF /* Database_Tests.xctest */, - AFD562E51EB13C6D00EA2233 /* Messaging_Example.app */, - 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests.xctest */, - 06121EBC1EC399C50008D70E /* Storage_IntegrationTests.xctest */, + DEB13A081E73506A00AC236D /* Storage_Example_iOS.app */, + DEB13A231E73507E00AC236D /* Storage_Tests_iOS.xctest */, + DEE14D411E84464D006FA992 /* Core_Example_iOS.app */, + DEE14D591E84464D006FA992 /* Core_Tests_iOS.xctest */, + DE9314C61E86C6BD0083EDBF /* Auth_Example_iOS.app */, + DE9314DE1E86C6BE0083EDBF /* Auth_Tests_iOS.xctest */, + DE9315A71E8738460083EDBF /* Messaging_Tests_iOS.xctest */, + DE7B8D051E8EF077009EB6DF /* Database_Example_iOS.app */, + DE7B8D1D1E8EF078009EB6DF /* Database_Tests_iOS.xctest */, + AFD562E51EB13C6D00EA2233 /* Messaging_Example_iOS.app */, + 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests_iOS.xctest */, + 06121EBC1EC399C50008D70E /* Storage_IntegrationTests_iOS.xctest */, + D064E6961ED9B1BF001956DF /* Core_Example_macOS.app */, + D064E6BF1ED9B31C001956DF /* Core_Tests_macOS.xctest */, + D0FE8A2F1ED9C804003F6722 /* Database_Example_macOS.app */, + D0FE8A621ED9C870003F6722 /* Database_Tests_macOS.xctest */, + D0FE8A8C1ED9C87B003F6722 /* Database_IntegrationTests_macOS.xctest */, + D0EDB2CD1EDA04F800B6C31B /* Storage_Example_macOS.app */, + D0EDB2F61EDA06CB00B6C31B /* Storage_Tests_macOS.xctest */, + D0EDB3071EDA06D500B6C31B /* Storage_IntegrationTests_macOS.xctest */, + D01853791EDAD084003A645C /* Auth_Example_macOS.app */, + D01853C61EDAD364003A645C /* Auth_Tests_macOS.xctest */, ); name = Products; sourceTree = ""; @@ -827,30 +1377,44 @@ 6003F58C195388D20070C39A /* Frameworks */ = { isa = PBXGroup; children = ( - 06B47E8B1EC39ADF00170C02 /* FirebaseDev.framework */, - 0637BA641EC0F99700CAEFD4 /* FirebaseDev.framework */, - DEC0EE101EA42D73007E2177 /* FirebaseDev.framework */, - DEC0EE0E1EA42D5D007E2177 /* FirebaseDev.framework */, - DE6F01B31E9567F1004AEE01 /* FirebaseDev.framework */, - DE6F01B11E9567BF004AEE01 /* FirebaseDev.framework */, - DE6F01AC1E95673C004AEE01 /* FirebaseDev.framework */, + D09005691EDB37B600154410 /* FirebaseDev.framework */, + D09005661EDB37A600154410 /* FirebaseDev.framework */, + D090055E1EDB372E00154410 /* FirebaseDev.framework */, + D090055B1EDB372000154410 /* FirebaseDev.framework */, + D09005561EDB36ED00154410 /* FirebaseDev.framework */, + D09005541EDB36DB00154410 /* FirebaseDev.framework */, + D09005521EDB36BD00154410 /* FirebaseDev.framework */, + D090054E1EDB366100154410 /* FirebaseDev.framework */, + D090052D1EDB2FA300154410 /* FirebaseDev.framework */, + D09005301EDB32D600154410 /* OCMock-iOS/OCMock.framework */, + D090053F1EDB34F900154410 /* OCMock-OSX/OCMock.framework */, DE45C6641E7DA8CB009E6ACD /* XCTest.framework */, DEB61E781E7C542600C04B96 /* libsqlite3.tbd */, 6003F58D195388D20070C39A /* Foundation.framework */, 6003F58F195388D20070C39A /* CoreGraphics.framework */, 6003F591195388D20070C39A /* UIKit.framework */, - 1EEA0F965ABC48C695972509 /* Pods_Auth_Example.framework */, - FAB9666F29A81704CA956317 /* Pods_Auth_Tests.framework */, - 08A821396D7D1089ECE810EF /* Pods_Core_Example.framework */, - D52CEDD0146DF63640A4C3A5 /* Pods_Core_Tests.framework */, - 66C7EEA21795A3320088DEBE /* Pods_Database_Example.framework */, - 64928F2997FAF0EAEAC9B8CA /* Pods_Database_Tests.framework */, - C8A6D15690286B6BB4CB8023 /* Pods_Messaging_Example.framework */, - E9D28B14E5B756D3A1938CB2 /* Pods_Messaging_Tests.framework */, - DA7879CD6EE51EE4E20937C8 /* Pods_Storage_Example.framework */, - 16E92590A6B517109A2B219F /* Pods_Storage_Tests.framework */, - E3DEB3CBB1440528DFE1E197 /* Pods_Database_IntegrationTests.framework */, - 36DF4C7B93E6FE7AD8F88A38 /* Pods_Storage_IntegrationTests.framework */, + 5C85D77EF5F0AC7EB04FFEE6 /* Pods_Auth_Example_iOS.framework */, + 3B67241DF1B67275CA11683A /* Pods_Auth_Example_macOS.framework */, + CECEF04E3B788FA2FA9B29F1 /* Pods_Auth_Tests_iOS.framework */, + 66C8AD396012BCC0A5112A85 /* Pods_Auth_Tests_macOS.framework */, + CAD129FFEC477E1129AE6AA1 /* Pods_Core_Example_iOS.framework */, + 491500C8507A3B80D6FE1B61 /* Pods_Core_Example_macOS.framework */, + AE6C9DD139E1FD21DC0F1082 /* Pods_Core_Tests_iOS.framework */, + 5ECB335A2721006A272B6319 /* Pods_Core_Tests_macOS.framework */, + 6F7376F39846E902979416D4 /* Pods_Database_Example_iOS.framework */, + BE87180EF72455631F684021 /* Pods_Database_Example_macOS.framework */, + 0FBAE5798DCB94C9906773C4 /* Pods_Database_IntegrationTests_iOS.framework */, + 439101D8922AE9DC78897FA1 /* Pods_Database_IntegrationTests_macOS.framework */, + 81E83B5ABAE219234F213B27 /* Pods_Database_Tests_iOS.framework */, + 97768125F45377F35CA86EDC /* Pods_Database_Tests_macOS.framework */, + 6A755474C372E792A35598FE /* Pods_Messaging_Example_iOS.framework */, + 4F902A29FA956ADD762F6921 /* Pods_Messaging_Tests_iOS.framework */, + 5EA05A554FC35E7C5F8E5CA9 /* Pods_Storage_Example_iOS.framework */, + 73B480AA654FC97FA72C6293 /* Pods_Storage_Example_macOS.framework */, + C1C9B9A9F39B3A2C4620B31D /* Pods_Storage_IntegrationTests_iOS.framework */, + E1DB278AD387CAB5D57BF135 /* Pods_Storage_IntegrationTests_macOS.framework */, + 018F5A73A5594B2BFB86FA4F /* Pods_Storage_Tests_iOS.framework */, + 88F663265024D7EE7A9D9706 /* Pods_Storage_Tests_macOS.framework */, ); name = Frameworks; sourceTree = ""; @@ -865,6 +1429,57 @@ name = "Podspec Metadata"; sourceTree = ""; }; + AE25F8B7BBCD580A43061D0D /* Pods */ = { + isa = PBXGroup; + children = ( + 5AEA6E0678E8F5DFAAC04393 /* Pods-Auth_Example_iOS.debug.xcconfig */, + 3CFDED6919C5EB23FBEC360E /* Pods-Auth_Example_iOS.release.xcconfig */, + D4E15AD159B5F9FD595AD761 /* Pods-Auth_Example_macOS.debug.xcconfig */, + C2F672645182329577757001 /* Pods-Auth_Example_macOS.release.xcconfig */, + D8324AEFAEEF81EEDE114E33 /* Pods-Auth_Tests_iOS.debug.xcconfig */, + DF22AB406738B8C54A49A248 /* Pods-Auth_Tests_iOS.release.xcconfig */, + 0555A4F3B37CB783D805569C /* Pods-Auth_Tests_macOS.debug.xcconfig */, + AA63A277F8A24228C5E3C882 /* Pods-Auth_Tests_macOS.release.xcconfig */, + 8D6342869F0562D44DB08B3E /* Pods-Core_Example_iOS.debug.xcconfig */, + 9F0AFFA90A9C1A9D334B0564 /* Pods-Core_Example_iOS.release.xcconfig */, + B41089F21AD56BFCAFF09C89 /* Pods-Core_Example_macOS.debug.xcconfig */, + 1D71F5289CE296DAF099055B /* Pods-Core_Example_macOS.release.xcconfig */, + 1EB1C884C0DD8B2A67F138F7 /* Pods-Core_Tests_iOS.debug.xcconfig */, + 250749E8701D9E197482958F /* Pods-Core_Tests_iOS.release.xcconfig */, + 5D149A186F9ECAEA642BC70A /* Pods-Core_Tests_macOS.debug.xcconfig */, + F57A7D2DD698EE8495DB047B /* Pods-Core_Tests_macOS.release.xcconfig */, + 252CAA8955610722B3FDB809 /* Pods-Database_Example_iOS.debug.xcconfig */, + 33B9D617B528A586BBB22CE3 /* Pods-Database_Example_iOS.release.xcconfig */, + B36A2A837EF9387CBF9FE7F6 /* Pods-Database_Example_macOS.debug.xcconfig */, + 862CC98282A6123508E8CA49 /* Pods-Database_Example_macOS.release.xcconfig */, + DAEC0C3CA3C043F584C0D281 /* Pods-Database_IntegrationTests_iOS.debug.xcconfig */, + A297C4C2BC1856144C88DF94 /* Pods-Database_IntegrationTests_iOS.release.xcconfig */, + 6FAA689FDCBD3261300292D5 /* Pods-Database_IntegrationTests_macOS.debug.xcconfig */, + 6B311CFB1407D62B89196FA6 /* Pods-Database_IntegrationTests_macOS.release.xcconfig */, + 20453CB242D5D3A942B50354 /* Pods-Database_Tests_iOS.debug.xcconfig */, + E74998B8B0ABF367C66518FE /* Pods-Database_Tests_iOS.release.xcconfig */, + 0431E01853516524ED683CB1 /* Pods-Database_Tests_macOS.debug.xcconfig */, + AB624D103857665A41CAE8E6 /* Pods-Database_Tests_macOS.release.xcconfig */, + AC2ED7A06FF0EAA148CA8144 /* Pods-Messaging_Example_iOS.debug.xcconfig */, + AB69974504A1071F15C41E70 /* Pods-Messaging_Example_iOS.release.xcconfig */, + AF6414F985B340F104ABE09C /* Pods-Messaging_Tests_iOS.debug.xcconfig */, + F08B9FA857DB758D0925510E /* Pods-Messaging_Tests_iOS.release.xcconfig */, + A77589942C6AB46A7BFC24A3 /* Pods-Storage_Example_iOS.debug.xcconfig */, + 6E7C47E104D6D59E31DE6BC7 /* Pods-Storage_Example_iOS.release.xcconfig */, + 151BA010E214D6892BB84638 /* Pods-Storage_Example_macOS.debug.xcconfig */, + 1D81C7B58B484ADBACBBD404 /* Pods-Storage_Example_macOS.release.xcconfig */, + 1E31642E764D25811E378FE5 /* Pods-Storage_IntegrationTests_iOS.debug.xcconfig */, + F02831CE3FC789F6F6A656AF /* Pods-Storage_IntegrationTests_iOS.release.xcconfig */, + 93814BE83D93EE757314FA2D /* Pods-Storage_IntegrationTests_macOS.debug.xcconfig */, + CBB9C19A1D046D56AF6BD820 /* Pods-Storage_IntegrationTests_macOS.release.xcconfig */, + BFF6849AC334804952C8B985 /* Pods-Storage_Tests_iOS.debug.xcconfig */, + 659F5E0EE747A8831F95BB6A /* Pods-Storage_Tests_iOS.release.xcconfig */, + E27502AAA61906D3F236AD2C /* Pods-Storage_Tests_macOS.debug.xcconfig */, + 55CF04372D55EE9115457D4B /* Pods-Storage_Tests_macOS.release.xcconfig */, + ); + name = Pods; + sourceTree = ""; + }; AFC8BAA01EC24B1600B8EEAE /* Shared */ = { isa = PBXGroup; children = ( @@ -876,6 +1491,44 @@ sourceTree = ""; }; AFD562F71EB13CC700EA2233 /* App */ = { + isa = PBXGroup; + children = ( + AFD563131EB1466100EA2233 /* GoogleService-Info.plist */, + D01853481EDACE1A003A645C /* iOS */, + ); + name = App; + sourceTree = ""; + }; + D01853461EDACC10003A645C /* iOS */ = { + isa = PBXGroup; + children = ( + DE9315801E86C7F70083EDBF /* Auth-Info.plist */, + DE9314ED1E86C6FF0083EDBF /* LaunchScreen.storyboard */, + DE9314EF1E86C6FF0083EDBF /* Main.storyboard */, + DE9314F21E86C6FF0083EDBF /* FIRAppDelegate.h */, + DE9314F31E86C6FF0083EDBF /* FIRAppDelegate.m */, + DE9314F41E86C6FF0083EDBF /* FIRViewController.h */, + DE9314F51E86C6FF0083EDBF /* FIRViewController.m */, + DE9314F81E86C6FF0083EDBF /* main.m */, + ); + path = iOS; + sourceTree = ""; + }; + D01853471EDACC10003A645C /* macOS */ = { + isa = PBXGroup; + children = ( + D018537B1EDAD0E6003A645C /* Main.storyboard */, + D018537D1EDAD0E6003A645C /* FIRAppDelegate.h */, + D018537E1EDAD0E6003A645C /* FIRAppDelegate.m */, + D018537F1EDAD0E6003A645C /* FIRViewController.h */, + D01853801EDAD0E6003A645C /* FIRViewController.m */, + D01853811EDAD0E6003A645C /* main.m */, + D01853821EDAD0E6003A645C /* Auth-Info.plist */, + ); + path = macOS; + sourceTree = ""; + }; + D01853481EDACE1A003A645C /* iOS */ = { isa = PBXGroup; children = ( AFD563001EB13DF200EA2233 /* Messaging-Info.plist */, @@ -885,57 +1538,74 @@ AFC8BA9E1EBD51A700B8EEAE /* Environment.swift */, AFD563011EB13DF200EA2233 /* MessagingViewController.swift */, AFC8BA9C1EBD230E00B8EEAE /* NotificationsController.swift */, - AFD563081EB1400900EA2233 /* LaunchScreen.storyboard */, - AFD5630A1EB1400900EA2233 /* Main.storyboard */, - AFD563131EB1466100EA2233 /* GoogleService-Info.plist */, + D01853491EDACED4003A645C /* LaunchScreen.storyboard */, + D018534B1EDACED4003A645C /* Main.storyboard */, ); - name = App; + name = iOS; + path = App/iOS; sourceTree = ""; }; - BDA0613720DCD29C1C3C3791 /* Pods */ = { + D0D857F61ED9ADA8002342D2 /* iOS */ = { isa = PBXGroup; children = ( - C45949C3AB12F54D27702387 /* Pods-Auth_Example.debug.xcconfig */, - 2F002D4E7FA7F07A830CCFDA /* Pods-Auth_Example.release.xcconfig */, - 18B5255FF5BEBF6F72C40F39 /* Pods-Auth_Tests.debug.xcconfig */, - 60FCE4043D8FE42648646A7F /* Pods-Auth_Tests.release.xcconfig */, - FF57915145DB00008E7C56A8 /* Pods-Core_Example.debug.xcconfig */, - 8F77C04C2E764FBB0F6C05C6 /* Pods-Core_Example.release.xcconfig */, - 8E32E359BE29C3100CF51FC4 /* Pods-Core_Tests.debug.xcconfig */, - 0B1BDA534E1F49931795B5E6 /* Pods-Core_Tests.release.xcconfig */, - 7727BC17692B98E2B7D0EA7A /* Pods-Database_Example.debug.xcconfig */, - EEA5C6257533CD27D37A14FC /* Pods-Database_Example.release.xcconfig */, - F0A9002767E1A9D63CEECFF6 /* Pods-Database_Tests.debug.xcconfig */, - 4A8B7AE7C053949F6BBBDD3E /* Pods-Database_Tests.release.xcconfig */, - 884B87C50C7C950BC18E9091 /* Pods-Messaging_Example.debug.xcconfig */, - A6903B88963F6FD1857889E6 /* Pods-Messaging_Example.release.xcconfig */, - 6E974DE29EBB9602E723757E /* Pods-Messaging_Tests.debug.xcconfig */, - 6D2E4A9396D707C5DEF9B74B /* Pods-Messaging_Tests.release.xcconfig */, - 6A0FCB2A37144B3C05E519F6 /* Pods-Storage_Example.debug.xcconfig */, - 6BAD1CF3DDEDDD76EC87052D /* Pods-Storage_Example.release.xcconfig */, - 3E84D28D93B8196D6A483F15 /* Pods-Storage_Tests.debug.xcconfig */, - D58064F9C4DE303997B89D2E /* Pods-Storage_Tests.release.xcconfig */, - EE077EBC5A738E61E06B5FA2 /* Pods-Database_IntegrationTests.debug.xcconfig */, - BEEA177FFAAB9FA02F898C51 /* Pods-Database_IntegrationTests.release.xcconfig */, - 3673564CCB64DE360C8CB97F /* Pods-Storage_IntegrationTests.debug.xcconfig */, - CA86AD35456DA6130F7DE02C /* Pods-Storage_IntegrationTests.release.xcconfig */, + DEE14D681E844677006FA992 /* LaunchScreen.storyboard */, + DEE14D6A1E844677006FA992 /* Main.storyboard */, + DEE14D6C1E844677006FA992 /* Core-Info.plist */, + DEE14D6D1E844677006FA992 /* FIRAppDelegate.h */, + DEE14D6E1E844677006FA992 /* FIRAppDelegate.m */, + DEE14D6F1E844677006FA992 /* FIRViewController.h */, + DEE14D701E844677006FA992 /* FIRViewController.m */, + DEE14D731E844677006FA992 /* main.m */, ); - name = Pods; + path = iOS; sourceTree = ""; }; - DE7B8D2A1E8EF202009EB6DF /* Database */ = { + D0D857F71ED9ADAE002342D2 /* macOS */ = { isa = PBXGroup; children = ( - DE7B8D2B1E8EF202009EB6DF /* App */, - DE7B8D381E8EF202009EB6DF /* Tests */, + D064E6981ED9B1BF001956DF /* FIRAppDelegate.h */, + D064E6991ED9B1BF001956DF /* FIRAppDelegate.m */, + D064E69E1ED9B1BF001956DF /* FIRViewController.h */, + D064E69F1ED9B1BF001956DF /* FIRViewController.m */, + D064E6A31ED9B1BF001956DF /* Main.storyboard */, + D064E6A61ED9B1BF001956DF /* Core-Info.plist */, + D064E69C1ED9B1BF001956DF /* main.m */, + ); + path = macOS; + sourceTree = ""; + }; + D0EDB2BA1EDA041900B6C31B /* iOS */ = { + isa = PBXGroup; + children = ( + DEB61EB91E7C5DBB00C04B96 /* LaunchScreen.storyboard */, + DEB61EBB1E7C5DBB00C04B96 /* Main.storyboard */, + DEB61EBD1E7C5DBB00C04B96 /* FIRAppDelegate.h */, + DEB61EBE1E7C5DBB00C04B96 /* FIRAppDelegate.m */, + DEB61EBF1E7C5DBB00C04B96 /* FIRViewController.h */, + DEB61EC01E7C5DBB00C04B96 /* FIRViewController.m */, + DEB61EC31E7C5DBB00C04B96 /* main.m */, + DEB61EC41E7C5DBB00C04B96 /* Storage-Info.plist */, ); - path = Database; + path = iOS; sourceTree = ""; }; - DE7B8D2B1E8EF202009EB6DF /* App */ = { + D0EDB2BB1EDA041D00B6C31B /* macOS */ = { + isa = PBXGroup; + children = ( + D0EDB2CF1EDA056A00B6C31B /* Main.storyboard */, + D0EDB2D11EDA056A00B6C31B /* FIRAppDelegate.h */, + D0EDB2D21EDA056A00B6C31B /* FIRAppDelegate.m */, + D0EDB2D31EDA056A00B6C31B /* FIRViewController.h */, + D0EDB2D41EDA056A00B6C31B /* FIRViewController.m */, + D0EDB2D51EDA056A00B6C31B /* main.m */, + D0EDB2D61EDA056A00B6C31B /* Storage-Info.plist */, + ); + path = macOS; + sourceTree = ""; + }; + D0FE8A141ED9C5B2003F6722 /* iOS */ = { isa = PBXGroup; children = ( - 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */, DE7B8DD21E8F1CA7009EB6DF /* Database-Info.plist */, DE7B8D311E8EF202009EB6DF /* FIRAppDelegate.h */, DE7B8D331E8EF202009EB6DF /* FIRViewController.h */, @@ -945,29 +1615,62 @@ DE7B8D2C1E8EF202009EB6DF /* LaunchScreen.storyboard */, DE7B8D2E1E8EF202009EB6DF /* Main.storyboard */, ); - path = App; + path = iOS; sourceTree = ""; }; - DE7B8D381E8EF202009EB6DF /* Tests */ = { + D0FE8A151ED9C5B8003F6722 /* macOS */ = { isa = PBXGroup; children = ( - 063CB47C1EBA7AEF00038A59 /* FirebaseTests-Info.plist */, - DE7B8D751E8EF202009EB6DF /* Helpers */, - DE7B8D691E8EF202009EB6DF /* InfoPlist.strings */, - 063CB43C1EBA752300038A59 /* Integration */, - DE7B8D8E1E8EF203009EB6DF /* syncPointSpec.json */, - 0697B11F1EC13D7800542174 /* third_party */, - DE7B8D391E8EF202009EB6DF /* Unit */, - ); - path = Tests; + D0FE8A161ED9C6D2003F6722 /* Main.storyboard */, + D0FE8A181ED9C6D2003F6722 /* Database-Info.plist */, + D0FE8A191ED9C6D2003F6722 /* FIRAppDelegate.h */, + D0FE8A1A1ED9C6D2003F6722 /* FIRAppDelegate.m */, + D0FE8A1B1ED9C6D2003F6722 /* FIRViewController.h */, + D0FE8A1C1ED9C6D2003F6722 /* FIRViewController.m */, + D0FE8A1D1ED9C6D2003F6722 /* main.m */, + ); + name = macOS; sourceTree = ""; }; - DE7B8D391E8EF202009EB6DF /* Unit */ = { + DE7B8D2A1E8EF202009EB6DF /* Database */ = { isa = PBXGroup; children = ( - 063CB4471EBA7AE200038A59 /* FArraySortedDictionaryTest.m */, - 063CB4481EBA7AE200038A59 /* FCompoundHashTest.m */, - 063CB46E1EBA7AEF00038A59 /* FCompoundWriteTest.m */, + DE7B8D2B1E8EF202009EB6DF /* App */, + DE7B8D381E8EF202009EB6DF /* Tests */, + ); + path = Database; + sourceTree = ""; + }; + DE7B8D2B1E8EF202009EB6DF /* App */ = { + isa = PBXGroup; + children = ( + 0672F2F11EBBA7D900818E87 /* GoogleService-Info.plist */, + D0FE8A141ED9C5B2003F6722 /* iOS */, + D0FE8A151ED9C5B8003F6722 /* macOS */, + ); + path = App; + sourceTree = ""; + }; + DE7B8D381E8EF202009EB6DF /* Tests */ = { + isa = PBXGroup; + children = ( + 063CB47C1EBA7AEF00038A59 /* FirebaseTests-Info.plist */, + DE7B8D751E8EF202009EB6DF /* Helpers */, + DE7B8D691E8EF202009EB6DF /* InfoPlist.strings */, + 063CB43C1EBA752300038A59 /* Integration */, + DE7B8D8E1E8EF203009EB6DF /* syncPointSpec.json */, + 0697B11F1EC13D7800542174 /* third_party */, + DE7B8D391E8EF202009EB6DF /* Unit */, + ); + path = Tests; + sourceTree = ""; + }; + DE7B8D391E8EF202009EB6DF /* Unit */ = { + isa = PBXGroup; + children = ( + 063CB4471EBA7AE200038A59 /* FArraySortedDictionaryTest.m */, + 063CB4481EBA7AE200038A59 /* FCompoundHashTest.m */, + 063CB46E1EBA7AEF00038A59 /* FCompoundWriteTest.m */, 063CB47A1EBA7AEF00038A59 /* FIRDataSnapshotTests.h */, 063CB47B1EBA7AEF00038A59 /* FIRDataSnapshotTests.m */, 063CB4491EBA7AE200038A59 /* FIRMutableDataTests.h */, @@ -1039,15 +1742,9 @@ DE9314EC1E86C6FF0083EDBF /* App */ = { isa = PBXGroup; children = ( - DE9315801E86C7F70083EDBF /* Auth-Info.plist */, - DE9314ED1E86C6FF0083EDBF /* LaunchScreen.storyboard */, - DE9314EF1E86C6FF0083EDBF /* Main.storyboard */, - DE9314F21E86C6FF0083EDBF /* FIRAppDelegate.h */, - DE9314F31E86C6FF0083EDBF /* FIRAppDelegate.m */, - DE9314F41E86C6FF0083EDBF /* FIRViewController.h */, - DE9314F51E86C6FF0083EDBF /* FIRViewController.m */, DE9314F61E86C6FF0083EDBF /* GoogleService-Info.plist */, - DE9314F81E86C6FF0083EDBF /* main.m */, + D01853461EDACC10003A645C /* iOS */, + D01853471EDACC10003A645C /* macOS */, ); path = App; sourceTree = ""; @@ -1173,15 +1870,9 @@ isa = PBXGroup; children = ( 069428801EC3B35A00F7BC69 /* 1mb.dat */, - DEB61EB91E7C5DBB00C04B96 /* LaunchScreen.storyboard */, - DEB61EBB1E7C5DBB00C04B96 /* Main.storyboard */, - DEB61EBD1E7C5DBB00C04B96 /* FIRAppDelegate.h */, - DEB61EBE1E7C5DBB00C04B96 /* FIRAppDelegate.m */, - DEB61EBF1E7C5DBB00C04B96 /* FIRViewController.h */, - DEB61EC01E7C5DBB00C04B96 /* FIRViewController.m */, DEB61EC11E7C5DBB00C04B96 /* GoogleService-Info.plist */, - DEB61EC31E7C5DBB00C04B96 /* main.m */, - DEB61EC41E7C5DBB00C04B96 /* Storage-Info.plist */, + D0EDB2BA1EDA041900B6C31B /* iOS */, + D0EDB2BB1EDA041D00B6C31B /* macOS */, ); path = App; sourceTree = ""; @@ -1198,15 +1889,9 @@ DEE14D671E844677006FA992 /* App */ = { isa = PBXGroup; children = ( - DEE14D681E844677006FA992 /* LaunchScreen.storyboard */, - DEE14D6A1E844677006FA992 /* Main.storyboard */, - DEE14D6C1E844677006FA992 /* Core-Info.plist */, - DEE14D6D1E844677006FA992 /* FIRAppDelegate.h */, - DEE14D6E1E844677006FA992 /* FIRAppDelegate.m */, - DEE14D6F1E844677006FA992 /* FIRViewController.h */, - DEE14D701E844677006FA992 /* FIRViewController.m */, DEE14D711E844677006FA992 /* GoogleService-Info.plist */, - DEE14D731E844677006FA992 /* main.m */, + D0D857F71ED9ADAE002342D2 /* macOS */, + D0D857F61ED9ADA8002342D2 /* iOS */, ); path = App; sourceTree = ""; @@ -1230,251 +1915,470 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 06121EBB1EC399C50008D70E /* Storage_IntegrationTests */ = { + 06121EBB1EC399C50008D70E /* Storage_IntegrationTests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 06121EC51EC399C50008D70E /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests" */; + buildConfigurationList = 06121EC51EC399C50008D70E /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests_iOS" */; buildPhases = ( - BCC67418B8EBA4E90488CD55 /* [CP] Check Pods Manifest.lock */, + 3786E1E96ECBC02983BF7FF5 /* [CP] Check Pods Manifest.lock */, 06121EB81EC399C50008D70E /* Sources */, 06121EB91EC399C50008D70E /* Frameworks */, 06121EBA1EC399C50008D70E /* Resources */, - 0840546A7D90530C21375416 /* [CP] Embed Pods Frameworks */, - B84CF6076850A6EA9E66592F /* [CP] Copy Pods Resources */, + 1063900DF910DA2A4109D98D /* [CP] Embed Pods Frameworks */, + 6BA037F854743AFBE0608F44 /* [CP] Copy Pods Resources */, + D090053C1EDB334800154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( 06121EC71EC399D40008D70E /* PBXTargetDependency */, ); - name = Storage_IntegrationTests; - productName = Storage_IntegrationTests; - productReference = 06121EBC1EC399C50008D70E /* Storage_IntegrationTests.xctest */; + name = Storage_IntegrationTests_iOS; + productName = Storage_IntegrationTests_iOS; + productReference = 06121EBC1EC399C50008D70E /* Storage_IntegrationTests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 0624F3E01EC0ECFA00E5940D /* Database_IntegrationTests */ = { + 0624F3E01EC0ECFA00E5940D /* Database_IntegrationTests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = 0624F3E81EC0ECFA00E5940D /* Build configuration list for PBXNativeTarget "Database_IntegrationTests" */; + buildConfigurationList = 0624F3E81EC0ECFA00E5940D /* Build configuration list for PBXNativeTarget "Database_IntegrationTests_iOS" */; buildPhases = ( - BF9A61F6BBE9655CED5E897D /* [CP] Check Pods Manifest.lock */, + 19677B25BC6A19DBDD75F49B /* [CP] Check Pods Manifest.lock */, 0624F3DD1EC0ECFA00E5940D /* Sources */, 0624F3DE1EC0ECFA00E5940D /* Frameworks */, 0624F3DF1EC0ECFA00E5940D /* Resources */, - 744AF9F9B2DB5C511EB9969A /* [CP] Embed Pods Frameworks */, - 597B88E0E6B632C48707E8EB /* [CP] Copy Pods Resources */, + 232733F269E8EBAEF052B587 /* [CP] Embed Pods Frameworks */, + 8C301E5FE3BE0A2411C759AA /* [CP] Copy Pods Resources */, + D09005361EDB331700154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( 0624F3E71EC0ECFA00E5940D /* PBXTargetDependency */, ); - name = Database_IntegrationTests; + name = Database_IntegrationTests_iOS; productName = Database_IntegratioNtests; - productReference = 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests.xctest */; + productReference = 0624F3E11EC0ECFA00E5940D /* Database_IntegrationTests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - AFD562E41EB13C6D00EA2233 /* Messaging_Example */ = { + AFD562E41EB13C6D00EA2233 /* Messaging_Example_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = AFD562F41EB13C6D00EA2233 /* Build configuration list for PBXNativeTarget "Messaging_Example" */; + buildConfigurationList = AFD562F41EB13C6D00EA2233 /* Build configuration list for PBXNativeTarget "Messaging_Example_iOS" */; buildPhases = ( - 26F9869011740630E2119D0D /* [CP] Check Pods Manifest.lock */, + 0EA12A6080140E87FBA3AC06 /* [CP] Check Pods Manifest.lock */, AFD562E11EB13C6D00EA2233 /* Sources */, AFD562E21EB13C6D00EA2233 /* Frameworks */, AFD562E31EB13C6D00EA2233 /* Resources */, - ADFC988CE33AA0C8F0C59177 /* [CP] Embed Pods Frameworks */, - A39D405E17BE3A6646B8E38E /* [CP] Copy Pods Resources */, + 46AC2CDE18260459A7BCCB3E /* [CP] Embed Pods Frameworks */, + 00B23753C4BF8E8D16969ABD /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Messaging_Example_iOS; + productName = Messaging_Example_iOS; + productReference = AFD562E51EB13C6D00EA2233 /* Messaging_Example_iOS.app */; + productType = "com.apple.product-type.application"; + }; + D01853671EDAD084003A645C /* Auth_Example_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D01853761EDAD084003A645C /* Build configuration list for PBXNativeTarget "Auth_Example_macOS" */; + buildPhases = ( + 88BCFC1511548BF9A07844FA /* [CP] Check Pods Manifest.lock */, + D01853691EDAD084003A645C /* Sources */, + D018536D1EDAD084003A645C /* Frameworks */, + D018536F1EDAD084003A645C /* Resources */, + E6B7CF75067684486A66E0EE /* [CP] Embed Pods Frameworks */, + 7B5A9979C548A06D6F9F3DF3 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Auth_Example_macOS; + productName = Core_Example_macOS; + productReference = D01853791EDAD084003A645C /* Auth_Example_macOS.app */; + productType = "com.apple.product-type.application"; + }; + D01853881EDAD364003A645C /* Auth_Tests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D01853C31EDAD364003A645C /* Build configuration list for PBXNativeTarget "Auth_Tests_macOS" */; + buildPhases = ( + 1542F609D06A25AEB5EFF1AD /* [CP] Check Pods Manifest.lock */, + D018538C1EDAD364003A645C /* Sources */, + D01853BD1EDAD364003A645C /* Frameworks */, + D01853C01EDAD364003A645C /* Resources */, + F6DC06843B1A770F9279D334 /* [CP] Embed Pods Frameworks */, + A969D5847DE84AFD9C0B2EAA /* [CP] Copy Pods Resources */, + D090053E1EDB34DF00154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D01853C91EDAD45C003A645C /* PBXTargetDependency */, + ); + name = Auth_Tests_macOS; + productName = Auth_Example_iOSTests; + productReference = D01853C61EDAD364003A645C /* Auth_Tests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D064E6951ED9B1BF001956DF /* Core_Example_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D064E6A71ED9B1BF001956DF /* Build configuration list for PBXNativeTarget "Core_Example_macOS" */; + buildPhases = ( + BF2336EA73E2EC48D55AD7AE /* [CP] Check Pods Manifest.lock */, + D064E6921ED9B1BF001956DF /* Sources */, + D064E6931ED9B1BF001956DF /* Frameworks */, + D064E6941ED9B1BF001956DF /* Resources */, + 6DA313F9857A3BDBDA296B76 /* [CP] Embed Pods Frameworks */, + 2A11DCD2DC1C65658F325248 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Core_Example_macOS; + productName = Core_Example_macOS; + productReference = D064E6961ED9B1BF001956DF /* Core_Example_macOS.app */; + productType = "com.apple.product-type.application"; + }; + D064E6AA1ED9B31C001956DF /* Core_Tests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D064E6BC1ED9B31C001956DF /* Build configuration list for PBXNativeTarget "Core_Tests_macOS" */; + buildPhases = ( + D3703F55DC5ED15CAB21565A /* [CP] Check Pods Manifest.lock */, + D064E6AE1ED9B31C001956DF /* Sources */, + D064E6B61ED9B31C001956DF /* Frameworks */, + D064E6B91ED9B31C001956DF /* Resources */, + 283462258BC55738810D1B9D /* [CP] Embed Pods Frameworks */, + 8500FBBCF671CB86388A2A1F /* [CP] Copy Pods Resources */, + D09005411EDB356900154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D064E6C21ED9B369001956DF /* PBXTargetDependency */, + ); + name = Core_Tests_macOS; + productName = Core_ExampleTests; + productReference = D064E6BF1ED9B31C001956DF /* Core_Tests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D0EDB2BC1EDA04F800B6C31B /* Storage_Example_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0EDB2CA1EDA04F800B6C31B /* Build configuration list for PBXNativeTarget "Storage_Example_macOS" */; + buildPhases = ( + 11F36AD953A5CC9D12935632 /* [CP] Check Pods Manifest.lock */, + D0EDB2BE1EDA04F800B6C31B /* Sources */, + D0EDB2C21EDA04F800B6C31B /* Frameworks */, + D0EDB2C41EDA04F800B6C31B /* Resources */, + 96ED84C7FC567FEDEF7FD80F /* [CP] Embed Pods Frameworks */, + AF2540B4B40DE449024AEA95 /* [CP] Copy Pods Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Storage_Example_macOS; + productName = Core_Example_macOS; + productReference = D0EDB2CD1EDA04F800B6C31B /* Storage_Example_macOS.app */; + productType = "com.apple.product-type.application"; + }; + D0EDB2DE1EDA06CB00B6C31B /* Storage_Tests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0EDB2F31EDA06CB00B6C31B /* Build configuration list for PBXNativeTarget "Storage_Tests_macOS" */; + buildPhases = ( + 443594697E84C4F57E3FCBEC /* [CP] Check Pods Manifest.lock */, + D0EDB2E21EDA06CB00B6C31B /* Sources */, + D0EDB2ED1EDA06CB00B6C31B /* Frameworks */, + D0EDB2F01EDA06CB00B6C31B /* Resources */, + 3144FCB09106E152A32EBA5C /* [CP] Embed Pods Frameworks */, + 9545BA7AC96B74C6340B0A5B /* [CP] Copy Pods Resources */, + D09005481EDB35B200154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D0EDB30A1EDA07A300B6C31B /* PBXTargetDependency */, + ); + name = Storage_Tests_macOS; + productName = FirebaseTests; + productReference = D0EDB2F61EDA06CB00B6C31B /* Storage_Tests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D0EDB2F81EDA06D500B6C31B /* Storage_IntegrationTests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0EDB3041EDA06D500B6C31B /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests_macOS" */; + buildPhases = ( + 1E13EDB65AB3A1B498962A89 /* [CP] Check Pods Manifest.lock */, + D0EDB2FC1EDA06D500B6C31B /* Sources */, + D0EDB2FE1EDA06D500B6C31B /* Frameworks */, + D0EDB3011EDA06D500B6C31B /* Resources */, + AAAD94DC9AD45DB4D4A83C6F /* [CP] Embed Pods Frameworks */, + 6906C02D16345BF9950F16BD /* [CP] Copy Pods Resources */, + D090054A1EDB35BD00154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D0EDB30C1EDA07A600B6C31B /* PBXTargetDependency */, + ); + name = Storage_IntegrationTests_macOS; + productName = Storage_IntegrationTests_iOS; + productReference = D0EDB3071EDA06D500B6C31B /* Storage_IntegrationTests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D0FE8A1E1ED9C804003F6722 /* Database_Example_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0FE8A2C1ED9C804003F6722 /* Build configuration list for PBXNativeTarget "Database_Example_macOS" */; + buildPhases = ( + 515A9829FF53C6BA758C94E3 /* [CP] Check Pods Manifest.lock */, + D0FE8A201ED9C804003F6722 /* Sources */, + D0FE8A241ED9C804003F6722 /* Frameworks */, + D0FE8A261ED9C804003F6722 /* Resources */, + 4DA6D1A9235C30D92BB04429 /* [CP] Embed Pods Frameworks */, + 777537E8787F27950F56D363 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = Messaging_Example; - productName = Messaging_Example; - productReference = AFD562E51EB13C6D00EA2233 /* Messaging_Example.app */; + name = Database_Example_macOS; + productName = Core_Example_macOS; + productReference = D0FE8A2F1ED9C804003F6722 /* Database_Example_macOS.app */; productType = "com.apple.product-type.application"; }; - DE7B8D041E8EF077009EB6DF /* Database_Example */ = { + D0FE8A311ED9C86F003F6722 /* Database_Tests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0FE8A5F1ED9C86F003F6722 /* Build configuration list for PBXNativeTarget "Database_Tests_macOS" */; + buildPhases = ( + 77E94B705381010F68BFBF0F /* [CP] Check Pods Manifest.lock */, + D0FE8A351ED9C86F003F6722 /* Sources */, + D0FE8A561ED9C86F003F6722 /* Frameworks */, + D0FE8A591ED9C86F003F6722 /* Resources */, + 071225E5DBC237232EC1AB19 /* [CP] Embed Pods Frameworks */, + 66E15CF732415F6E8CE006A4 /* [CP] Copy Pods Resources */, + D09005431EDB358A00154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D0FE8A8F1ED9C885003F6722 /* PBXTargetDependency */, + ); + name = Database_Tests_macOS; + productName = Database_ExampleTests; + productReference = D0FE8A621ED9C870003F6722 /* Database_Tests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + D0FE8A641ED9C87B003F6722 /* Database_IntegrationTests_macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0FE8A891ED9C87B003F6722 /* Build configuration list for PBXNativeTarget "Database_IntegrationTests_macOS" */; + buildPhases = ( + 41D2E6F8A0864E1FF985156D /* [CP] Check Pods Manifest.lock */, + D0FE8A681ED9C87B003F6722 /* Sources */, + D0FE8A831ED9C87B003F6722 /* Frameworks */, + D0FE8A861ED9C87B003F6722 /* Resources */, + 1ED619955966F8E7002E743A /* [CP] Embed Pods Frameworks */, + 6F226BA957A397FC5FECC12E /* [CP] Copy Pods Resources */, + D09005461EDB359900154410 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + D0FE8A911ED9C9CD003F6722 /* PBXTargetDependency */, + ); + name = Database_IntegrationTests_macOS; + productName = Database_IntegratioNtests; + productReference = D0FE8A8C1ED9C87B003F6722 /* Database_IntegrationTests_macOS.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DE7B8D041E8EF077009EB6DF /* Database_Example_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DE7B8D281E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Example" */; + buildConfigurationList = DE7B8D281E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Example_iOS" */; buildPhases = ( - 4363D4BBFAAC4D505B9B18EC /* [CP] Check Pods Manifest.lock */, + 9CEB39C23D6A99B302EB07E9 /* [CP] Check Pods Manifest.lock */, DE7B8D011E8EF077009EB6DF /* Sources */, DE7B8D021E8EF077009EB6DF /* Frameworks */, DE7B8D031E8EF077009EB6DF /* Resources */, - E9A4ADE4EE7390DC85A9FC17 /* [CP] Embed Pods Frameworks */, - 5AE0F6A81F9A499BD752D5E9 /* [CP] Copy Pods Resources */, + FA4CDC0B9CEED724759D523A /* [CP] Embed Pods Frameworks */, + F3FBA8A6C2D3E5CBD29AACB8 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = Database_Example; + name = Database_Example_iOS; productName = Database_Example; - productReference = DE7B8D051E8EF077009EB6DF /* Database_Example.app */; + productReference = DE7B8D051E8EF077009EB6DF /* Database_Example_iOS.app */; productType = "com.apple.product-type.application"; }; - DE7B8D1C1E8EF078009EB6DF /* Database_Tests */ = { + DE7B8D1C1E8EF078009EB6DF /* Database_Tests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DE7B8D291E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Tests" */; + buildConfigurationList = DE7B8D291E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Tests_iOS" */; buildPhases = ( - EE21F035A2A97C35635C2F3C /* [CP] Check Pods Manifest.lock */, + F8451B3BC6FE1309C54DA67A /* [CP] Check Pods Manifest.lock */, DE7B8D191E8EF078009EB6DF /* Sources */, DE7B8D1A1E8EF078009EB6DF /* Frameworks */, DE7B8D1B1E8EF078009EB6DF /* Resources */, - 5EFAE1A18DA8F6BFC0C191E8 /* [CP] Embed Pods Frameworks */, - 634E392CCD4D5E88B96D3EF1 /* [CP] Copy Pods Resources */, + 3C148B64CA202C27F0346730 /* [CP] Embed Pods Frameworks */, + 78B9968CB166AE209A644B63 /* [CP] Copy Pods Resources */, + D09005341EDB330800154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( DE7B8D1F1E8EF078009EB6DF /* PBXTargetDependency */, ); - name = Database_Tests; + name = Database_Tests_iOS; productName = Database_ExampleTests; - productReference = DE7B8D1D1E8EF078009EB6DF /* Database_Tests.xctest */; + productReference = DE7B8D1D1E8EF078009EB6DF /* Database_Tests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DE9314C51E86C6BD0083EDBF /* Auth_Example */ = { + DE9314C51E86C6BD0083EDBF /* Auth_Example_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DE9314E91E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Example" */; + buildConfigurationList = DE9314E91E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Example_iOS" */; buildPhases = ( - 7CC2EB21DFB0E48B1B8171B2 /* [CP] Check Pods Manifest.lock */, + 8C6BEC1986608252A51D2D30 /* [CP] Check Pods Manifest.lock */, DE9314C21E86C6BD0083EDBF /* Sources */, DE9314C31E86C6BD0083EDBF /* Frameworks */, DE9314C41E86C6BD0083EDBF /* Resources */, - B293C142610E914FBE2CA4C9 /* [CP] Embed Pods Frameworks */, - A2DF8D8C8D3B6639CBD9CB5B /* [CP] Copy Pods Resources */, + 5A5F3E025D2695FF758F5531 /* [CP] Embed Pods Frameworks */, + F1A319FB51EA9E2F33538E3C /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = Auth_Example; - productName = Auth_Example; - productReference = DE9314C61E86C6BD0083EDBF /* Auth_Example.app */; + name = Auth_Example_iOS; + productName = Auth_Example_iOS; + productReference = DE9314C61E86C6BD0083EDBF /* Auth_Example_iOS.app */; productType = "com.apple.product-type.application"; }; - DE9314DD1E86C6BE0083EDBF /* Auth_Tests */ = { + DE9314DD1E86C6BE0083EDBF /* Auth_Tests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DE9314EA1E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Tests" */; + buildConfigurationList = DE9314EA1E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Tests_iOS" */; buildPhases = ( - 016A3201E8E0C5ABE835F645 /* [CP] Check Pods Manifest.lock */, + 7D4D62D23FA1B896FD67C5A4 /* [CP] Check Pods Manifest.lock */, DE9314DA1E86C6BE0083EDBF /* Sources */, DE9314DB1E86C6BE0083EDBF /* Frameworks */, DE9314DC1E86C6BE0083EDBF /* Resources */, - 54175166C251F5F698B6B1C3 /* [CP] Embed Pods Frameworks */, - 9D8053D74F91F866DB0D0199 /* [CP] Copy Pods Resources */, + BE0467734612262580712A0B /* [CP] Embed Pods Frameworks */, + 6CDB2FCF70875C8C64686DD2 /* [CP] Copy Pods Resources */, + D090052F1EDB32B700154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( DE9314E01E86C6BE0083EDBF /* PBXTargetDependency */, ); - name = Auth_Tests; - productName = Auth_ExampleTests; - productReference = DE9314DE1E86C6BE0083EDBF /* Auth_Tests.xctest */; + name = Auth_Tests_iOS; + productName = Auth_Example_iOSTests; + productReference = DE9314DE1E86C6BE0083EDBF /* Auth_Tests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DE9315A61E8738460083EDBF /* Messaging_Tests */ = { + DE9315A61E8738460083EDBF /* Messaging_Tests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DE9315B31E8738460083EDBF /* Build configuration list for PBXNativeTarget "Messaging_Tests" */; + buildConfigurationList = DE9315B31E8738460083EDBF /* Build configuration list for PBXNativeTarget "Messaging_Tests_iOS" */; buildPhases = ( - 66C488F8D840BC12E26BEE9C /* [CP] Check Pods Manifest.lock */, + 382D1EF01D4C0AA28E9E7078 /* [CP] Check Pods Manifest.lock */, DE9315A31E8738460083EDBF /* Sources */, DE9315A41E8738460083EDBF /* Frameworks */, DE9315A51E8738460083EDBF /* Resources */, - 3D9876DCE9EFE13441346E50 /* [CP] Embed Pods Frameworks */, - AA723E4B93CCA8A3A4C24F4E /* [CP] Copy Pods Resources */, + DAD74549C85FC7655DF05FBA /* [CP] Embed Pods Frameworks */, + D91D8C04B4376FFAD9D5FEBE /* [CP] Copy Pods Resources */, + D09005381EDB333700154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( AFD563121EB140E100EA2233 /* PBXTargetDependency */, ); - name = Messaging_Tests; - productName = Messaging_ExampleTests; - productReference = DE9315A71E8738460083EDBF /* Messaging_Tests.xctest */; + name = Messaging_Tests_iOS; + productName = Messaging_Example_iOSTests; + productReference = DE9315A71E8738460083EDBF /* Messaging_Tests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DEB139E01E73506A00AC236D /* Storage_Example */ = { + DEB139E01E73506A00AC236D /* Storage_Example_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DEB13A051E73506A00AC236D /* Build configuration list for PBXNativeTarget "Storage_Example" */; + buildConfigurationList = DEB13A051E73506A00AC236D /* Build configuration list for PBXNativeTarget "Storage_Example_iOS" */; buildPhases = ( - 7E9B7B5115CCC4F0FCBED014 /* [CP] Check Pods Manifest.lock */, + 4115B5AD79B7D4DE65AE67FF /* [CP] Check Pods Manifest.lock */, DEB139E21E73506A00AC236D /* Sources */, DEB139F31E73506A00AC236D /* Frameworks */, DEB139F91E73506A00AC236D /* Resources */, - E8657FA5227C3B5EB7B83B40 /* [CP] Embed Pods Frameworks */, - 5BE3F4C8BA697C65D55C055E /* [CP] Copy Pods Resources */, + C707F47D947D57E74249C2F6 /* [CP] Embed Pods Frameworks */, + 4686FA0994A36A5BF5E219CF /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = Storage_Example; + name = Storage_Example_iOS; productName = Firebase; - productReference = DEB13A081E73506A00AC236D /* Storage_Example.app */; + productReference = DEB13A081E73506A00AC236D /* Storage_Example_iOS.app */; productType = "com.apple.product-type.application"; }; - DEB13A0A1E73507E00AC236D /* Storage_Tests */ = { + DEB13A0A1E73507E00AC236D /* Storage_Tests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DEB13A201E73507E00AC236D /* Build configuration list for PBXNativeTarget "Storage_Tests" */; + buildConfigurationList = DEB13A201E73507E00AC236D /* Build configuration list for PBXNativeTarget "Storage_Tests_iOS" */; buildPhases = ( - AD42F17297AF3C18062D4C51 /* [CP] Check Pods Manifest.lock */, + 2E764A07E804C7B34C88EF8F /* [CP] Check Pods Manifest.lock */, DEB13A0E1E73507E00AC236D /* Sources */, DEB13A161E73507E00AC236D /* Frameworks */, DEB13A1D1E73507E00AC236D /* Resources */, - 57EF5C8DAF88A5F43BE0C6FE /* [CP] Embed Pods Frameworks */, - 12F6D0DD1D452316A3123EED /* [CP] Copy Pods Resources */, + A74FE39C9BA59971425C1059 /* [CP] Embed Pods Frameworks */, + 6EA15A611F2B8F75144549BF /* [CP] Copy Pods Resources */, + D090053A1EDB334000154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( DEB13A261E73512500AC236D /* PBXTargetDependency */, ); - name = Storage_Tests; + name = Storage_Tests_iOS; productName = FirebaseTests; - productReference = DEB13A231E73507E00AC236D /* Storage_Tests.xctest */; + productReference = DEB13A231E73507E00AC236D /* Storage_Tests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - DEE14D401E84464D006FA992 /* Core_Example */ = { + DEE14D401E84464D006FA992 /* Core_Example_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DEE14D641E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Example" */; + buildConfigurationList = DEE14D641E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Example_iOS" */; buildPhases = ( - AB5B6984AF16CF03E74EA522 /* [CP] Check Pods Manifest.lock */, + B66F9F8E9BF747B1F447D6C0 /* [CP] Check Pods Manifest.lock */, DEE14D3D1E84464D006FA992 /* Sources */, DEE14D3E1E84464D006FA992 /* Frameworks */, DEE14D3F1E84464D006FA992 /* Resources */, - DEFCD9C6026936498AE2778C /* [CP] Embed Pods Frameworks */, - 883CE42B54A7BB78295FBCDA /* [CP] Copy Pods Resources */, + 397CA4D128D5F736D2FC1476 /* [CP] Embed Pods Frameworks */, + B5EBB1596041B87C01906583 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( ); - name = Core_Example; + name = Core_Example_iOS; productName = Core_Example; - productReference = DEE14D411E84464D006FA992 /* Core_Example.app */; + productReference = DEE14D411E84464D006FA992 /* Core_Example_iOS.app */; productType = "com.apple.product-type.application"; }; - DEE14D581E84464D006FA992 /* Core_Tests */ = { + DEE14D581E84464D006FA992 /* Core_Tests_iOS */ = { isa = PBXNativeTarget; - buildConfigurationList = DEE14D651E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Tests" */; + buildConfigurationList = DEE14D651E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Tests_iOS" */; buildPhases = ( - C3AFD8761D910A99E506F606 /* [CP] Check Pods Manifest.lock */, + 1F2FDE6458394046C4190D6E /* [CP] Check Pods Manifest.lock */, DEE14D551E84464D006FA992 /* Sources */, DEE14D561E84464D006FA992 /* Frameworks */, DEE14D571E84464D006FA992 /* Resources */, - 316D851DAC53422509F9B7B4 /* [CP] Embed Pods Frameworks */, - 9D6CD2CDCDD281E43FDD3492 /* [CP] Copy Pods Resources */, + D97ECF2CC0F803E2796C1729 /* [CP] Embed Pods Frameworks */, + 132FCDA41D72A3859CE00BCE /* [CP] Copy Pods Resources */, + D09005321EDB32EA00154410 /* CopyFiles */, ); buildRules = ( ); dependencies = ( DEE14D5B1E84464D006FA992 /* PBXTargetDependency */, ); - name = Core_Tests; + name = Core_Tests_iOS; productName = Core_ExampleTests; - productReference = DEE14D591E84464D006FA992 /* Core_Tests.xctest */; + productReference = DEE14D591E84464D006FA992 /* Core_Tests_iOS.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -1486,7 +2390,7 @@ CLASSPREFIX = FIR; LastSwiftUpdateCheck = 0830; LastUpgradeCheck = 0820; - ORGANIZATIONNAME = "Paul Beusterien"; + ORGANIZATIONNAME = Google; TargetAttributes = { 06121EBB1EC399C50008D70E = { CreatedOnToolsVersion = 8.2.1; @@ -1511,6 +2415,45 @@ }; }; }; + D01853671EDAD084003A645C = { + DevelopmentTeam = EQHXZ8M8AV; + }; + D01853881EDAD364003A645C = { + DevelopmentTeam = EQHXZ8M8AV; + TestTargetID = D01853671EDAD084003A645C; + }; + D064E6951ED9B1BF001956DF = { + CreatedOnToolsVersion = 8.3.2; + DevelopmentTeam = EQHXZ8M8AV; + ProvisioningStyle = Automatic; + }; + D064E6AA1ED9B31C001956DF = { + DevelopmentTeam = EQHXZ8M8AV; + TestTargetID = D064E6951ED9B1BF001956DF; + }; + D0EDB2BC1EDA04F800B6C31B = { + DevelopmentTeam = EQHXZ8M8AV; + }; + D0EDB2DE1EDA06CB00B6C31B = { + DevelopmentTeam = EQHXZ8M8AV; + TestTargetID = D0EDB2BC1EDA04F800B6C31B; + }; + D0EDB2F81EDA06D500B6C31B = { + TestTargetID = D0EDB2BC1EDA04F800B6C31B; + }; + D0FE8A041ED9C32C003F6722 = { + DevelopmentTeam = EQHXZ8M8AV; + }; + D0FE8A1E1ED9C804003F6722 = { + DevelopmentTeam = EQHXZ8M8AV; + }; + D0FE8A311ED9C86F003F6722 = { + DevelopmentTeam = EQHXZ8M8AV; + TestTargetID = D0FE8A1E1ED9C804003F6722; + }; + D0FE8A641ED9C87B003F6722 = { + TestTargetID = D0FE8A1E1ED9C804003F6722; + }; DE3373891E73773400881891 = { CreatedOnToolsVersion = 8.2.1; DevelopmentTeam = EQHXZ8M8AV; @@ -1567,19 +2510,30 @@ projectDirPath = ""; projectRoot = ""; targets = ( - DE9314C51E86C6BD0083EDBF /* Auth_Example */, - DE9314DD1E86C6BE0083EDBF /* Auth_Tests */, - DEE14D401E84464D006FA992 /* Core_Example */, - DEE14D581E84464D006FA992 /* Core_Tests */, - DE7B8D041E8EF077009EB6DF /* Database_Example */, - DE7B8D1C1E8EF078009EB6DF /* Database_Tests */, - 0624F3E01EC0ECFA00E5940D /* Database_IntegrationTests */, - AFD562E41EB13C6D00EA2233 /* Messaging_Example */, - DE9315A61E8738460083EDBF /* Messaging_Tests */, - DEB139E01E73506A00AC236D /* Storage_Example */, - DEB13A0A1E73507E00AC236D /* Storage_Tests */, - 06121EBB1EC399C50008D70E /* Storage_IntegrationTests */, - DE3373891E73773400881891 /* AllUnitTests */, + DE9314C51E86C6BD0083EDBF /* Auth_Example_iOS */, + DE9314DD1E86C6BE0083EDBF /* Auth_Tests_iOS */, + D01853671EDAD084003A645C /* Auth_Example_macOS */, + D01853881EDAD364003A645C /* Auth_Tests_macOS */, + DEE14D401E84464D006FA992 /* Core_Example_iOS */, + DEE14D581E84464D006FA992 /* Core_Tests_iOS */, + D064E6951ED9B1BF001956DF /* Core_Example_macOS */, + D064E6AA1ED9B31C001956DF /* Core_Tests_macOS */, + DE7B8D041E8EF077009EB6DF /* Database_Example_iOS */, + DE7B8D1C1E8EF078009EB6DF /* Database_Tests_iOS */, + 0624F3E01EC0ECFA00E5940D /* Database_IntegrationTests_iOS */, + D0FE8A1E1ED9C804003F6722 /* Database_Example_macOS */, + D0FE8A311ED9C86F003F6722 /* Database_Tests_macOS */, + D0FE8A641ED9C87B003F6722 /* Database_IntegrationTests_macOS */, + AFD562E41EB13C6D00EA2233 /* Messaging_Example_iOS */, + DE9315A61E8738460083EDBF /* Messaging_Tests_iOS */, + DEB139E01E73506A00AC236D /* Storage_Example_iOS */, + DEB13A0A1E73507E00AC236D /* Storage_Tests_iOS */, + 06121EBB1EC399C50008D70E /* Storage_IntegrationTests_iOS */, + D0EDB2BC1EDA04F800B6C31B /* Storage_Example_macOS */, + D0EDB2DE1EDA06CB00B6C31B /* Storage_Tests_macOS */, + D0EDB2F81EDA06D500B6C31B /* Storage_IntegrationTests_macOS */, + DE3373891E73773400881891 /* AllUnitTests_iOS */, + D0FE8A041ED9C32C003F6722 /* AllUnitTests_macOS */, ); }; /* End PBXProject section */ @@ -1603,10 +2557,96 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - AFD5630D1EB1400900EA2233 /* Main.storyboard in Resources */, + D018534D1EDACED4003A645C /* LaunchScreen.storyboard in Resources */, AFAF36F81EC28C25004BDEE5 /* Shared.xcassets in Resources */, AFD563151EB29EDE00EA2233 /* GoogleService-Info.plist in Resources */, - AFD5630C1EB1400900EA2233 /* LaunchScreen.storyboard in Resources */, + D018534E1EDACED4003A645C /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D018536F1EDAD084003A645C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D01853721EDAD084003A645C /* Shared.xcassets in Resources */, + D01853861EDAD120003A645C /* GoogleService-Info.plist in Resources */, + D01853871EDAD124003A645C /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D01853C01EDAD364003A645C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6941ED9B1BF001956DF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D067EF831ED9BDE00095C27F /* Shared.xcassets in Resources */, + D064E6A51ED9B1BF001956DF /* Main.storyboard in Resources */, + D067EF841ED9BDFF0095C27F /* GoogleService-Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6B91ED9B31C001956DF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2C41EDA04F800B6C31B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EDB2DD1EDA058A00B6C31B /* 1mb.dat in Resources */, + D0EDB2DB1EDA058400B6C31B /* Main.storyboard in Resources */, + D0EDB2C51EDA04F800B6C31B /* Shared.xcassets in Resources */, + D0EDB2DC1EDA058700B6C31B /* GoogleService-Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2F01EDA06CB00B6C31B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB3011EDA06D500B6C31B /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A261ED9C804003F6722 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0FE8A271ED9C804003F6722 /* Shared.xcassets in Resources */, + D0FE8A921ED9CA44003F6722 /* GoogleService-Info.plist in Resources */, + D0FE8A931ED9CA44003F6722 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A591ED9C86F003F6722 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0FE8A5A1ED9C86F003F6722 /* InfoPlist.strings in Resources */, + D0FE8A5B1ED9C86F003F6722 /* syncPointSpec.json in Resources */, + D0FE8A5C1ED9C86F003F6722 /* GoogleService-Info.plist in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A861ED9C87B003F6722 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1639,9 +2679,6 @@ AFAF36F51EC28C25004BDEE5 /* Shared.xcassets in Resources */, DE9315261E86C6FF0083EDBF /* LaunchScreen.storyboard in Resources */, DE9315271E86C6FF0083EDBF /* Main.storyboard in Resources */, - DE4E711B1E953ABC00070092 /* FirebaseDev.podspec in Resources */, - DE7B8DD31E8F1CA7009EB6DF /* Database-Info.plist in Resources */, - 063CB49A1EBA7AEF00038A59 /* FirebaseTests-Info.plist in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1699,22 +2736,22 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 016A3201E8E0C5ABE835F645 /* [CP] Check Pods Manifest.lock */ = { + 00B23753C4BF8E8D16969ABD /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Example_iOS/Pods-Messaging_Example_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 0840546A7D90530C21375416 /* [CP] Embed Pods Frameworks */ = { + 071225E5DBC237232EC1AB19 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1726,70 +2763,70 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests/Pods-Storage_IntegrationTests-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests_macOS/Pods-Database_Tests_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 12F6D0DD1D452316A3123EED /* [CP] Copy Pods Resources */ = { + 0EA12A6080140E87FBA3AC06 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests/Pods-Storage_Tests-resources.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - 26F9869011740630E2119D0D /* [CP] Check Pods Manifest.lock */ = { + 1063900DF910DA2A4109D98D /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests_iOS/Pods-Storage_IntegrationTests_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 316D851DAC53422509F9B7B4 /* [CP] Embed Pods Frameworks */ = { + 11F36AD953A5CC9D12935632 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests/Pods-Core_Tests-frameworks.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - 3D9876DCE9EFE13441346E50 /* [CP] Embed Pods Frameworks */ = { + 132FCDA41D72A3859CE00BCE /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Tests/Pods-Messaging_Tests-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests_iOS/Pods-Core_Tests_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 4363D4BBFAAC4D505B9B18EC /* [CP] Check Pods Manifest.lock */ = { + 1542F609D06A25AEB5EFF1AD /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1804,82 +2841,82 @@ 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"; showEnvVarsInLog = 0; }; - 54175166C251F5F698B6B1C3 /* [CP] Embed Pods Frameworks */ = { + 19677B25BC6A19DBDD75F49B /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests/Pods-Auth_Tests-frameworks.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - 57EF5C8DAF88A5F43BE0C6FE /* [CP] Embed Pods Frameworks */ = { + 1E13EDB65AB3A1B498962A89 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests/Pods-Storage_Tests-frameworks.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - 597B88E0E6B632C48707E8EB /* [CP] Copy Pods Resources */ = { + 1ED619955966F8E7002E743A /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests/Pods-Database_IntegrationTests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests_macOS/Pods-Database_IntegrationTests_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 5AE0F6A81F9A499BD752D5E9 /* [CP] Copy Pods Resources */ = { + 1F2FDE6458394046C4190D6E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example/Pods-Database_Example-resources.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - 5BE3F4C8BA697C65D55C055E /* [CP] Copy Pods Resources */ = { + 232733F269E8EBAEF052B587 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example/Pods-Storage_Example-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests_iOS/Pods-Database_IntegrationTests_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 5EFAE1A18DA8F6BFC0C191E8 /* [CP] Embed Pods Frameworks */ = { + 283462258BC55738810D1B9D /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1891,10 +2928,10 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests/Pods-Database_Tests-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests_macOS/Pods-Core_Tests_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 634E392CCD4D5E88B96D3EF1 /* [CP] Copy Pods Resources */ = { + 2A11DCD2DC1C65658F325248 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1906,10 +2943,10 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests/Pods-Database_Tests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example_macOS/Pods-Core_Example_macOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 66C488F8D840BC12E26BEE9C /* [CP] Check Pods Manifest.lock */ = { + 2E764A07E804C7B34C88EF8F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1924,7 +2961,7 @@ 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"; showEnvVarsInLog = 0; }; - 744AF9F9B2DB5C511EB9969A /* [CP] Embed Pods Frameworks */ = { + 3144FCB09106E152A32EBA5C /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1936,10 +2973,10 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests/Pods-Database_IntegrationTests-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests_macOS/Pods-Storage_Tests_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 7CC2EB21DFB0E48B1B8171B2 /* [CP] Check Pods Manifest.lock */ = { + 3786E1E96ECBC02983BF7FF5 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1954,7 +2991,7 @@ 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"; showEnvVarsInLog = 0; }; - 7E9B7B5115CCC4F0FCBED014 /* [CP] Check Pods Manifest.lock */ = { + 382D1EF01D4C0AA28E9E7078 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1969,82 +3006,82 @@ 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"; showEnvVarsInLog = 0; }; - 883CE42B54A7BB78295FBCDA /* [CP] Copy Pods Resources */ = { + 397CA4D128D5F736D2FC1476 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example/Pods-Core_Example-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example_iOS/Pods-Core_Example_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 9D6CD2CDCDD281E43FDD3492 /* [CP] Copy Pods Resources */ = { + 3C148B64CA202C27F0346730 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests/Pods-Core_Tests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests_iOS/Pods-Database_Tests_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 9D8053D74F91F866DB0D0199 /* [CP] Copy Pods Resources */ = { + 4115B5AD79B7D4DE65AE67FF /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests/Pods-Auth_Tests-resources.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - A2DF8D8C8D3B6639CBD9CB5B /* [CP] Copy Pods Resources */ = { + 41D2E6F8A0864E1FF985156D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example/Pods-Auth_Example-resources.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - A39D405E17BE3A6646B8E38E /* [CP] Copy Pods Resources */ = { + 443594697E84C4F57E3FCBEC /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Copy Pods Resources"; + name = "[CP] Check Pods Manifest.lock"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Example/Pods-Messaging_Example-resources.sh\"\n"; + 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"; showEnvVarsInLog = 0; }; - AA723E4B93CCA8A3A4C24F4E /* [CP] Copy Pods Resources */ = { + 4686FA0994A36A5BF5E219CF /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2056,25 +3093,40 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Tests/Pods-Messaging_Tests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example_iOS/Pods-Storage_Example_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - AB5B6984AF16CF03E74EA522 /* [CP] Check Pods Manifest.lock */ = { + 46AC2CDE18260459A7BCCB3E /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Example_iOS/Pods-Messaging_Example_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 4DA6D1A9235C30D92BB04429 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example_macOS/Pods-Database_Example_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - AD42F17297AF3C18062D4C51 /* [CP] Check Pods Manifest.lock */ = { + 515A9829FF53C6BA758C94E3 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2089,7 +3141,7 @@ 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"; showEnvVarsInLog = 0; }; - ADFC988CE33AA0C8F0C59177 /* [CP] Embed Pods Frameworks */ = { + 5A5F3E025D2695FF758F5531 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2101,25 +3153,25 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Example/Pods-Messaging_Example-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example_iOS/Pods-Auth_Example_iOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - B293C142610E914FBE2CA4C9 /* [CP] Embed Pods Frameworks */ = { + 66E15CF732415F6E8CE006A4 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example/Pods-Auth_Example-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests_macOS/Pods-Database_Tests_macOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - B84CF6076850A6EA9E66592F /* [CP] Copy Pods Resources */ = { + 6906C02D16345BF9950F16BD /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2131,100 +3183,100 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests/Pods-Storage_IntegrationTests-resources.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests_macOS/Pods-Storage_IntegrationTests_macOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - BCC67418B8EBA4E90488CD55 /* [CP] Check Pods Manifest.lock */ = { + 6BA037F854743AFBE0608F44 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests_iOS/Pods-Storage_IntegrationTests_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - BF9A61F6BBE9655CED5E897D /* [CP] Check Pods Manifest.lock */ = { + 6CDB2FCF70875C8C64686DD2 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests_iOS/Pods-Auth_Tests_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - C3AFD8761D910A99E506F606 /* [CP] Check Pods Manifest.lock */ = { + 6DA313F9857A3BDBDA296B76 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputPaths = ( ); 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"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example_macOS/Pods-Core_Example_macOS-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - DEFCD9C6026936498AE2778C /* [CP] Embed Pods Frameworks */ = { + 6EA15A611F2B8F75144549BF /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example/Pods-Core_Example-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests_iOS/Pods-Storage_Tests_iOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - E8657FA5227C3B5EB7B83B40 /* [CP] Embed Pods Frameworks */ = { + 6F226BA957A397FC5FECC12E /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example/Pods-Storage_Example-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests_macOS/Pods-Database_IntegrationTests_macOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - E9A4ADE4EE7390DC85A9FC17 /* [CP] Embed Pods Frameworks */ = { + 777537E8787F27950F56D363 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputPaths = ( ); - name = "[CP] Embed Pods Frameworks"; + name = "[CP] Copy Pods Resources"; outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example/Pods-Database_Example-frameworks.sh\"\n"; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example_macOS/Pods-Database_Example_macOS-resources.sh\"\n"; showEnvVarsInLog = 0; }; - EE21F035A2A97C35635C2F3C /* [CP] Check Pods Manifest.lock */ = { + 77E94B705381010F68BFBF0F /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -2239,466 +3291,1769 @@ 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"; showEnvVarsInLog = 0; }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 06121EB81EC399C50008D70E /* Sources */ = { - isa = PBXSourcesBuildPhase; + 78B9968CB166AE209A644B63 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - 06C24A061EC39BCB005208CA /* FIRStorageIntegrationTests.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Tests_iOS/Pods-Database_Tests_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - 0624F3DD1EC0ECFA00E5940D /* Sources */ = { - isa = PBXSourcesBuildPhase; + 7B5A9979C548A06D6F9F3DF3 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - 0624F3EC1EC0ED1B00E5940D /* FData.m in Sources */, - 0637BA6D1EC0F9CF00CAEFD4 /* FTestBase.m in Sources */, - 0637BA721EC0F9E000CAEFD4 /* FTupleEventTypeString.m in Sources */, - 0637BA6C1EC0F9CB00CAEFD4 /* FTestAuthTokenGenerator.m in Sources */, - 0637BA6B1EC0F9C700CAEFD4 /* FMockStorageEngine.m in Sources */, - 0624F3EB1EC0ED0800E5940D /* FConnectionTest.m in Sources */, - 0624F3F21EC0ED3F00E5940D /* FKeepSyncedTest.m in Sources */, - 0624F3F71EC0ED5600E5940D /* FTransactionTest.m in Sources */, - 0624F3F01EC0ED3500E5940D /* FIRDatabaseQueryTests.m in Sources */, - 0637BA701EC0F9D900CAEFD4 /* FTestExpectations.m in Sources */, - 0637BA6F1EC0F9D500CAEFD4 /* FTestClock.m in Sources */, - 0637BA691EC0F9C100CAEFD4 /* FIRFakeApp.m in Sources */, - 0624F3EE1EC0ED2A00E5940D /* FEventTests.m in Sources */, - 0624F3ED1EC0ED2300E5940D /* FDotInfo.m in Sources */, - 0624F3F61EC0ED5100E5940D /* FRealtime.m in Sources */, - 0637BA671EC0F9BA00CAEFD4 /* FDevice.m in Sources */, - 0637BA6A1EC0F9C400CAEFD4 /* FIRTestAuthTokenProvider.m in Sources */, - 0637BA731EC0F9E400CAEFD4 /* SenTest+FWaiter.m in Sources */, - 0624F3F11EC0ED3A00E5940D /* FIRDatabaseTests.m in Sources */, - 0624F3F41EC0ED4800E5940D /* FOrderByTests.m in Sources */, - 0624F3F51EC0ED4D00E5940D /* FPersist.m in Sources */, - 0624F3EF1EC0ED3000E5940D /* FIRAuthTests.m in Sources */, - 0624F3F31EC0ED4300E5940D /* FOrder.m in Sources */, - 0637BA6E1EC0F9D200CAEFD4 /* FTestCachePolicy.m in Sources */, - 0637BA711EC0F9DD00CAEFD4 /* FTestHelpers.m in Sources */, - 0637BA681EC0F9BD00CAEFD4 /* FEventTester.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example_macOS/Pods-Auth_Example_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - AFD562E11EB13C6D00EA2233 /* Sources */ = { - isa = PBXSourcesBuildPhase; + 7D4D62D23FA1B896FD67C5A4 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - AFD563171EBBEF7B00EA2233 /* Data+MessagingExtensions.swift in Sources */, - AFD5630E1EB1402300EA2233 /* AppDelegate.swift in Sources */, - AFC8BA9D1EBD230E00B8EEAE /* NotificationsController.swift in Sources */, - AFD5630F1EB1402300EA2233 /* MessagingViewController.swift in Sources */, - AFC8BAA71EC257D800B8EEAE /* FIRSampleAppUtilities.m in Sources */, - AFC8BA9F1EBD51A700B8EEAE /* Environment.swift in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( ); 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"; + showEnvVarsInLog = 0; }; - DE7B8D011E8EF077009EB6DF /* Sources */ = { - isa = PBXSourcesBuildPhase; + 8500FBBCF671CB86388A2A1F /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DE7B8DCB1E8EF23A009EB6DF /* FIRViewController.m in Sources */, - DE7B8DCC1E8EF23A009EB6DF /* main.m in Sources */, - DE7B8DCA1E8EF23A009EB6DF /* FIRAppDelegate.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests_macOS/Pods-Core_Tests_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - DE7B8D191E8EF078009EB6DF /* Sources */ = { - isa = PBXSourcesBuildPhase; + 88BCFC1511548BF9A07844FA /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DE7B8DC61E8EF203009EB6DF /* FTestHelpers.m in Sources */, - 063CB4CE1EBA7B4600038A59 /* FPathTests.m in Sources */, - DE7B8DC31E8EF203009EB6DF /* FTestCachePolicy.m in Sources */, - 063CB4D11EBA7B4600038A59 /* FPruningTest.m in Sources */, - DE7B8DC41E8EF203009EB6DF /* FTestClock.m in Sources */, - DE7B8DC01E8EF203009EB6DF /* FIRTestAuthTokenProvider.m in Sources */, - 063CB4D31EBA7B4600038A59 /* FRangeMergeTest.m in Sources */, - 063CB4C81EBA7B3100038A59 /* FTreeSortedDictionaryTests.m in Sources */, - 063CB4CD1EBA7B4600038A59 /* FNodeTests.m in Sources */, - 063CB4CB1EBA7B4600038A59 /* FIRMutableDataTests.m in Sources */, - 063CB4BE1EBA7B3100038A59 /* FIRDataSnapshotTests.m in Sources */, - DE7B8DC11E8EF203009EB6DF /* FMockStorageEngine.m in Sources */, - DE7B8DC71E8EF203009EB6DF /* FTupleEventTypeString.m in Sources */, - 063CB4CC1EBA7B4600038A59 /* FLevelDBStorageEngineTests.m in Sources */, - 063CB4D41EBA7B4600038A59 /* FRepoInfoTest.m in Sources */, - 063CB4CA1EBA7B4600038A59 /* FCompoundHashTest.m in Sources */, - 063CB4D81EBA7B4600038A59 /* FTrackedQueryManagerTest.m in Sources */, - 063CB4D91EBA7B4600038A59 /* FUtilitiesTest.m in Sources */, - 063CB4D51EBA7B4600038A59 /* FSparseSnapshotTests.m in Sources */, - 063CB4D71EBA7B4600038A59 /* FTestBase.m in Sources */, - DE7B8DBE1E8EF203009EB6DF /* FDevice.m in Sources */, - 063CB4CF1EBA7B4600038A59 /* FPersistenceManagerTest.m in Sources */, - 063CB4A71EBA7B0B00038A59 /* FCompoundWriteTest.m in Sources */, - DE7B8DC81E8EF203009EB6DF /* SenTest+FWaiter.m in Sources */, - 063CB4D01EBA7B4600038A59 /* FPruneForestTest.m in Sources */, - DE7B8DC51E8EF203009EB6DF /* FTestExpectations.m in Sources */, - 063CB4BF1EBA7B3100038A59 /* FIRFakeApp.m in Sources */, - DE7B8DBF1E8EF203009EB6DF /* FEventTester.m in Sources */, - 063CB4D21EBA7B4600038A59 /* FQueryParamsTest.m in Sources */, - 063CB4DB1EBAA89E00038A59 /* FSyncPointTests.m in Sources */, - 063CB4C91EBA7B4600038A59 /* FArraySortedDictionaryTest.m in Sources */, - DE7B8DC21E8EF203009EB6DF /* FTestAuthTokenGenerator.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( ); 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"; + showEnvVarsInLog = 0; }; - DE9314C21E86C6BD0083EDBF /* Sources */ = { - isa = PBXSourcesBuildPhase; + 8C301E5FE3BE0A2411C759AA /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - 0697B1221EC13D8A00542174 /* Base64.m in Sources */, - DE93152A1E86C6FF0083EDBF /* FIRViewController.m in Sources */, - DE93152D1E86C6FF0083EDBF /* main.m in Sources */, - DE9315291E86C6FF0083EDBF /* FIRAppDelegate.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_IntegrationTests_iOS/Pods-Database_IntegrationTests_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - DE9314DA1E86C6BE0083EDBF /* Sources */ = { - isa = PBXSourcesBuildPhase; + 8C6BEC1986608252A51D2D30 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DE9315691E86C71C0083EDBF /* FIRGetOOBConfirmationCodeResponseTests.m in Sources */, - DE9315661E86C71C0083EDBF /* FIRGetAccountInfoRequestTests.m in Sources */, - DE9315731E86C71C0083EDBF /* FIRSignUpNewUserResponseTests.m in Sources */, - DE9315681E86C71C0083EDBF /* FIRGetOOBConfirmationCodeRequestTests.m in Sources */, - DE9315571E86C71C0083EDBF /* FIRAdditionalUserInfoTests.m in Sources */, - DE750DBF1EB3DD6C00A75E47 /* FIRAuthAppCredentialManagerTests.m in Sources */, - DE93157B1E86C71C0083EDBF /* FIRVerifyPasswordResponseTests.m in Sources */, - DE93155B1E86C71C0083EDBF /* FIRAuthDispatcherTests.m in Sources */, - DE9315791E86C71C0083EDBF /* FIRVerifyCustomTokenResponseTests.m in Sources */, - DE9315601E86C71C0083EDBF /* FIRAuthUserDefaultsStorageTests.m in Sources */, - DE9315641E86C71C0083EDBF /* FIRDeleteAccountResponseTests.m in Sources */, - DE9315741E86C71C0083EDBF /* FIRTwitterAuthProviderTests.m in Sources */, - DE750DC01EB3DD6F00A75E47 /* FIRAuthNotificationManagerTests.m in Sources */, - DE93156A1E86C71C0083EDBF /* FIRGitHubAuthProviderTests.m in Sources */, - DE9315761E86C71C0083EDBF /* FIRVerifyAssertionRequestTests.m in Sources */, - DE9315781E86C71C0083EDBF /* FIRVerifyCustomTokenRequestTests.m in Sources */, - DE93157C1E86C71C0083EDBF /* FIRVerifyPhoneNumberRequestTests.m in Sources */, - DE9315651E86C71C0083EDBF /* FIRFakeBackendRPCIssuer.m in Sources */, - DE9315591E86C71C0083EDBF /* FIRAuthBackendCreateAuthURITests.m in Sources */, - DE0E5BBB1EA7D92E00FAA825 /* FIRVerifyClientRequestTest.m in Sources */, - DE93156F1E86C71C0083EDBF /* FIRSendVerificationCodeResponseTests.m in Sources */, - DE93156C1E86C71C0083EDBF /* FIRResetPasswordRequestTests.m in Sources */, - DE93156D1E86C71C0083EDBF /* FIRResetPasswordResponseTests.m in Sources */, - DE9315611E86C71C0083EDBF /* FIRCreateAuthURIRequestTests.m in Sources */, - DE93156E1E86C71C0083EDBF /* FIRSendVerificationCodeRequestTests.m in Sources */, - DE93155D1E86C71C0083EDBF /* FIRAuthKeychainTests.m in Sources */, - DE93155C1E86C71C0083EDBF /* FIRAuthGlobalWorkQueueTests.m in Sources */, - DE9315631E86C71C0083EDBF /* FIRDeleteAccountRequestTests.m in Sources */, - DECE039B1E9ED01600164CA4 /* FIRPhoneAuthProviderTests.m in Sources */, - DE750DBE1EB3DD6800A75E47 /* FIRAuthAPNSTokenManagerTests.m in Sources */, - DE93157A1E86C71C0083EDBF /* FIRVerifyPasswordRequestTest.m in Sources */, - DE9315621E86C71C0083EDBF /* FIRCreateAuthURIResponseTests.m in Sources */, - DE93155A1E86C71C0083EDBF /* FIRAuthBackendRPCImplementationTests.m in Sources */, - DE93157D1E86C71C0083EDBF /* FIRVerifyPhoneNumberResponseTests.m in Sources */, - DE93157E1E86C71C0083EDBF /* OCMStubRecorder+FIRAuthUnitTests.m in Sources */, - DE9315771E86C71C0083EDBF /* FIRVerifyAssertionResponseTests.m in Sources */, - DE9315721E86C71C0083EDBF /* FIRSignUpNewUserRequestTests.m in Sources */, - DE9315671E86C71C0083EDBF /* FIRGetAccountInfoResponseTests.m in Sources */, - DE9315701E86C71C0083EDBF /* FIRSetAccountInfoRequestTests.m in Sources */, - DE0E5BBD1EA7D93100FAA825 /* FIRAuthAppCredentialTests.m in Sources */, - DE93155E1E86C71C0083EDBF /* FIRAuthSerialTaskQueueTests.m in Sources */, - DE9315581E86C71C0083EDBF /* FIRApp+FIRAuthUnitTests.m in Sources */, - DE9315711E86C71C0083EDBF /* FIRSetAccountInfoResponseTests.m in Sources */, - DE93155F1E86C71C0083EDBF /* FIRAuthTests.m in Sources */, - DE750DBD1EB3DD5B00A75E47 /* FIRAuthAPNSTokenTests.m in Sources */, - DE0E5BBE1EA7D93500FAA825 /* FIRAuthAppDelegateProxyTests.m in Sources */, - DE0E5BBC1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m in Sources */, - DE9315751E86C71C0083EDBF /* FIRUserTests.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( ); 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"; + showEnvVarsInLog = 0; }; - DE9315A31E8738460083EDBF /* Sources */ = { - isa = PBXSourcesBuildPhase; + 9545BA7AC96B74C6340B0A5B /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DE9315F41E8738E60083EDBF /* FIRMessagingClientTest.m in Sources */, - DE9315F51E8738E60083EDBF /* FIRMessagingCodedInputStreamTest.m in Sources */, - DE9315F71E8738E60083EDBF /* FIRMessagingContextManagerServiceTest.m in Sources */, - DE9315FD1E8738E60083EDBF /* FIRMessagingPubSubTest.m in Sources */, - DE9316011E8738E60083EDBF /* FIRMessagingSecureSocketTest.m in Sources */, - DE9315FB1E8738E60083EDBF /* FIRMessagingLinkHandlingTest.m in Sources */, - DE9315FC1E8738E60083EDBF /* FIRMessagingPendingTopicsListTest.m in Sources */, - DE9316001E8738E60083EDBF /* FIRMessagingRmqManagerTest.m in Sources */, - DE9315F91E8738E60083EDBF /* FIRMessagingFakeConnection.m in Sources */, - DE9316021E8738E60083EDBF /* FIRMessagingServiceTest.m in Sources */, - DE9315FE1E8738E60083EDBF /* FIRMessagingRegistrarTest.m in Sources */, - DE9316031E8738E60083EDBF /* FIRMessagingSyncMessageManagerTest.m in Sources */, - DE9315FF1E8738E60083EDBF /* FIRMessagingRemoteNotificationsProxyTest.m in Sources */, - DE9315F81E8738E60083EDBF /* FIRMessagingDataMessageManagerTest.m in Sources */, - DE9316051E8738E60083EDBF /* FIRMessagingTestNotificationUtilities.m in Sources */, - DE9315F61E8738E60083EDBF /* FIRMessagingConnectionTest.m in Sources */, - DE9316041E8738E60083EDBF /* FIRMessagingTest.m in Sources */, - DE9315FA1E8738E60083EDBF /* FIRMessagingFakeSocket.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests_macOS/Pods-Storage_Tests_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - DEB139E21E73506A00AC236D /* Sources */ = { - isa = PBXSourcesBuildPhase; + 96ED84C7FC567FEDEF7FD80F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DEB61EC81E7C5DBB00C04B96 /* FIRViewController.m in Sources */, - DEB61ECB1E7C5DBB00C04B96 /* main.m in Sources */, - DEB61EC71E7C5DBB00C04B96 /* FIRAppDelegate.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example_macOS/Pods-Storage_Example_macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - DEB13A0E1E73507E00AC236D /* Sources */ = { - isa = PBXSourcesBuildPhase; + 9CEB39C23D6A99B302EB07E9 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DEB13A301E73518B00AC236D /* FIRStorageUtilsTests.m in Sources */, - DEB13A2D1E73518B00AC236D /* FIRStorageTests.m in Sources */, - DEB13A281E73518B00AC236D /* FIRStorageGetMetadataTests.m in Sources */, - DEB13A2F1E73518B00AC236D /* FIRStorageUpdateMetadataTests.m in Sources */, - DEB13A271E73518B00AC236D /* FIRStorageDeleteTests.m in Sources */, - DEB13A2C1E73518B00AC236D /* FIRStorageTestHelpers.m in Sources */, - DEB13A291E73518B00AC236D /* FIRStorageMetadataTests.m in Sources */, - DEB13A2E1E73518B00AC236D /* FIRStorageTokenAuthorizerTests.m in Sources */, - DEB13A2B1E73518B00AC236D /* FIRStorageReferenceTests.m in Sources */, - DEB13A2A1E73518B00AC236D /* FIRStoragePathTests.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( ); 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"; + showEnvVarsInLog = 0; }; - DEE14D3D1E84464D006FA992 /* Sources */ = { - isa = PBXSourcesBuildPhase; + A74FE39C9BA59971425C1059 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DEE14D821E844677006FA992 /* FIRViewController.m in Sources */, - DEE14D851E844677006FA992 /* main.m in Sources */, - DEE14D811E844677006FA992 /* FIRAppDelegate.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Tests_iOS/Pods-Storage_Tests_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - DEE14D551E84464D006FA992 /* Sources */ = { - isa = PBXSourcesBuildPhase; + A969D5847DE84AFD9C0B2EAA /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( - DEE14D8E1E84468D006FA992 /* FIRAppAssociationRegistrationUnitTests.m in Sources */, - DEE14D8F1E84468D006FA992 /* FIRAppTest.m in Sources */, - DEE14D911E84468D006FA992 /* FIRConfigurationTest.m in Sources */, - DEE14D921E84468D006FA992 /* FIRLoggerTest.m in Sources */, - DEE14D931E84468D006FA992 /* FIROptionsTest.m in Sources */, - DEE14D901E84468D006FA992 /* FIRBundleUtilTest.m in Sources */, - DEE14D941E84468D006FA992 /* FIRTestCase.m in Sources */, + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests_macOS/Pods-Auth_Tests_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 06121EC71EC399D40008D70E /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DEB139E01E73506A00AC236D /* Storage_Example */; - targetProxy = 06121EC61EC399D40008D70E /* PBXContainerItemProxy */; - }; - 0624F3E71EC0ECFA00E5940D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE7B8D041E8EF077009EB6DF /* Database_Example */; - targetProxy = 0624F3E61EC0ECFA00E5940D /* PBXContainerItemProxy */; - }; - AFD563121EB140E100EA2233 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = AFD562E41EB13C6D00EA2233 /* Messaging_Example */; - targetProxy = AFD563111EB140E100EA2233 /* PBXContainerItemProxy */; - }; - DE3373981E73776F00881891 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DEB13A0A1E73507E00AC236D /* Storage_Tests */; - targetProxy = DE3373971E73776F00881891 /* PBXContainerItemProxy */; - }; - DE6F01BA1E957157004AEE01 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE9315A61E8738460083EDBF /* Messaging_Tests */; - targetProxy = DE6F01B91E957157004AEE01 /* PBXContainerItemProxy */; - }; - DE7B8D1F1E8EF078009EB6DF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE7B8D041E8EF077009EB6DF /* Database_Example */; - targetProxy = DE7B8D1E1E8EF078009EB6DF /* PBXContainerItemProxy */; - }; - DE9314E01E86C6BE0083EDBF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE9314C51E86C6BD0083EDBF /* Auth_Example */; - targetProxy = DE9314DF1E86C6BE0083EDBF /* PBXContainerItemProxy */; - }; - DE9315871E86E9990083EDBF /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE9314DD1E86C6BE0083EDBF /* Auth_Tests */; - targetProxy = DE9315861E86E9990083EDBF /* PBXContainerItemProxy */; - }; - DEB13A261E73512500AC236D /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DEB139E01E73506A00AC236D /* Storage_Example */; - targetProxy = DEB13A251E73512500AC236D /* PBXContainerItemProxy */; - }; - DEB5185A1E9008CB0089C938 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DE7B8D1C1E8EF078009EB6DF /* Database_Tests */; - targetProxy = DEB518591E9008CB0089C938 /* PBXContainerItemProxy */; - }; - DEE14D5B1E84464D006FA992 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DEE14D401E84464D006FA992 /* Core_Example */; - targetProxy = DEE14D5A1E84464D006FA992 /* PBXContainerItemProxy */; - }; - DEE14E0B1E844FDC006FA992 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = DEE14D581E84464D006FA992 /* Core_Tests */; - targetProxy = DEE14E0A1E844FDC006FA992 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - AFD563081EB1400900EA2233 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - AFD563091EB1400900EA2233 /* Base */, + AAAD94DC9AD45DB4D4A83C6F /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - AFD5630A1EB1400900EA2233 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - AFD5630B1EB1400900EA2233 /* Base */, + inputPaths = ( ); - name = Main.storyboard; - sourceTree = ""; - }; - DE7B8D2C1E8EF202009EB6DF /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DE7B8D2D1E8EF202009EB6DF /* Base */, + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( ); - name = LaunchScreen.storyboard; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_IntegrationTests_macOS/Pods-Storage_IntegrationTests_macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - DE7B8D2E1E8EF202009EB6DF /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DE7B8D2F1E8EF202009EB6DF /* Base */, + AF2540B4B40DE449024AEA95 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( ); - name = Main.storyboard; - sourceTree = ""; - }; - DE7B8D691E8EF202009EB6DF /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - DE7B8D6A1E8EF202009EB6DF /* en */, + inputPaths = ( ); - name = InfoPlist.strings; - sourceTree = ""; - }; - DE9314ED1E86C6FF0083EDBF /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DE9314EE1E86C6FF0083EDBF /* Base */, + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); - name = LaunchScreen.storyboard; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example_macOS/Pods-Storage_Example_macOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - DE9314EF1E86C6FF0083EDBF /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DE9314F01E86C6FF0083EDBF /* Base */, + B5EBB1596041B87C01906583 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( ); - name = Main.storyboard; - sourceTree = ""; - }; - DEB61EB91E7C5DBB00C04B96 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DEB61EBA1E7C5DBB00C04B96 /* Base */, + inputPaths = ( ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; - DEB61EBB1E7C5DBB00C04B96 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DEB61EBC1E7C5DBB00C04B96 /* Base */, + name = "[CP] Copy Pods Resources"; + outputPaths = ( ); - name = Main.storyboard; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Example_iOS/Pods-Core_Example_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; }; - DEE14D681E844677006FA992 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DEE14D691E844677006FA992 /* Base */, + B66F9F8E9BF747B1F447D6C0 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( ); - name = LaunchScreen.storyboard; - sourceTree = ""; + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + 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"; + showEnvVarsInLog = 0; }; - DEE14D6A1E844677006FA992 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - DEE14D6B1E844677006FA992 /* Base */, + BE0467734612262580712A0B /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( ); - name = Main.storyboard; - sourceTree = ""; + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests_iOS/Pods-Auth_Tests_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; -/* End PBXVariantGroup section */ - + BF2336EA73E2EC48D55AD7AE /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + 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"; + showEnvVarsInLog = 0; + }; + C707F47D947D57E74249C2F6 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Storage_Example_iOS/Pods-Storage_Example_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + D3703F55DC5ED15CAB21565A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + 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"; + showEnvVarsInLog = 0; + }; + D91D8C04B4376FFAD9D5FEBE /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Tests_iOS/Pods-Messaging_Tests_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + D97ECF2CC0F803E2796C1729 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Core_Tests_iOS/Pods-Core_Tests_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DAD74549C85FC7655DF05FBA /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Messaging_Tests_iOS/Pods-Messaging_Tests_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + E6B7CF75067684486A66E0EE /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example_macOS/Pods-Auth_Example_macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + F1A319FB51EA9E2F33538E3C /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Example_iOS/Pods-Auth_Example_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F3FBA8A6C2D3E5CBD29AACB8 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Copy Pods Resources"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example_iOS/Pods-Database_Example_iOS-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + F6DC06843B1A770F9279D334 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Auth_Tests_macOS/Pods-Auth_Tests_macOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + F8451B3BC6FE1309C54DA67A /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Check Pods Manifest.lock"; + outputPaths = ( + ); + 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"; + showEnvVarsInLog = 0; + }; + FA4CDC0B9CEED724759D523A /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "[CP] Embed Pods Frameworks"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-Database_Example_iOS/Pods-Database_Example_iOS-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 06121EB81EC399C50008D70E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 06C24A061EC39BCB005208CA /* FIRStorageIntegrationTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 0624F3DD1EC0ECFA00E5940D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0624F3EC1EC0ED1B00E5940D /* FData.m in Sources */, + 0637BA6D1EC0F9CF00CAEFD4 /* FTestBase.m in Sources */, + 0637BA721EC0F9E000CAEFD4 /* FTupleEventTypeString.m in Sources */, + 0637BA6C1EC0F9CB00CAEFD4 /* FTestAuthTokenGenerator.m in Sources */, + 0637BA6B1EC0F9C700CAEFD4 /* FMockStorageEngine.m in Sources */, + 0624F3EB1EC0ED0800E5940D /* FConnectionTest.m in Sources */, + 0624F3F21EC0ED3F00E5940D /* FKeepSyncedTest.m in Sources */, + 0624F3F71EC0ED5600E5940D /* FTransactionTest.m in Sources */, + 0624F3F01EC0ED3500E5940D /* FIRDatabaseQueryTests.m in Sources */, + 0637BA701EC0F9D900CAEFD4 /* FTestExpectations.m in Sources */, + 0637BA6F1EC0F9D500CAEFD4 /* FTestClock.m in Sources */, + 0637BA691EC0F9C100CAEFD4 /* FIRFakeApp.m in Sources */, + 0624F3EE1EC0ED2A00E5940D /* FEventTests.m in Sources */, + 0624F3ED1EC0ED2300E5940D /* FDotInfo.m in Sources */, + 0624F3F61EC0ED5100E5940D /* FRealtime.m in Sources */, + 0637BA671EC0F9BA00CAEFD4 /* FDevice.m in Sources */, + 0637BA6A1EC0F9C400CAEFD4 /* FIRTestAuthTokenProvider.m in Sources */, + 0637BA731EC0F9E400CAEFD4 /* SenTest+FWaiter.m in Sources */, + 0624F3F11EC0ED3A00E5940D /* FIRDatabaseTests.m in Sources */, + 0624F3F41EC0ED4800E5940D /* FOrderByTests.m in Sources */, + 0624F3F51EC0ED4D00E5940D /* FPersist.m in Sources */, + 0624F3EF1EC0ED3000E5940D /* FIRAuthTests.m in Sources */, + 0624F3F31EC0ED4300E5940D /* FOrder.m in Sources */, + 0637BA6E1EC0F9D200CAEFD4 /* FTestCachePolicy.m in Sources */, + 0637BA711EC0F9DD00CAEFD4 /* FTestHelpers.m in Sources */, + 0637BA681EC0F9BD00CAEFD4 /* FEventTester.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + AFD562E11EB13C6D00EA2233 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + AFD563171EBBEF7B00EA2233 /* Data+MessagingExtensions.swift in Sources */, + AFD5630E1EB1402300EA2233 /* AppDelegate.swift in Sources */, + AFC8BA9D1EBD230E00B8EEAE /* NotificationsController.swift in Sources */, + AFD5630F1EB1402300EA2233 /* MessagingViewController.swift in Sources */, + AFC8BAA71EC257D800B8EEAE /* FIRSampleAppUtilities.m in Sources */, + AFC8BA9F1EBD51A700B8EEAE /* Environment.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D01853691EDAD084003A645C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D01853831EDAD113003A645C /* FIRAppDelegate.m in Sources */, + D01853841EDAD113003A645C /* FIRViewController.m in Sources */, + D01853851EDAD113003A645C /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D018538C1EDAD364003A645C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D018538D1EDAD364003A645C /* FIRGetOOBConfirmationCodeResponseTests.m in Sources */, + D018538E1EDAD364003A645C /* FIRGetAccountInfoRequestTests.m in Sources */, + D018538F1EDAD364003A645C /* FIRSignUpNewUserResponseTests.m in Sources */, + D01853901EDAD364003A645C /* FIRGetOOBConfirmationCodeRequestTests.m in Sources */, + D01853911EDAD364003A645C /* FIRAdditionalUserInfoTests.m in Sources */, + D01853931EDAD364003A645C /* FIRVerifyPasswordResponseTests.m in Sources */, + D01853941EDAD364003A645C /* FIRAuthDispatcherTests.m in Sources */, + D01853951EDAD364003A645C /* FIRVerifyCustomTokenResponseTests.m in Sources */, + D01853961EDAD364003A645C /* FIRAuthUserDefaultsStorageTests.m in Sources */, + D01853971EDAD364003A645C /* FIRDeleteAccountResponseTests.m in Sources */, + D01853981EDAD364003A645C /* FIRTwitterAuthProviderTests.m in Sources */, + D018539A1EDAD364003A645C /* FIRGitHubAuthProviderTests.m in Sources */, + D018539B1EDAD364003A645C /* FIRVerifyAssertionRequestTests.m in Sources */, + D018539C1EDAD364003A645C /* FIRVerifyCustomTokenRequestTests.m in Sources */, + D018539E1EDAD364003A645C /* FIRFakeBackendRPCIssuer.m in Sources */, + D018539F1EDAD364003A645C /* FIRAuthBackendCreateAuthURITests.m in Sources */, + D01853A21EDAD364003A645C /* FIRResetPasswordRequestTests.m in Sources */, + D01853A31EDAD364003A645C /* FIRResetPasswordResponseTests.m in Sources */, + D01853A41EDAD364003A645C /* FIRCreateAuthURIRequestTests.m in Sources */, + D01853A61EDAD364003A645C /* FIRAuthKeychainTests.m in Sources */, + D01853A71EDAD364003A645C /* FIRAuthGlobalWorkQueueTests.m in Sources */, + D01853A81EDAD364003A645C /* FIRDeleteAccountRequestTests.m in Sources */, + D01853AB1EDAD364003A645C /* FIRVerifyPasswordRequestTest.m in Sources */, + D01853AC1EDAD364003A645C /* FIRCreateAuthURIResponseTests.m in Sources */, + D01853AD1EDAD364003A645C /* FIRAuthBackendRPCImplementationTests.m in Sources */, + D01853AF1EDAD364003A645C /* OCMStubRecorder+FIRAuthUnitTests.m in Sources */, + D01853B01EDAD364003A645C /* FIRVerifyAssertionResponseTests.m in Sources */, + D01853B11EDAD364003A645C /* FIRSignUpNewUserRequestTests.m in Sources */, + D01853B21EDAD364003A645C /* FIRGetAccountInfoResponseTests.m in Sources */, + D01853B31EDAD364003A645C /* FIRSetAccountInfoRequestTests.m in Sources */, + D01853B41EDAD364003A645C /* FIRAuthAppCredentialTests.m in Sources */, + D01853B51EDAD364003A645C /* FIRAuthSerialTaskQueueTests.m in Sources */, + D01853B61EDAD364003A645C /* FIRApp+FIRAuthUnitTests.m in Sources */, + D01853B71EDAD364003A645C /* FIRSetAccountInfoResponseTests.m in Sources */, + D01853B81EDAD364003A645C /* FIRAuthTests.m in Sources */, + D01853BC1EDAD364003A645C /* FIRUserTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6921ED9B1BF001956DF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D064E6A01ED9B1BF001956DF /* FIRViewController.m in Sources */, + D064E69D1ED9B1BF001956DF /* main.m in Sources */, + D064E69A1ED9B1BF001956DF /* FIRAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D064E6AE1ED9B31C001956DF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D064E6AF1ED9B31C001956DF /* FIRAppAssociationRegistrationUnitTests.m in Sources */, + D064E6B01ED9B31C001956DF /* FIRAppTest.m in Sources */, + D064E6B11ED9B31C001956DF /* FIRConfigurationTest.m in Sources */, + D064E6B21ED9B31C001956DF /* FIRLoggerTest.m in Sources */, + D064E6B31ED9B31C001956DF /* FIROptionsTest.m in Sources */, + D064E6B41ED9B31C001956DF /* FIRBundleUtilTest.m in Sources */, + D064E6B51ED9B31C001956DF /* FIRTestCase.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2BE1EDA04F800B6C31B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EDB2D71EDA057800B6C31B /* FIRAppDelegate.m in Sources */, + D0EDB2D81EDA057800B6C31B /* FIRViewController.m in Sources */, + D0EDB2D91EDA057800B6C31B /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2E21EDA06CB00B6C31B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EDB2E31EDA06CB00B6C31B /* FIRStorageUtilsTests.m in Sources */, + D0EDB2E41EDA06CB00B6C31B /* FIRStorageTests.m in Sources */, + D0EDB2E51EDA06CB00B6C31B /* FIRStorageGetMetadataTests.m in Sources */, + D0EDB2E61EDA06CB00B6C31B /* FIRStorageUpdateMetadataTests.m in Sources */, + D0EDB2E71EDA06CB00B6C31B /* FIRStorageDeleteTests.m in Sources */, + D0EDB2E81EDA06CB00B6C31B /* FIRStorageTestHelpers.m in Sources */, + D0EDB2E91EDA06CB00B6C31B /* FIRStorageMetadataTests.m in Sources */, + D0EDB2EA1EDA06CB00B6C31B /* FIRStorageTokenAuthorizerTests.m in Sources */, + D0EDB2EB1EDA06CB00B6C31B /* FIRStorageReferenceTests.m in Sources */, + D0EDB2EC1EDA06CB00B6C31B /* FIRStoragePathTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0EDB2FC1EDA06D500B6C31B /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0EDB2FD1EDA06D500B6C31B /* FIRStorageIntegrationTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A201ED9C804003F6722 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0FE8A941ED9CAAE003F6722 /* FIRAppDelegate.m in Sources */, + D0FE8A951ED9CAAE003F6722 /* FIRViewController.m in Sources */, + D0FE8A961ED9CAAE003F6722 /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A351ED9C86F003F6722 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0FE8A361ED9C86F003F6722 /* FTestHelpers.m in Sources */, + D0FE8A371ED9C86F003F6722 /* FPathTests.m in Sources */, + D0FE8A381ED9C86F003F6722 /* FTestCachePolicy.m in Sources */, + D0FE8A391ED9C86F003F6722 /* FPruningTest.m in Sources */, + D0FE8A3A1ED9C86F003F6722 /* FTestClock.m in Sources */, + D0FE8A3B1ED9C86F003F6722 /* FIRTestAuthTokenProvider.m in Sources */, + D0FE8A3C1ED9C86F003F6722 /* FRangeMergeTest.m in Sources */, + D0FE8A3D1ED9C86F003F6722 /* FTreeSortedDictionaryTests.m in Sources */, + D0FE8A3E1ED9C86F003F6722 /* FNodeTests.m in Sources */, + D0FE8A3F1ED9C86F003F6722 /* FIRMutableDataTests.m in Sources */, + D0FE8A401ED9C86F003F6722 /* FIRDataSnapshotTests.m in Sources */, + D0FE8A411ED9C86F003F6722 /* FMockStorageEngine.m in Sources */, + D0FE8A421ED9C86F003F6722 /* FTupleEventTypeString.m in Sources */, + D0FE8A431ED9C86F003F6722 /* FLevelDBStorageEngineTests.m in Sources */, + D0FE8A441ED9C86F003F6722 /* FRepoInfoTest.m in Sources */, + D0FE8A451ED9C86F003F6722 /* FCompoundHashTest.m in Sources */, + D0FE8A461ED9C86F003F6722 /* FTrackedQueryManagerTest.m in Sources */, + D0FE8A471ED9C86F003F6722 /* FUtilitiesTest.m in Sources */, + D0FE8A481ED9C86F003F6722 /* FSparseSnapshotTests.m in Sources */, + D0FE8A491ED9C86F003F6722 /* FTestBase.m in Sources */, + D0FE8A4A1ED9C86F003F6722 /* FDevice.m in Sources */, + D0FE8A4B1ED9C86F003F6722 /* FPersistenceManagerTest.m in Sources */, + D0FE8A4C1ED9C86F003F6722 /* FCompoundWriteTest.m in Sources */, + D0FE8A4D1ED9C86F003F6722 /* SenTest+FWaiter.m in Sources */, + D0FE8A4E1ED9C86F003F6722 /* FPruneForestTest.m in Sources */, + D0FE8A4F1ED9C86F003F6722 /* FTestExpectations.m in Sources */, + D0FE8A501ED9C86F003F6722 /* FIRFakeApp.m in Sources */, + D0FE8A511ED9C86F003F6722 /* FEventTester.m in Sources */, + D0FE8A521ED9C86F003F6722 /* FQueryParamsTest.m in Sources */, + D0FE8A531ED9C86F003F6722 /* FSyncPointTests.m in Sources */, + D0FE8A541ED9C86F003F6722 /* FArraySortedDictionaryTest.m in Sources */, + D0FE8A551ED9C86F003F6722 /* FTestAuthTokenGenerator.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D0FE8A681ED9C87B003F6722 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D0FE8A691ED9C87B003F6722 /* FData.m in Sources */, + D0FE8A6A1ED9C87B003F6722 /* FTestBase.m in Sources */, + D0FE8A6B1ED9C87B003F6722 /* FTupleEventTypeString.m in Sources */, + D0FE8A6C1ED9C87B003F6722 /* FTestAuthTokenGenerator.m in Sources */, + D0FE8A6D1ED9C87B003F6722 /* FMockStorageEngine.m in Sources */, + D0FE8A6E1ED9C87B003F6722 /* FConnectionTest.m in Sources */, + D0FE8A6F1ED9C87B003F6722 /* FKeepSyncedTest.m in Sources */, + D0FE8A701ED9C87B003F6722 /* FTransactionTest.m in Sources */, + D0FE8A711ED9C87B003F6722 /* FIRDatabaseQueryTests.m in Sources */, + D0FE8A721ED9C87B003F6722 /* FTestExpectations.m in Sources */, + D0FE8A731ED9C87B003F6722 /* FTestClock.m in Sources */, + D0FE8A741ED9C87B003F6722 /* FIRFakeApp.m in Sources */, + D0FE8A751ED9C87B003F6722 /* FEventTests.m in Sources */, + D0FE8A761ED9C87B003F6722 /* FDotInfo.m in Sources */, + D0FE8A771ED9C87B003F6722 /* FRealtime.m in Sources */, + D0FE8A781ED9C87B003F6722 /* FDevice.m in Sources */, + D0FE8A791ED9C87B003F6722 /* FIRTestAuthTokenProvider.m in Sources */, + D0FE8A7A1ED9C87B003F6722 /* SenTest+FWaiter.m in Sources */, + D0FE8A7B1ED9C87B003F6722 /* FIRDatabaseTests.m in Sources */, + D0FE8A7C1ED9C87B003F6722 /* FOrderByTests.m in Sources */, + D0FE8A7D1ED9C87B003F6722 /* FPersist.m in Sources */, + D0FE8A7E1ED9C87B003F6722 /* FIRAuthTests.m in Sources */, + D0FE8A7F1ED9C87B003F6722 /* FOrder.m in Sources */, + D0FE8A801ED9C87B003F6722 /* FTestCachePolicy.m in Sources */, + D0FE8A811ED9C87B003F6722 /* FTestHelpers.m in Sources */, + D0FE8A821ED9C87B003F6722 /* FEventTester.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE7B8D011E8EF077009EB6DF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE7B8DCB1E8EF23A009EB6DF /* FIRViewController.m in Sources */, + DE7B8DCC1E8EF23A009EB6DF /* main.m in Sources */, + DE7B8DCA1E8EF23A009EB6DF /* FIRAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE7B8D191E8EF078009EB6DF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE7B8DC61E8EF203009EB6DF /* FTestHelpers.m in Sources */, + 063CB4CE1EBA7B4600038A59 /* FPathTests.m in Sources */, + DE7B8DC31E8EF203009EB6DF /* FTestCachePolicy.m in Sources */, + 063CB4D11EBA7B4600038A59 /* FPruningTest.m in Sources */, + DE7B8DC41E8EF203009EB6DF /* FTestClock.m in Sources */, + DE7B8DC01E8EF203009EB6DF /* FIRTestAuthTokenProvider.m in Sources */, + 063CB4D31EBA7B4600038A59 /* FRangeMergeTest.m in Sources */, + 063CB4C81EBA7B3100038A59 /* FTreeSortedDictionaryTests.m in Sources */, + 063CB4CD1EBA7B4600038A59 /* FNodeTests.m in Sources */, + 063CB4CB1EBA7B4600038A59 /* FIRMutableDataTests.m in Sources */, + 063CB4BE1EBA7B3100038A59 /* FIRDataSnapshotTests.m in Sources */, + DE7B8DC11E8EF203009EB6DF /* FMockStorageEngine.m in Sources */, + DE7B8DC71E8EF203009EB6DF /* FTupleEventTypeString.m in Sources */, + 063CB4CC1EBA7B4600038A59 /* FLevelDBStorageEngineTests.m in Sources */, + 063CB4D41EBA7B4600038A59 /* FRepoInfoTest.m in Sources */, + 063CB4CA1EBA7B4600038A59 /* FCompoundHashTest.m in Sources */, + 063CB4D81EBA7B4600038A59 /* FTrackedQueryManagerTest.m in Sources */, + 063CB4D91EBA7B4600038A59 /* FUtilitiesTest.m in Sources */, + 063CB4D51EBA7B4600038A59 /* FSparseSnapshotTests.m in Sources */, + 063CB4D71EBA7B4600038A59 /* FTestBase.m in Sources */, + DE7B8DBE1E8EF203009EB6DF /* FDevice.m in Sources */, + 063CB4CF1EBA7B4600038A59 /* FPersistenceManagerTest.m in Sources */, + 063CB4A71EBA7B0B00038A59 /* FCompoundWriteTest.m in Sources */, + DE7B8DC81E8EF203009EB6DF /* SenTest+FWaiter.m in Sources */, + 063CB4D01EBA7B4600038A59 /* FPruneForestTest.m in Sources */, + DE7B8DC51E8EF203009EB6DF /* FTestExpectations.m in Sources */, + 063CB4BF1EBA7B3100038A59 /* FIRFakeApp.m in Sources */, + DE7B8DBF1E8EF203009EB6DF /* FEventTester.m in Sources */, + 063CB4D21EBA7B4600038A59 /* FQueryParamsTest.m in Sources */, + 063CB4DB1EBAA89E00038A59 /* FSyncPointTests.m in Sources */, + 063CB4C91EBA7B4600038A59 /* FArraySortedDictionaryTest.m in Sources */, + DE7B8DC21E8EF203009EB6DF /* FTestAuthTokenGenerator.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9314C21E86C6BD0083EDBF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE93152A1E86C6FF0083EDBF /* FIRViewController.m in Sources */, + DE93152D1E86C6FF0083EDBF /* main.m in Sources */, + DE9315291E86C6FF0083EDBF /* FIRAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9314DA1E86C6BE0083EDBF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE9315691E86C71C0083EDBF /* FIRGetOOBConfirmationCodeResponseTests.m in Sources */, + DE9315661E86C71C0083EDBF /* FIRGetAccountInfoRequestTests.m in Sources */, + DE9315731E86C71C0083EDBF /* FIRSignUpNewUserResponseTests.m in Sources */, + DE9315681E86C71C0083EDBF /* FIRGetOOBConfirmationCodeRequestTests.m in Sources */, + DE9315571E86C71C0083EDBF /* FIRAdditionalUserInfoTests.m in Sources */, + DE750DBF1EB3DD6C00A75E47 /* FIRAuthAppCredentialManagerTests.m in Sources */, + DE93157B1E86C71C0083EDBF /* FIRVerifyPasswordResponseTests.m in Sources */, + DE93155B1E86C71C0083EDBF /* FIRAuthDispatcherTests.m in Sources */, + DE9315791E86C71C0083EDBF /* FIRVerifyCustomTokenResponseTests.m in Sources */, + DE9315601E86C71C0083EDBF /* FIRAuthUserDefaultsStorageTests.m in Sources */, + DE9315641E86C71C0083EDBF /* FIRDeleteAccountResponseTests.m in Sources */, + DE9315741E86C71C0083EDBF /* FIRTwitterAuthProviderTests.m in Sources */, + DE750DC01EB3DD6F00A75E47 /* FIRAuthNotificationManagerTests.m in Sources */, + DE93156A1E86C71C0083EDBF /* FIRGitHubAuthProviderTests.m in Sources */, + DE9315761E86C71C0083EDBF /* FIRVerifyAssertionRequestTests.m in Sources */, + DE9315781E86C71C0083EDBF /* FIRVerifyCustomTokenRequestTests.m in Sources */, + DE93157C1E86C71C0083EDBF /* FIRVerifyPhoneNumberRequestTests.m in Sources */, + DE9315651E86C71C0083EDBF /* FIRFakeBackendRPCIssuer.m in Sources */, + DE9315591E86C71C0083EDBF /* FIRAuthBackendCreateAuthURITests.m in Sources */, + DE0E5BBB1EA7D92E00FAA825 /* FIRVerifyClientRequestTest.m in Sources */, + DE93156F1E86C71C0083EDBF /* FIRSendVerificationCodeResponseTests.m in Sources */, + DE93156C1E86C71C0083EDBF /* FIRResetPasswordRequestTests.m in Sources */, + DE93156D1E86C71C0083EDBF /* FIRResetPasswordResponseTests.m in Sources */, + DE9315611E86C71C0083EDBF /* FIRCreateAuthURIRequestTests.m in Sources */, + DE93156E1E86C71C0083EDBF /* FIRSendVerificationCodeRequestTests.m in Sources */, + DE93155D1E86C71C0083EDBF /* FIRAuthKeychainTests.m in Sources */, + DE93155C1E86C71C0083EDBF /* FIRAuthGlobalWorkQueueTests.m in Sources */, + DE9315631E86C71C0083EDBF /* FIRDeleteAccountRequestTests.m in Sources */, + DECE039B1E9ED01600164CA4 /* FIRPhoneAuthProviderTests.m in Sources */, + DE750DBE1EB3DD6800A75E47 /* FIRAuthAPNSTokenManagerTests.m in Sources */, + DE93157A1E86C71C0083EDBF /* FIRVerifyPasswordRequestTest.m in Sources */, + DE9315621E86C71C0083EDBF /* FIRCreateAuthURIResponseTests.m in Sources */, + DE93155A1E86C71C0083EDBF /* FIRAuthBackendRPCImplementationTests.m in Sources */, + DE93157D1E86C71C0083EDBF /* FIRVerifyPhoneNumberResponseTests.m in Sources */, + DE93157E1E86C71C0083EDBF /* OCMStubRecorder+FIRAuthUnitTests.m in Sources */, + DE9315771E86C71C0083EDBF /* FIRVerifyAssertionResponseTests.m in Sources */, + DE9315721E86C71C0083EDBF /* FIRSignUpNewUserRequestTests.m in Sources */, + DE9315671E86C71C0083EDBF /* FIRGetAccountInfoResponseTests.m in Sources */, + DE9315701E86C71C0083EDBF /* FIRSetAccountInfoRequestTests.m in Sources */, + DE0E5BBD1EA7D93100FAA825 /* FIRAuthAppCredentialTests.m in Sources */, + DE93155E1E86C71C0083EDBF /* FIRAuthSerialTaskQueueTests.m in Sources */, + DE9315581E86C71C0083EDBF /* FIRApp+FIRAuthUnitTests.m in Sources */, + DE9315711E86C71C0083EDBF /* FIRSetAccountInfoResponseTests.m in Sources */, + DE93155F1E86C71C0083EDBF /* FIRAuthTests.m in Sources */, + DE750DBD1EB3DD5B00A75E47 /* FIRAuthAPNSTokenTests.m in Sources */, + DE0E5BBE1EA7D93500FAA825 /* FIRAuthAppDelegateProxyTests.m in Sources */, + DE0E5BBC1EA7D92E00FAA825 /* FIRVerifyClientResponseTests.m in Sources */, + DE9315751E86C71C0083EDBF /* FIRUserTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DE9315A31E8738460083EDBF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE9315F41E8738E60083EDBF /* FIRMessagingClientTest.m in Sources */, + DE9315F51E8738E60083EDBF /* FIRMessagingCodedInputStreamTest.m in Sources */, + DE9315F71E8738E60083EDBF /* FIRMessagingContextManagerServiceTest.m in Sources */, + DE9315FD1E8738E60083EDBF /* FIRMessagingPubSubTest.m in Sources */, + DE9316011E8738E60083EDBF /* FIRMessagingSecureSocketTest.m in Sources */, + DE9315FB1E8738E60083EDBF /* FIRMessagingLinkHandlingTest.m in Sources */, + DE9315FC1E8738E60083EDBF /* FIRMessagingPendingTopicsListTest.m in Sources */, + DE9316001E8738E60083EDBF /* FIRMessagingRmqManagerTest.m in Sources */, + DE9315F91E8738E60083EDBF /* FIRMessagingFakeConnection.m in Sources */, + DE9316021E8738E60083EDBF /* FIRMessagingServiceTest.m in Sources */, + DE9315FE1E8738E60083EDBF /* FIRMessagingRegistrarTest.m in Sources */, + DE9316031E8738E60083EDBF /* FIRMessagingSyncMessageManagerTest.m in Sources */, + DE9315FF1E8738E60083EDBF /* FIRMessagingRemoteNotificationsProxyTest.m in Sources */, + DE9315F81E8738E60083EDBF /* FIRMessagingDataMessageManagerTest.m in Sources */, + DE9316051E8738E60083EDBF /* FIRMessagingTestNotificationUtilities.m in Sources */, + DE9315F61E8738E60083EDBF /* FIRMessagingConnectionTest.m in Sources */, + DE9316041E8738E60083EDBF /* FIRMessagingTest.m in Sources */, + DE9315FA1E8738E60083EDBF /* FIRMessagingFakeSocket.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEB139E21E73506A00AC236D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DEB61EC81E7C5DBB00C04B96 /* FIRViewController.m in Sources */, + DEB61ECB1E7C5DBB00C04B96 /* main.m in Sources */, + DEB61EC71E7C5DBB00C04B96 /* FIRAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEB13A0E1E73507E00AC236D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DEB13A301E73518B00AC236D /* FIRStorageUtilsTests.m in Sources */, + DEB13A2D1E73518B00AC236D /* FIRStorageTests.m in Sources */, + DEB13A281E73518B00AC236D /* FIRStorageGetMetadataTests.m in Sources */, + DEB13A2F1E73518B00AC236D /* FIRStorageUpdateMetadataTests.m in Sources */, + DEB13A271E73518B00AC236D /* FIRStorageDeleteTests.m in Sources */, + DEB13A2C1E73518B00AC236D /* FIRStorageTestHelpers.m in Sources */, + DEB13A291E73518B00AC236D /* FIRStorageMetadataTests.m in Sources */, + DEB13A2E1E73518B00AC236D /* FIRStorageTokenAuthorizerTests.m in Sources */, + DEB13A2B1E73518B00AC236D /* FIRStorageReferenceTests.m in Sources */, + DEB13A2A1E73518B00AC236D /* FIRStoragePathTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEE14D3D1E84464D006FA992 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DEE14D821E844677006FA992 /* FIRViewController.m in Sources */, + DEE14D851E844677006FA992 /* main.m in Sources */, + DEE14D811E844677006FA992 /* FIRAppDelegate.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DEE14D551E84464D006FA992 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DEE14D8E1E84468D006FA992 /* FIRAppAssociationRegistrationUnitTests.m in Sources */, + DEE14D8F1E84468D006FA992 /* FIRAppTest.m in Sources */, + DEE14D911E84468D006FA992 /* FIRConfigurationTest.m in Sources */, + DEE14D921E84468D006FA992 /* FIRLoggerTest.m in Sources */, + DEE14D931E84468D006FA992 /* FIROptionsTest.m in Sources */, + DEE14D901E84468D006FA992 /* FIRBundleUtilTest.m in Sources */, + DEE14D941E84468D006FA992 /* FIRTestCase.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 06121EC71EC399D40008D70E /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEB139E01E73506A00AC236D /* Storage_Example_iOS */; + targetProxy = 06121EC61EC399D40008D70E /* PBXContainerItemProxy */; + }; + 0624F3E71EC0ECFA00E5940D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE7B8D041E8EF077009EB6DF /* Database_Example_iOS */; + targetProxy = 0624F3E61EC0ECFA00E5940D /* PBXContainerItemProxy */; + }; + AFD563121EB140E100EA2233 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = AFD562E41EB13C6D00EA2233 /* Messaging_Example_iOS */; + targetProxy = AFD563111EB140E100EA2233 /* PBXContainerItemProxy */; + }; + D01853C91EDAD45C003A645C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D01853671EDAD084003A645C /* Auth_Example_macOS */; + targetProxy = D01853C81EDAD45C003A645C /* PBXContainerItemProxy */; + }; + D01853CB1EDAD636003A645C /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D01853881EDAD364003A645C /* Auth_Tests_macOS */; + targetProxy = D01853CA1EDAD636003A645C /* PBXContainerItemProxy */; + }; + D054E9C91EDA095300BE996B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0FE8A311ED9C86F003F6722 /* Database_Tests_macOS */; + targetProxy = D054E9C81EDA095300BE996B /* PBXContainerItemProxy */; + }; + D054E9CD1EDA097200BE996B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0EDB2DE1EDA06CB00B6C31B /* Storage_Tests_macOS */; + targetProxy = D054E9CC1EDA097200BE996B /* PBXContainerItemProxy */; + }; + D064E6C21ED9B369001956DF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D064E6951ED9B1BF001956DF /* Core_Example_macOS */; + targetProxy = D064E6C11ED9B369001956DF /* PBXContainerItemProxy */; + }; + D0EDB30A1EDA07A300B6C31B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0EDB2BC1EDA04F800B6C31B /* Storage_Example_macOS */; + targetProxy = D0EDB3091EDA07A300B6C31B /* PBXContainerItemProxy */; + }; + D0EDB30C1EDA07A600B6C31B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0EDB2BC1EDA04F800B6C31B /* Storage_Example_macOS */; + targetProxy = D0EDB30B1EDA07A600B6C31B /* PBXContainerItemProxy */; + }; + D0FE8A131ED9C349003F6722 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D064E6AA1ED9B31C001956DF /* Core_Tests_macOS */; + targetProxy = D0FE8A121ED9C349003F6722 /* PBXContainerItemProxy */; + }; + D0FE8A8F1ED9C885003F6722 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0FE8A1E1ED9C804003F6722 /* Database_Example_macOS */; + targetProxy = D0FE8A8E1ED9C885003F6722 /* PBXContainerItemProxy */; + }; + D0FE8A911ED9C9CD003F6722 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D0FE8A1E1ED9C804003F6722 /* Database_Example_macOS */; + targetProxy = D0FE8A901ED9C9CD003F6722 /* PBXContainerItemProxy */; + }; + DE3373981E73776F00881891 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEB13A0A1E73507E00AC236D /* Storage_Tests_iOS */; + targetProxy = DE3373971E73776F00881891 /* PBXContainerItemProxy */; + }; + DE6F01BA1E957157004AEE01 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE9315A61E8738460083EDBF /* Messaging_Tests_iOS */; + targetProxy = DE6F01B91E957157004AEE01 /* PBXContainerItemProxy */; + }; + DE7B8D1F1E8EF078009EB6DF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE7B8D041E8EF077009EB6DF /* Database_Example_iOS */; + targetProxy = DE7B8D1E1E8EF078009EB6DF /* PBXContainerItemProxy */; + }; + DE9314E01E86C6BE0083EDBF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE9314C51E86C6BD0083EDBF /* Auth_Example_iOS */; + targetProxy = DE9314DF1E86C6BE0083EDBF /* PBXContainerItemProxy */; + }; + DE9315871E86E9990083EDBF /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE9314DD1E86C6BE0083EDBF /* Auth_Tests_iOS */; + targetProxy = DE9315861E86E9990083EDBF /* PBXContainerItemProxy */; + }; + DEB13A261E73512500AC236D /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEB139E01E73506A00AC236D /* Storage_Example_iOS */; + targetProxy = DEB13A251E73512500AC236D /* PBXContainerItemProxy */; + }; + DEB5185A1E9008CB0089C938 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DE7B8D1C1E8EF078009EB6DF /* Database_Tests_iOS */; + targetProxy = DEB518591E9008CB0089C938 /* PBXContainerItemProxy */; + }; + DEE14D5B1E84464D006FA992 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEE14D401E84464D006FA992 /* Core_Example_iOS */; + targetProxy = DEE14D5A1E84464D006FA992 /* PBXContainerItemProxy */; + }; + DEE14E0B1E844FDC006FA992 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEE14D581E84464D006FA992 /* Core_Tests_iOS */; + targetProxy = DEE14E0A1E844FDC006FA992 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + D01853491EDACED4003A645C /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D018534A1EDACED4003A645C /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + D018534B1EDACED4003A645C /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D018534C1EDACED4003A645C /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + D018537B1EDAD0E6003A645C /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D018537C1EDAD0E6003A645C /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + D064E6A31ED9B1BF001956DF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D064E6A41ED9B1BF001956DF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + D0EDB2CF1EDA056A00B6C31B /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D0EDB2D01EDA056A00B6C31B /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + D0FE8A161ED9C6D2003F6722 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + D0FE8A171ED9C6D2003F6722 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + DE7B8D2C1E8EF202009EB6DF /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DE7B8D2D1E8EF202009EB6DF /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + DE7B8D2E1E8EF202009EB6DF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DE7B8D2F1E8EF202009EB6DF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + DE7B8D691E8EF202009EB6DF /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + DE7B8D6A1E8EF202009EB6DF /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + DE9314ED1E86C6FF0083EDBF /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DE9314EE1E86C6FF0083EDBF /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + DE9314EF1E86C6FF0083EDBF /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DE9314F01E86C6FF0083EDBF /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + DEB61EB91E7C5DBB00C04B96 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DEB61EBA1E7C5DBB00C04B96 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + DEB61EBB1E7C5DBB00C04B96 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DEB61EBC1E7C5DBB00C04B96 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + DEE14D681E844677006FA992 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DEE14D691E844677006FA992 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; + DEE14D6A1E844677006FA992 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DEE14D6B1E844677006FA992 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + /* Begin XCBuildConfiguration section */ 06121EC31EC399C50008D70E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3673564CCB64DE360C8CB97F /* Pods-Storage_IntegrationTests.debug.xcconfig */; + baseConfigurationReference = 1E31642E764D25811E378FE5 /* Pods-Storage_IntegrationTests_iOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-IntegrationTests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_iOS.app/Storage_Example_iOS"; + }; + name = Debug; + }; + 06121EC41EC399C50008D70E /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F02831CE3FC789F6F6A656AF /* Pods-Storage_IntegrationTests_iOS.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-IntegrationTests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_iOS.app/Storage_Example_iOS"; + }; + name = Release; + }; + 0624F3E91EC0ECFA00E5940D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DAEC0C3CA3C043F584C0D281 /* Pods-Database_IntegrationTests_iOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core\"", + "\"${PODS_ROOT}/../../Firebase/Database/Realtime\"", + "\"${PODS_ROOT}/../../Firebase/Database/third_party/SocketRocket\"", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Libraries\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api/Private\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api\"", + "\"${PODS_ROOT}/../../Firebase/Database/Snapshot\"", + "\"${PODS_ROOT}/../../Firebase/Database/Login\"", + "\"${PODS_ROOT}/../../Firebase/Database/Constants\"", + "\"${PODS_ROOT}/../../Firebase/Database\"", + "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", + "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_iOS.app/Database_Example_iOS"; + }; + name = Debug; + }; + 0624F3EA1EC0ECFA00E5940D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = A297C4C2BC1856144C88DF94 /* Pods-Database_IntegrationTests_iOS.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core\"", + "\"${PODS_ROOT}/../../Firebase/Database/Realtime\"", + "\"${PODS_ROOT}/../../Firebase/Database/third_party/SocketRocket\"", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Libraries\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api/Private\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api\"", + "\"${PODS_ROOT}/../../Firebase/Database/Snapshot\"", + "\"${PODS_ROOT}/../../Firebase/Database/Login\"", + "\"${PODS_ROOT}/../../Firebase/Database/Constants\"", + "\"${PODS_ROOT}/../../Firebase/Database\"", + "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", + "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_iOS.app/Database_Example_iOS"; + }; + name = Release; + }; + 6003F5BD195388D20070C39A /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + 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 = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 6003F5BE195388D20070C39A /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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 = 8.0; + MACOSX_DEPLOYMENT_TARGET = 10.10; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + AFD562F51EB13C6D00EA2233 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AC2ED7A06FF0EAA148CA8144 /* Pods-Messaging_Example_iOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_ENTITLEMENTS = Messaging/App/iOS/Messaging_Example.entitlements; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Messaging/App/iOS/Messaging-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-Example-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_BRIDGING_HEADER = "Messaging/Messaging_Example-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + }; + name = Debug; + }; + AFD562F61EB13C6D00EA2233 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB69974504A1071F15C41E70 /* Pods-Messaging_Example_iOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_ENTITLEMENTS = Messaging/App/iOS/Messaging_Example.entitlements; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Messaging/App/iOS/Messaging-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-Example-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Messaging/Messaging_Example-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 3.0; + }; + name = Release; + }; + D01853771EDAD084003A645C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D4E15AD159B5F9FD595AD761 /* Pods-Auth_Example_macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Auth/App/macOS/Auth-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D01853781EDAD084003A645C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C2F672645182329577757001 /* Pods-Auth_Example_macOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Auth/App/macOS/Auth-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + D01853C41EDAD364003A645C /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0555A4F3B37CB783D805569C /* Pods-Auth_Tests_macOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/Private\"", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/AuthProviders\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Auth/Tests/Tests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example_macOS.app/Contents/MacOS/Auth_Example_macOS"; + }; + name = Debug; + }; + D01853C51EDAD364003A645C /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AA63A277F8A24228C5E3C882 /* Pods-Auth_Tests_macOS.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/Private\"", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/AuthProviders\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Auth/Tests/Tests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example_macOS.app/Contents/MacOS/Auth_Example_macOS"; + }; + name = Release; + }; + D064E6A81ED9B1BF001956DF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B41089F21AD56BFCAFF09C89 /* Pods-Core_Example_macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Core/App/macOS/Core-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D064E6A91ED9B1BF001956DF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D71F5289CE296DAF099055B /* Pods-Core_Example_macOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Core/App/macOS/Core-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + D064E6BD1ED9B31C001956DF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 5D149A186F9ECAEA642BC70A /* Pods-Core_Tests_macOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Core/Tests/Tests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example_macOS.app/Contents/MacOS/Core_Example_macOS"; + }; + name = Debug; + }; + D064E6BE1ED9B31C001956DF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F57A7D2DD698EE8495DB047B /* Pods-Core_Tests_macOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Core/Tests/Tests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example_macOS.app/Contents/MacOS/Core_Example_macOS"; + }; + name = Release; + }; + D0EDB2CB1EDA04F800B6C31B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 151BA010E214D6892BB84638 /* Pods-Storage_Example_macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Storage/App/macOS/Storage-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D0EDB2CC1EDA04F800B6C31B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1D81C7B58B484ADBACBBD404 /* Pods-Storage_Example_macOS.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Storage/App/macOS/Storage-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Example-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + D0EDB2F41EDA06CB00B6C31B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E27502AAA61906D3F236AD2C /* Pods-Storage_Tests_macOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_macOS.app/Contents/MacOS/Storage_Example_macOS"; + WRAPPER_EXTENSION = xctest; + }; + name = Debug; + }; + D0EDB2F51EDA06CB00B6C31B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 55CF04372D55EE9115457D4B /* Pods-Storage_Tests_macOS.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + DEVELOPMENT_TEAM = ""; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Tests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_macOS.app/Contents/MacOS/Storage_Example_macOS"; + WRAPPER_EXTENSION = xctest; + }; + name = Release; + }; + D0EDB3051EDA06D500B6C31B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 93814BE83D93EE757314FA2D /* Pods-Storage_IntegrationTests_macOS.debug.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-IntegrationTests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_macOS.app/Contents/MacOS/Storage_Example_macOS"; + }; + name = Debug; + }; + D0EDB3061EDA06D500B6C31B /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CBB9C19A1D046D56AF6BD820 /* Pods-Storage_IntegrationTests_macOS.release.xcconfig */; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-IntegrationTests-macOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_macOS.app/Contents/MacOS/Storage_Example_macOS"; + }; + name = Release; + }; + D0FE8A101ED9C32C003F6722 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Debug; + }; + D0FE8A111ED9C32C003F6722 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + DEVELOPMENT_TEAM = ""; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = macosx; + }; + name = Release; + }; + D0FE8A2D1ED9C804003F6722 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B36A2A837EF9387CBF9FE7F6 /* Pods-Database_Example_macOS.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Database/App/macOS/Database-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.firebase.mobile.Storage-IntegrationTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example.app/Storage_Example"; + SDKROOT = macosx; }; name = Debug; }; - 06121EC41EC399C50008D70E /* Release */ = { + D0FE8A2E1ED9C804003F6722 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = CA86AD35456DA6130F7DE02C /* Pods-Storage_IntegrationTests.release.xcconfig */; + baseConfigurationReference = 862CC98282A6123508E8CA49 /* Pods-Database_Example_macOS.release.xcconfig */; buildSettings = { - BUNDLE_LOADER = "$(TEST_HOST)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CODE_SIGN_IDENTITY = ""; + COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", - ); - INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "$(SRCROOT)/Database/App/macOS/Database-Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.firebase.mobile.Storage-IntegrationTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example.app/Storage_Example"; + SDKROOT = macosx; }; name = Release; }; - 0624F3E91EC0ECFA00E5940D /* Debug */ = { + D0FE8A601ED9C86F003F6722 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EE077EBC5A738E61E06B5FA2 /* Pods-Database_IntegrationTests.debug.xcconfig */; + baseConfigurationReference = 0431E01853516524ED683CB1 /* Pods-Database_Tests_macOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", @@ -2717,27 +5072,28 @@ "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Tests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example.app/Database_Example"; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_macOS.app/Contents/MacOS/Database_Example_macOS"; }; name = Debug; }; - 0624F3EA1EC0ECFA00E5940D /* Release */ = { + D0FE8A611ED9C86F003F6722 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = BEEA177FFAAB9FA02F898C51 /* Pods-Database_IntegrationTests.release.xcconfig */; + baseConfigurationReference = AB624D103857665A41CAE8E6 /* Pods-Database_Tests_macOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", @@ -2756,151 +5112,101 @@ "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Tests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example.app/Database_Example"; - }; - name = Release; - }; - 6003F5BD195388D20070C39A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - 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 = 8.3; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 6003F5BE195388D20070C39A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - 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 = 8.3; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_macOS.app/Contents/MacOS/Database_Example_macOS"; }; name = Release; }; - AFD562F51EB13C6D00EA2233 /* Debug */ = { + D0FE8A8A1ED9C87B003F6722 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 884B87C50C7C950BC18E9091 /* Pods-Messaging_Example.debug.xcconfig */; + baseConfigurationReference = 6FAA689FDCBD3261300292D5 /* Pods-Database_IntegrationTests_macOS.debug.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CODE_SIGN_ENTITLEMENTS = Messaging/App/Messaging_Example.entitlements; DEBUG_INFORMATION_FORMAT = dwarf; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "Messaging/App/Messaging-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core\"", + "\"${PODS_ROOT}/../../Firebase/Database/Realtime\"", + "\"${PODS_ROOT}/../../Firebase/Database/third_party/SocketRocket\"", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Libraries\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api/Private\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api\"", + "\"${PODS_ROOT}/../../Firebase/Database/Snapshot\"", + "\"${PODS_ROOT}/../../Firebase/Database/Login\"", + "\"${PODS_ROOT}/../../Firebase/Database/Constants\"", + "\"${PODS_ROOT}/../../Firebase/Database\"", + "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", + "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.google.FirebaseMessagingSample.dev; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OBJC_BRIDGING_HEADER = "Messaging/Messaging_Example-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 3.0; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_macOS.app/Contents/MacOS/Database_Example_macOS"; }; name = Debug; }; - AFD562F61EB13C6D00EA2233 /* Release */ = { + D0FE8A8B1ED9C87B003F6722 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = A6903B88963F6FD1857889E6 /* Pods-Messaging_Example.release.xcconfig */; + baseConfigurationReference = 6B311CFB1407D62B89196FA6 /* Pods-Database_IntegrationTests_macOS.release.xcconfig */; buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CODE_SIGN_ENTITLEMENTS = Messaging/App/Messaging_Example.entitlements; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "Messaging/App/Messaging-Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + HEADER_SEARCH_PATHS = ( + "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities/Tuples\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core\"", + "\"${PODS_ROOT}/../../Firebase/Database/Realtime\"", + "\"${PODS_ROOT}/../../Firebase/Database/third_party/SocketRocket\"", + "\"${PODS_ROOT}/../../Firebase/Database/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Libraries\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/Utilities\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api/Private\"", + "\"${PODS_ROOT}/../../Firebase/Database/Api\"", + "\"${PODS_ROOT}/../../Firebase/Database/Snapshot\"", + "\"${PODS_ROOT}/../../Firebase/Database/Login\"", + "\"${PODS_ROOT}/../../Firebase/Database/Constants\"", + "\"${PODS_ROOT}/../../Firebase/Database\"", + "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", + "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", + "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", + ); + INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = com.google.FirebaseMessagingSample.dev; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-IntegrationTests-macOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OBJC_BRIDGING_HEADER = "Messaging/Messaging_Example-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 3.0; + SDKROOT = macosx; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_macOS.app/Contents/MacOS/Database_Example_macOS"; }; name = Release; }; DE33738B1E73773400881891 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - DEVELOPMENT_TEAM = EQHXZ8M8AV; + DEVELOPMENT_TEAM = ""; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -2908,14 +5214,14 @@ DE33738C1E73773400881891 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - DEVELOPMENT_TEAM = EQHXZ8M8AV; + DEVELOPMENT_TEAM = ""; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; DE7B8D241E8EF078009EB6DF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7727BC17692B98E2B7D0EA7A /* Pods-Database_Example.debug.xcconfig */; + baseConfigurationReference = 252CAA8955610722B3FDB809 /* Pods-Database_Example_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -2923,17 +5229,17 @@ CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Database/App/Database-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Database/App/iOS/Database-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; DE7B8D251E8EF078009EB6DF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EEA5C6257533CD27D37A14FC /* Pods-Database_Example.release.xcconfig */; + baseConfigurationReference = 33B9D617B528A586BBB22CE3 /* Pods-Database_Example_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -2942,17 +5248,17 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Database/App/Database-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Database/App/iOS/Database-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; DE7B8D261E8EF078009EB6DF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F0A9002767E1A9D63CEECFF6 /* Pods-Database_Tests.debug.xcconfig */; + baseConfigurationReference = 20453CB242D5D3A942B50354 /* Pods-Database_Tests_iOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -2978,22 +5284,22 @@ "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example.app/Database_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_iOS.app/Database_Example_iOS"; }; name = Debug; }; DE7B8D271E8EF078009EB6DF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 4A8B7AE7C053949F6BBBDD3E /* Pods-Database_Tests.release.xcconfig */; + baseConfigurationReference = E74998B8B0ABF367C66518FE /* Pods-Database_Tests_iOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -3020,22 +5326,22 @@ "\"${PODS_ROOT}/../../Firebase/Database/Persistence\"", "\"${PODS_ROOT}/../../Firebase/Database/FImmutableSortedDictionary/FImmutableSortedDictionary\"", "\"${PODS_ROOT}/../../Firebase/Database/Core/View\"", - "\"$(SRCROOT)/../Firebase/Core/Private\"", + "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Database/Tests/FirebaseTests-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Database-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example.app/Database_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Database_Example_iOS.app/Database_Example_iOS"; }; name = Release; }; DE9314E51E86C6BE0083EDBF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C45949C3AB12F54D27702387 /* Pods-Auth_Example.debug.xcconfig */; + baseConfigurationReference = 5AEA6E0678E8F5DFAAC04393 /* Pods-Auth_Example_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -3044,10 +5350,10 @@ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Auth/App/Auth-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Auth/App/iOS/Auth-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -3057,7 +5363,7 @@ }; DE9314E61E86C6BE0083EDBF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2F002D4E7FA7F07A830CCFDA /* Pods-Auth_Example.release.xcconfig */; + baseConfigurationReference = 3CFDED6919C5EB23FBEC360E /* Pods-Auth_Example_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -3067,10 +5373,10 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Auth/App/Auth-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Auth/App/iOS/Auth-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 3.0; @@ -3079,7 +5385,7 @@ }; DE9314E71E86C6BE0083EDBF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 18B5255FF5BEBF6F72C40F39 /* Pods-Auth_Tests.debug.xcconfig */; + baseConfigurationReference = D8324AEFAEEF81EEDE114E33 /* Pods-Auth_Tests_iOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -3087,8 +5393,8 @@ DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( - "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", "\"${PODS_ROOT}/../../Firebase/Auth/Source/Private\"", "\"${PODS_ROOT}/../../Firebase/Auth/Source/AuthProviders\"", "\"${PODS_ROOT}/../../Firebase/Core/Private\"", @@ -3097,15 +5403,15 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example.app/Auth_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example_iOS.app/Auth_Example_iOS"; }; name = Debug; }; DE9314E81E86C6BE0083EDBF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 60FCE4043D8FE42648646A7F /* Pods-Auth_Tests.release.xcconfig */; + baseConfigurationReference = DF22AB406738B8C54A49A248 /* Pods-Auth_Tests_iOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -3114,8 +5420,8 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; HEADER_SEARCH_PATHS = ( - "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", "$(inherited)", + "\"${PODS_ROOT}/../../Firebase/Auth/Source/RPCs\"", "\"${PODS_ROOT}/../../Firebase/Auth/Source/Private\"", "\"${PODS_ROOT}/../../Firebase/Auth/Source/AuthProviders\"", "\"${PODS_ROOT}/../../Firebase/Core/Private\"", @@ -3124,15 +5430,15 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Auth-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example.app/Auth_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Auth_Example_iOS.app/Auth_Example_iOS"; }; name = Release; }; DE9315B01E8738460083EDBF /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6E974DE29EBB9602E723757E /* Pods-Messaging_Tests.debug.xcconfig */; + baseConfigurationReference = AF6414F985B340F104ABE09C /* Pods-Messaging_Tests_iOS.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3155,15 +5461,15 @@ INFOPLIST_FILE = Messaging/Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Messaging_Example.app/Messaging_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Messaging_Example_iOS.app/Messaging_Example_iOS"; }; name = Debug; }; DE9315B11E8738460083EDBF /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6D2E4A9396D707C5DEF9B74B /* Pods-Messaging_Tests.release.xcconfig */; + baseConfigurationReference = F08B9FA857DB758D0925510E /* Pods-Messaging_Tests_iOS.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; @@ -3187,15 +5493,15 @@ INFOPLIST_FILE = Messaging/Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Messaging-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Messaging_Example.app/Messaging_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Messaging_Example_iOS.app/Messaging_Example_iOS"; }; name = Release; }; DEB13A061E73506A00AC236D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6A0FCB2A37144B3C05E519F6 /* Pods-Storage_Example.debug.xcconfig */; + baseConfigurationReference = A77589942C6AB46A7BFC24A3 /* Pods-Storage_Example_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; @@ -3206,9 +5512,9 @@ "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", "$(inherited)", ); - INFOPLIST_FILE = "$(SRCROOT)/Storage/App/Storage-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Storage/App/iOS/Storage-Info.plist"; MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -3216,7 +5522,7 @@ }; DEB13A071E73506A00AC236D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 6BAD1CF3DDEDDD76EC87052D /* Pods-Storage_Example.release.xcconfig */; + baseConfigurationReference = 6E7C47E104D6D59E31DE6BC7 /* Pods-Storage_Example_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; DEVELOPMENT_TEAM = ""; @@ -3227,9 +5533,9 @@ "\"${PODS_ROOT}/../../Firebase/Storage/Private\"", "$(inherited)", ); - INFOPLIST_FILE = "$(SRCROOT)/Storage/App/Storage-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Storage/App/iOS/Storage-Info.plist"; MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; WRAPPER_EXTENSION = app; }; @@ -3237,15 +5543,10 @@ }; DEB13A211E73507E00AC236D /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3E84D28D93B8196D6A483F15 /* Pods-Storage_Tests.debug.xcconfig */; + baseConfigurationReference = BFF6849AC334804952C8B985 /* Pods-Storage_Tests_iOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ""; GCC_PREPROCESSOR_DEFINITIONS = ( @@ -3258,24 +5559,19 @@ "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example.app/Storage_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_iOS.app/Storage_Example_iOS"; WRAPPER_EXTENSION = xctest; }; name = Debug; }; DEB13A221E73507E00AC236D /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = D58064F9C4DE303997B89D2E /* Pods-Storage_Tests.release.xcconfig */; + baseConfigurationReference = 659F5E0EE747A8831F95BB6A /* Pods-Storage_Tests_iOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(SDKROOT)/Developer/Library/Frameworks", - "$(inherited)", - "$(DEVELOPER_FRAMEWORKS_DIR)", - ); GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ""; HEADER_SEARCH_PATHS = ( @@ -3284,33 +5580,33 @@ "\"${PODS_ROOT}/../../Firebase/Core/Private\"", ); INFOPLIST_FILE = "Storage/Tests/Tests-Info.plist"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Storage-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example.app/Storage_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Storage_Example_iOS.app/Storage_Example_iOS"; WRAPPER_EXTENSION = xctest; }; name = Release; }; DEE14D601E84464D006FA992 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FF57915145DB00008E7C56A8 /* Pods-Core_Example.debug.xcconfig */; + baseConfigurationReference = 8D6342869F0562D44DB08B3E /* Pods-Core_Example_iOS.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Core/App/Core-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Core/App/iOS/Core-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; }; DEE14D611E84464D006FA992 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8F77C04C2E764FBB0F6C05C6 /* Pods-Core_Example.release.xcconfig */; + baseConfigurationReference = 9F0AFFA90A9C1A9D334B0564 /* Pods-Core_Example_iOS.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_ANALYZER_NONNULL = YES; @@ -3318,27 +5614,23 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; - INFOPLIST_FILE = "$(SRCROOT)/Core/App/Core-Info.plist"; + INFOPLIST_FILE = "$(SRCROOT)/Core/App/iOS/Core-Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Example-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; }; DEE14D621E84464D006FA992 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 8E32E359BE29C3100CF51FC4 /* Pods-Core_Tests.debug.xcconfig */; + baseConfigurationReference = 1EB1C884C0DD8B2A67F138F7 /* Pods-Core_Tests_iOS.debug.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/build/Debug-iphoneos/FirebaseCore", - ); HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/../../Firebase/Core/Private\"", @@ -3347,15 +5639,15 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example.app/Core_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example_iOS.app/Core_Example_iOS"; }; name = Debug; }; DEE14D631E84464D006FA992 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 0B1BDA534E1F49931795B5E6 /* Pods-Core_Tests.release.xcconfig */; + baseConfigurationReference = 250749E8701D9E197482958F /* Pods-Core_Tests_iOS.release.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; CLANG_ANALYZER_NONNULL = YES; @@ -3363,10 +5655,6 @@ COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = ""; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/build/Debug-iphoneos/FirebaseCore", - ); HEADER_SEARCH_PATHS = ( "$(inherited)", "\"${PODS_ROOT}/../../Firebase/Core/Private\"", @@ -3375,16 +5663,16 @@ IPHONEOS_DEPLOYMENT_TARGET = 10.2; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-ExampleTests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.google.Core-Tests-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example.app/Core_Example"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Core_Example_iOS.app/Core_Example_iOS"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 06121EC51EC399C50008D70E /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests" */ = { + 06121EC51EC399C50008D70E /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 06121EC31EC399C50008D70E /* Debug */, @@ -3393,7 +5681,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 0624F3E81EC0ECFA00E5940D /* Build configuration list for PBXNativeTarget "Database_IntegrationTests" */ = { + 0624F3E81EC0ECFA00E5940D /* Build configuration list for PBXNativeTarget "Database_IntegrationTests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( 0624F3E91EC0ECFA00E5940D /* Debug */, @@ -3411,7 +5699,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - AFD562F41EB13C6D00EA2233 /* Build configuration list for PBXNativeTarget "Messaging_Example" */ = { + AFD562F41EB13C6D00EA2233 /* Build configuration list for PBXNativeTarget "Messaging_Example_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( AFD562F51EB13C6D00EA2233 /* Debug */, @@ -3420,7 +5708,106 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE33738A1E73773400881891 /* Build configuration list for PBXAggregateTarget "AllUnitTests" */ = { + D01853761EDAD084003A645C /* Build configuration list for PBXNativeTarget "Auth_Example_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D01853771EDAD084003A645C /* Debug */, + D01853781EDAD084003A645C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D01853C31EDAD364003A645C /* Build configuration list for PBXNativeTarget "Auth_Tests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D01853C41EDAD364003A645C /* Debug */, + D01853C51EDAD364003A645C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D064E6A71ED9B1BF001956DF /* Build configuration list for PBXNativeTarget "Core_Example_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D064E6A81ED9B1BF001956DF /* Debug */, + D064E6A91ED9B1BF001956DF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D064E6BC1ED9B31C001956DF /* Build configuration list for PBXNativeTarget "Core_Tests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D064E6BD1ED9B31C001956DF /* Debug */, + D064E6BE1ED9B31C001956DF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0EDB2CA1EDA04F800B6C31B /* Build configuration list for PBXNativeTarget "Storage_Example_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0EDB2CB1EDA04F800B6C31B /* Debug */, + D0EDB2CC1EDA04F800B6C31B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0EDB2F31EDA06CB00B6C31B /* Build configuration list for PBXNativeTarget "Storage_Tests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0EDB2F41EDA06CB00B6C31B /* Debug */, + D0EDB2F51EDA06CB00B6C31B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0EDB3041EDA06D500B6C31B /* Build configuration list for PBXNativeTarget "Storage_IntegrationTests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0EDB3051EDA06D500B6C31B /* Debug */, + D0EDB3061EDA06D500B6C31B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0FE8A0F1ED9C32C003F6722 /* Build configuration list for PBXAggregateTarget "AllUnitTests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0FE8A101ED9C32C003F6722 /* Debug */, + D0FE8A111ED9C32C003F6722 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0FE8A2C1ED9C804003F6722 /* Build configuration list for PBXNativeTarget "Database_Example_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0FE8A2D1ED9C804003F6722 /* Debug */, + D0FE8A2E1ED9C804003F6722 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0FE8A5F1ED9C86F003F6722 /* Build configuration list for PBXNativeTarget "Database_Tests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0FE8A601ED9C86F003F6722 /* Debug */, + D0FE8A611ED9C86F003F6722 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0FE8A891ED9C87B003F6722 /* Build configuration list for PBXNativeTarget "Database_IntegrationTests_macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0FE8A8A1ED9C87B003F6722 /* Debug */, + D0FE8A8B1ED9C87B003F6722 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DE33738A1E73773400881891 /* Build configuration list for PBXAggregateTarget "AllUnitTests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE33738B1E73773400881891 /* Debug */, @@ -3429,7 +5816,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE7B8D281E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Example" */ = { + DE7B8D281E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Example_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE7B8D241E8EF078009EB6DF /* Debug */, @@ -3438,7 +5825,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE7B8D291E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Tests" */ = { + DE7B8D291E8EF078009EB6DF /* Build configuration list for PBXNativeTarget "Database_Tests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE7B8D261E8EF078009EB6DF /* Debug */, @@ -3447,7 +5834,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE9314E91E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Example" */ = { + DE9314E91E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Example_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE9314E51E86C6BE0083EDBF /* Debug */, @@ -3456,7 +5843,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE9314EA1E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Tests" */ = { + DE9314EA1E86C6BE0083EDBF /* Build configuration list for PBXNativeTarget "Auth_Tests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE9314E71E86C6BE0083EDBF /* Debug */, @@ -3465,7 +5852,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DE9315B31E8738460083EDBF /* Build configuration list for PBXNativeTarget "Messaging_Tests" */ = { + DE9315B31E8738460083EDBF /* Build configuration list for PBXNativeTarget "Messaging_Tests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DE9315B01E8738460083EDBF /* Debug */, @@ -3474,7 +5861,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DEB13A051E73506A00AC236D /* Build configuration list for PBXNativeTarget "Storage_Example" */ = { + DEB13A051E73506A00AC236D /* Build configuration list for PBXNativeTarget "Storage_Example_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DEB13A061E73506A00AC236D /* Debug */, @@ -3483,7 +5870,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DEB13A201E73507E00AC236D /* Build configuration list for PBXNativeTarget "Storage_Tests" */ = { + DEB13A201E73507E00AC236D /* Build configuration list for PBXNativeTarget "Storage_Tests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DEB13A211E73507E00AC236D /* Debug */, @@ -3492,7 +5879,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DEE14D641E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Example" */ = { + DEE14D641E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Example_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DEE14D601E84464D006FA992 /* Debug */, @@ -3501,7 +5888,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - DEE14D651E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Tests" */ = { + DEE14D651E84464D006FA992 /* Build configuration list for PBXNativeTarget "Core_Tests_iOS" */ = { isa = XCConfigurationList; buildConfigurations = ( DEE14D621E84464D006FA992 /* Debug */, diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests.xcscheme deleted file mode 100644 index f356606..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests.xcscheme +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_iOS.xcscheme new file mode 100644 index 0000000..7e2d255 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_iOS.xcscheme @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_macOS.xcscheme new file mode 100644 index 0000000..30c8949 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/AllUnitTests_macOS.xcscheme @@ -0,0 +1,185 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_iOS.xcscheme new file mode 100644 index 0000000..97fb53c --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_iOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_macOS.xcscheme new file mode 100644 index 0000000..8c1f1a0 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Example_macOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests.xcscheme deleted file mode 100644 index 28bc109..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_iOS.xcscheme new file mode 100644 index 0000000..4e4b6f1 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_macOS.xcscheme new file mode 100644 index 0000000..5fd2eb9 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Auth_Tests_macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_iOS.xcscheme new file mode 100644 index 0000000..3137cb2 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_iOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_macOS.xcscheme new file mode 100644 index 0000000..6ff644b --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Example_macOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests.xcscheme deleted file mode 100644 index 1c301e1..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_iOS.xcscheme new file mode 100644 index 0000000..70ec8ac --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_macOS.xcscheme new file mode 100644 index 0000000..613b2ed --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Core_Tests_macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_iOS.xcscheme new file mode 100644 index 0000000..aaacff6 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_iOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_macOS.xcscheme new file mode 100644 index 0000000..31b796c --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Example_macOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests.xcscheme deleted file mode 100644 index ab12465..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_iOS.xcscheme new file mode 100644 index 0000000..8f098c4 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_macOS.xcscheme new file mode 100644 index 0000000..8b64072 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_IntegrationTests_macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests.xcscheme deleted file mode 100644 index fbc84c6..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_iOS.xcscheme new file mode 100644 index 0000000..54cebd9 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_iOS.xcscheme @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_macOS.xcscheme new file mode 100644 index 0000000..c8f334c --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Database_Tests_macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example.xcscheme deleted file mode 100644 index 6e13a6f..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example.xcscheme +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example_iOS.xcscheme new file mode 100644 index 0000000..9e8ee48 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Example_iOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests.xcscheme deleted file mode 100644 index 768524f..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests_iOS.xcscheme new file mode 100644 index 0000000..39b0152 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Messaging_Tests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_iOS.xcscheme new file mode 100644 index 0000000..420ecd0 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_iOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_macOS.xcscheme new file mode 100644 index 0000000..05bc93e --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Example_macOS.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests.xcscheme deleted file mode 100644 index 752ef80..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_iOS.xcscheme new file mode 100644 index 0000000..4ce34d5 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_macOS.xcscheme new file mode 100644 index 0000000..910998a --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_IntegrationTests_macOS.xcscheme @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests.xcscheme deleted file mode 100644 index c3274cb..0000000 --- a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests.xcscheme +++ /dev/null @@ -1,56 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_iOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_iOS.xcscheme new file mode 100644 index 0000000..02178b2 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_iOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_macOS.xcscheme b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_macOS.xcscheme new file mode 100644 index 0000000..713c3b2 --- /dev/null +++ b/Example/Firebase.xcodeproj/xcshareddata/xcschemes/Storage_Tests_macOS.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Messaging/App/AppDelegate.swift b/Example/Messaging/App/AppDelegate.swift deleted file mode 100644 index ee092a9..0000000 --- a/Example/Messaging/App/AppDelegate.swift +++ /dev/null @@ -1,128 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit -import FirebaseDev -import UserNotifications - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - static let isWithinUnitTest: Bool = { - if let testClass = NSClassFromString("XCTestCase") { - return true - } else { - return false - } - }() - - static var hasPresentedInvalidServiceInfoPlistAlert = false - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { - guard !AppDelegate.isWithinUnitTest else { - // During unit tests, we don't want to initialize Firebase, since by default we want to able - // to run unit tests without requiring a non-dummy GoogleService-Info.plist file - return true - } - - guard SampleAppUtilities.appContainsRealServiceInfoPlist() else { - // We can't run because the GoogleService-Info.plist file is likely the dummy file which needs - // to be replaced with a real one, or somehow the file has been removed from the app bundle. - // See: https://github.com/firebase/firebase-ios-sdk/ - // We'll present a friendly alert when the app becomes active. - return true - } - - FirebaseApp.configure() - Messaging.messaging().delegate = self - Messaging.messaging().shouldEstablishDirectChannel = true - - NotificationsController.configure() - - if #available(iOS 8.0, *) { - // Always register for remote notifications. This will not show a prompt to the user, as by - // default it will provision silent notifications. We can use UNUserNotificationCenter to - // request authorization for user-facing notifications. - application.registerForRemoteNotifications() - } else { - // iOS 7 didn't differentiate between user-facing and other notifications, so we should just - // register for remote notifications - NotificationsController.shared.registerForUserFacingNotificationsFor(application) - } - - printFCMToken() - return true - } - - func printFCMToken() { - if let token = Messaging.messaging().fcmToken { - print("FCM Token: \(token)") - } else { - print("FCM Token: nil") - } - } - - func application(_ application: UIApplication, - didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { - print("APNS Token: \(deviceToken.hexByteString)") - NotificationCenter.default.post(name: APNSTokenReceivedNotification, object: nil) - if #available(iOS 8.0, *) { - } else { - // On iOS 7, receiving a device token also means our user notifications were granted, so fire - // the notification to update our user notifications UI - NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) - } - } - - func application(_ application: UIApplication, - didRegister notificationSettings: UIUserNotificationSettings) { - NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) - } - - func applicationDidBecomeActive(_ application: UIApplication) { - // If the app didn't start property due to an invalid GoogleService-Info.plist file, show an - // alert to the developer. - if !SampleAppUtilities.appContainsRealServiceInfoPlist() && - !AppDelegate.hasPresentedInvalidServiceInfoPlistAlert { - if let vc = window?.rootViewController { - SampleAppUtilities.presentAlertForInvalidServiceInfoPlistFrom(vc) - AppDelegate.hasPresentedInvalidServiceInfoPlistAlert = true - } - } - } -} - -extension AppDelegate: MessagingDelegate { - func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { - printFCMToken() - } - - // Direct channel data messages are delivered here, on iOS 10.0+. - // The `shouldEstablishDirectChannel` property should be be set to |true| before data messages can - // arrive. - func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) { - // Convert to pretty-print JSON - guard let data = - try? JSONSerialization.data(withJSONObject: remoteMessage.appData, options: .prettyPrinted), - let prettyPrinted = String(data: data, encoding: .utf8) else { - return - } - print("Received direct channel message:\n\(prettyPrinted)") - } -} - diff --git a/Example/Messaging/App/Base.lproj/LaunchScreen.storyboard b/Example/Messaging/App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index fdf3f97..0000000 --- a/Example/Messaging/App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Messaging/App/Base.lproj/Main.storyboard b/Example/Messaging/App/Base.lproj/Main.storyboard deleted file mode 100644 index 6df1a82..0000000 --- a/Example/Messaging/App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Messaging/App/Data+MessagingExtensions.swift b/Example/Messaging/App/Data+MessagingExtensions.swift deleted file mode 100644 index 99ded25..0000000 --- a/Example/Messaging/App/Data+MessagingExtensions.swift +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Foundation - -extension Data { - // Print Data as a string of bytes in hex, such as the common representation of APNs device tokens - // See: http://stackoverflow.com/a/40031342/9849 - var hexByteString: String { - return self.map { String(format: "%02.2hhx", $0) }.joined() - } -} diff --git a/Example/Messaging/App/Environment.swift b/Example/Messaging/App/Environment.swift deleted file mode 100644 index 5219c64..0000000 --- a/Example/Messaging/App/Environment.swift +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import Foundation - -struct Environment { - static let isSimulator: Bool = { - var isSim = false - #if arch(i386) || arch(x86_64) - isSim = true - #endif - - return isSim - }() -} diff --git a/Example/Messaging/App/Messaging-Info.plist b/Example/Messaging/App/Messaging-Info.plist deleted file mode 100644 index e42f39d..0000000 --- a/Example/Messaging/App/Messaging-Info.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UIBackgroundModes - - remote-notification - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/Messaging/App/MessagingViewController.swift b/Example/Messaging/App/MessagingViewController.swift deleted file mode 100644 index 00ed3ff..0000000 --- a/Example/Messaging/App/MessagingViewController.swift +++ /dev/null @@ -1,332 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit - -import FirebaseDev - -enum Row: String { - case apnsToken = "apnsToken" - case apnsStatus = "apnsStatus" - case requestAPNSPermissions = "requestAPNSPermissions" - case fcmToken = "fcmToken" -} - -enum PermissionsButtonTitle: String { - case requestPermissions = "Request User Notifications" - case noAPNS = "Cannot Request Permissions (No APNs)" - case alreadyRequested = "Already Requested Permissions" - case simulator = "Cannot Request Permissions (Simulator)" -} - -class MessagingViewController: UIViewController { - - let tableView: UITableView - - var sections = [[Row]]() - var sectionHeaderTitles = [String?]() - - var allowedNotificationTypes: [NotificationsControllerAllowedNotificationType]? - - // Cached rows by Row type. Since this is largely a fixed table view, we'll - // keep track of our created cells and UI, rather than have all the logic - - required init?(coder aDecoder: NSCoder) { - tableView = UITableView(frame: CGRect.zero, style: .grouped) - tableView.rowHeight = UITableViewAutomaticDimension - tableView.estimatedRowHeight = 44 - // Allow UI Controls within the table to be immediately responsive - tableView.delaysContentTouches = false - super.init(coder: aDecoder) - tableView.dataSource = self - tableView.delegate = self - } - - override func loadView() { - super.loadView() - view = UIView(frame: CGRect.zero) - view.addSubview(self.tableView) - // Ensure that the tableView always is the size of the view - tableView.autoresizingMask = [.flexibleWidth, .flexibleHeight] - } - - override func viewDidLoad() { - super.viewDidLoad() - let center = NotificationCenter.default - center.addObserver(self, - selector: #selector(onAPNSTokenReceived) , - name: APNSTokenReceivedNotification, - object: nil) - center.addObserver(self, - selector: #selector(onUserNotificationSettingsChanged), - name: UserNotificationsChangedNotification, - object: nil) - center.addObserver(self, - selector: #selector(onFCMTokenRefreshed), - name: Notification.Name.MessagingRegistrationTokenRefreshed, - object: nil) - updateAllowedNotificationTypes { - self.resetTableContents() - self.tableView.reloadData() - } - } - - func onAPNSTokenReceived() { - // Reload the appropriate cells - updateAllowedNotificationTypes { - if let tokenPath = self.indexPathFor(.apnsToken), - let statusPath = self.indexPathFor(.apnsStatus), - let requestPath = self.indexPathFor(.requestAPNSPermissions) { - self.updateIndexPaths(indexPaths: [tokenPath, statusPath, requestPath]) - } - } - } - - func onFCMTokenRefreshed() { - if let indexPath = indexPathFor(.fcmToken) { - updateIndexPaths(indexPaths: [indexPath]) - } - } - - func onUserNotificationSettingsChanged() { - updateAllowedNotificationTypes { - if let statusPath = self.indexPathFor(.apnsStatus), - let requestPath = self.indexPathFor(.requestAPNSPermissions) { - self.updateIndexPaths(indexPaths: [statusPath, requestPath]) - } - } - } - - private func updateIndexPaths(indexPaths: [IndexPath]) { - tableView.beginUpdates() - tableView.reloadRows(at: indexPaths, with: .none) - tableView.endUpdates() - } - - fileprivate func updateAllowedNotificationTypes(_ completion: (() -> Void)?) { - NotificationsController.shared.getAllowedNotificationTypes { (types) in - self.allowedNotificationTypes = types - self.updateRequestAPNSButton() - completion?() - } - } - - fileprivate func updateRequestAPNSButton() { - guard !Environment.isSimulator else { - requestPermissionsButton.isEnabled = false - requestPermissionsButton.setTitle(PermissionsButtonTitle.simulator.rawValue, for: .normal) - return - } - guard let allowedTypes = allowedNotificationTypes else { - requestPermissionsButton.isEnabled = false - requestPermissionsButton.setTitle(PermissionsButtonTitle.noAPNS.rawValue, for: .normal) - return - } - - requestPermissionsButton.isEnabled = - (allowedTypes.count == 1 && allowedTypes.first! == .silent) - - let title: PermissionsButtonTitle = - (requestPermissionsButton.isEnabled ? .requestPermissions : .alreadyRequested) - requestPermissionsButton.setTitle(title.rawValue, for: .normal) - } - - // MARK: UI (Cells and Buttons) Defined as lazy properties - lazy var apnsTableCell: UITableViewCell = { - let cell = UITableViewCell(style: .subtitle, reuseIdentifier: Row.apnsToken.rawValue) - cell.textLabel?.numberOfLines = 0 - cell.textLabel?.lineBreakMode = .byWordWrapping - return cell - }() - - lazy var apnsStatusTableCell: UITableViewCell = { - let cell = UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: Row.apnsStatus.rawValue) - cell.textLabel?.text = "Allowed:" - cell.detailTextLabel?.numberOfLines = 0 - cell.detailTextLabel?.lineBreakMode = .byWordWrapping - return cell - }() - - lazy var requestPermissionsButton: UIButton = { - let button = UIButton(type: .system) - button.setTitle(PermissionsButtonTitle.requestPermissions.rawValue, for: .normal) - button.setTitleColor(UIColor.gray, for: .highlighted) - button.setTitleColor(UIColor.gray, for: .disabled) - button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .body) - button.addTarget(self, - action: #selector(onRequestUserNotificationsButtonTapped), - for: .touchUpInside) - return button - }() - - lazy var apnsRequestPermissionsTableCell: UITableViewCell = { - let cell = UITableViewCell(style: .default, - reuseIdentifier: Row.requestAPNSPermissions.rawValue) - cell.selectionStyle = .none - cell.contentView.addSubview(self.requestPermissionsButton) - self.requestPermissionsButton.frame = cell.contentView.bounds - self.requestPermissionsButton.autoresizingMask = [.flexibleWidth, .flexibleHeight] - return cell - }() - - lazy var fcmTokenTableCell: UITableViewCell = { - let cell = UITableViewCell(style: .subtitle, reuseIdentifier: Row.fcmToken.rawValue) - cell.textLabel?.numberOfLines = 0 - cell.textLabel?.lineBreakMode = .byCharWrapping - return cell - }() -} - -// MARK: - Configuring the table view and cells with information -extension MessagingViewController { - func resetTableContents() { - sections.removeAll() - sectionHeaderTitles.removeAll() - - // APNS - let apnsSection: [Row] = [.apnsToken, .apnsStatus, .requestAPNSPermissions] - sections.append(apnsSection) - sectionHeaderTitles.append("APNs") - - // FCM - let fcmSection: [Row] = [.fcmToken] - sections.append(fcmSection) - sectionHeaderTitles.append("FCM Token") - - } - - func indexPathFor(_ rowId: Row) -> IndexPath? { - var sectionIndex = 0 - for section in sections { - var rowIndex = 0 - for row in section { - if row == rowId { - return IndexPath(row: rowIndex, section: sectionIndex) - } - rowIndex += 1 - } - sectionIndex += 1 - } - return nil - } - - func configureCell(_ cell: UITableViewCell, withAPNSToken apnsToken: Data?) { - guard !Environment.isSimulator else { - cell.textLabel?.text = "APNs notifications are not supported in the simulator." - cell.detailTextLabel?.text = nil - return - } - if let apnsToken = apnsToken { - cell.textLabel?.text = apnsToken.hexByteString - cell.detailTextLabel?.text = "Tap to Share" - } else { - cell.textLabel?.text = "None" - cell.detailTextLabel?.text = nil - } - } - - func configureCellWithAPNSStatus(_ cell: UITableViewCell) { - if let allowedNotificationTypes = allowedNotificationTypes { - let displayableTypes: [String] = allowedNotificationTypes.map { return $0.rawValue } - cell.detailTextLabel?.text = displayableTypes.joined(separator: ", ") - } else { - cell.detailTextLabel?.text = "Retrieving..." - } - } - - func configureCell(_ cell: UITableViewCell, withFCMToken fcmToken: String?) { - if let fcmToken = fcmToken { - cell.textLabel?.text = fcmToken - cell.detailTextLabel?.text = "Tap to Share" - } else { - cell.textLabel?.text = "None" - cell.detailTextLabel?.text = nil - } - } -} - -// MARK: - UITableViewDataSource -extension MessagingViewController: UITableViewDataSource { - func numberOfSections(in tableView: UITableView) -> Int { - return sections.count - } - - public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return sections[section].count - } - - public func tableView(_ tableView: UITableView, - cellForRowAt indexPath: IndexPath) -> UITableViewCell { - let row = sections[indexPath.section][indexPath.row] - - let cell: UITableViewCell - switch row { - case .apnsToken: - cell = apnsTableCell - configureCell(cell, withAPNSToken: Messaging.messaging().apnsToken) - case .apnsStatus: - cell = apnsStatusTableCell - configureCellWithAPNSStatus(cell) - case .requestAPNSPermissions: - cell = apnsRequestPermissionsTableCell - case .fcmToken: - cell = fcmTokenTableCell - configureCell(cell, withFCMToken: Messaging.messaging().fcmToken) - } - return cell - } - - func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { - return sectionHeaderTitles[section] - } -} - -// MARK: - UITableViewDelegate -extension MessagingViewController: UITableViewDelegate { - func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { - tableView.deselectRow(at: indexPath, animated: true) - - let row = sections[indexPath.section][indexPath.row] - switch row { - case .apnsToken: - if let apnsToken = Messaging.messaging().apnsToken { - showActivityViewControllerFor(sharedItem: apnsToken.hexByteString) - } - case .fcmToken: - if let fcmToken = Messaging.messaging().fcmToken { - showActivityViewControllerFor(sharedItem: fcmToken) - } - default: break - } - } -} - -// MARK: - UI Controls -extension MessagingViewController { - func onRequestUserNotificationsButtonTapped(sender: UIButton) { - NotificationsController.shared.registerForUserFacingNotificationsFor(UIApplication.shared) - } -} - -// MARK: - Activity View Controller -extension MessagingViewController { - func showActivityViewControllerFor(sharedItem: Any) { - let activityViewController = UIActivityViewController(activityItems: [sharedItem], - applicationActivities: nil) - present(activityViewController, animated: true, completion: nil) - } -} - diff --git a/Example/Messaging/App/Messaging_Example.entitlements b/Example/Messaging/App/Messaging_Example.entitlements deleted file mode 100644 index 903def2..0000000 --- a/Example/Messaging/App/Messaging_Example.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - - aps-environment - development - - diff --git a/Example/Messaging/App/NotificationsController.swift b/Example/Messaging/App/NotificationsController.swift deleted file mode 100644 index 726d980..0000000 --- a/Example/Messaging/App/NotificationsController.swift +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import UIKit -import UserNotifications - -import FirebaseDev - -enum NotificationsControllerAllowedNotificationType: String { - case none = "None" - case silent = "Silent Updates" - case alert = "Alerts" - case badge = "Badges" - case sound = "Sounds" -} - -let APNSTokenReceivedNotification: Notification.Name - = Notification.Name(rawValue: "APNSTokenReceivedNotification") -let UserNotificationsChangedNotification: Notification.Name - = Notification.Name(rawValue: "UserNotificationsChangedNotification") - -class NotificationsController: NSObject { - - static let shared: NotificationsController = { - let instance = NotificationsController() - return instance - }() - - class func configure() { - let sharedController = NotificationsController.shared - // Always become the delegate of UNUserNotificationCenter, even before we've requested user - // permissions - if #available(iOS 10.0, *) { - UNUserNotificationCenter.current().delegate = sharedController - } - } - - func registerForUserFacingNotificationsFor(_ application: UIApplication) { - if #available(iOS 10.0, *) { - UNUserNotificationCenter.current() - .requestAuthorization(options: [.alert, .badge, .sound], - completionHandler: { (granted, error) in - NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) - }) - } else if #available(iOS 8.0, *) { - let userNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], - categories: []) - application.registerUserNotificationSettings(userNotificationSettings) - - } else { - application.registerForRemoteNotifications(matching: [.alert, .badge, .sound]) - } - } - - func getAllowedNotificationTypes(_ completion: - @escaping (_ allowedTypes: [NotificationsControllerAllowedNotificationType]) -> Void) { - - guard Messaging.messaging().apnsToken != nil else { - completion([.none]) - return - } - - var types: [NotificationsControllerAllowedNotificationType] = [.silent] - if #available(iOS 10.0, *) { - UNUserNotificationCenter.current().getNotificationSettings(completionHandler: { (settings) in - if settings.alertSetting == .enabled { - types.append(.alert) - } - if settings.badgeSetting == .enabled { - types.append(.badge) - } - if settings.soundSetting == .enabled { - types.append(.sound) - } - DispatchQueue.main.async { - completion(types) - } - }) - } else if #available(iOS 8.0, *) { - if let userNotificationSettings = UIApplication.shared.currentUserNotificationSettings { - if userNotificationSettings.types.contains(.alert) { - types.append(.alert) - } - if userNotificationSettings.types.contains(.badge) { - types.append(.badge) - } - if userNotificationSettings.types.contains(.sound) { - types.append(.sound) - } - } - completion(types) - } else { - let enabledTypes = UIApplication.shared.enabledRemoteNotificationTypes() - if enabledTypes.contains(.alert) { - types.append(.alert) - } - if enabledTypes.contains(.badge) { - types.append(.badge) - } - if enabledTypes.contains(.sound) { - types.append(.sound) - } - completion(types) - } - } -} - -// MARK: - UNUserNotificationCenterDelegate -@available(iOS 10.0, *) -extension NotificationsController: UNUserNotificationCenterDelegate { - - func userNotificationCenter(_ center: UNUserNotificationCenter, - willPresent notification: UNNotification, - withCompletionHandler completionHandler: - @escaping (UNNotificationPresentationOptions) -> Void) { - // Always show the incoming notification, even if the app is in foreground - completionHandler([.alert, .badge, .sound]) - } -} diff --git a/Example/Messaging/App/iOS/AppDelegate.swift b/Example/Messaging/App/iOS/AppDelegate.swift new file mode 100644 index 0000000..ee092a9 --- /dev/null +++ b/Example/Messaging/App/iOS/AppDelegate.swift @@ -0,0 +1,128 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIKit +import FirebaseDev +import UserNotifications + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + var window: UIWindow? + + static let isWithinUnitTest: Bool = { + if let testClass = NSClassFromString("XCTestCase") { + return true + } else { + return false + } + }() + + static var hasPresentedInvalidServiceInfoPlistAlert = false + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + guard !AppDelegate.isWithinUnitTest else { + // During unit tests, we don't want to initialize Firebase, since by default we want to able + // to run unit tests without requiring a non-dummy GoogleService-Info.plist file + return true + } + + guard SampleAppUtilities.appContainsRealServiceInfoPlist() else { + // We can't run because the GoogleService-Info.plist file is likely the dummy file which needs + // to be replaced with a real one, or somehow the file has been removed from the app bundle. + // See: https://github.com/firebase/firebase-ios-sdk/ + // We'll present a friendly alert when the app becomes active. + return true + } + + FirebaseApp.configure() + Messaging.messaging().delegate = self + Messaging.messaging().shouldEstablishDirectChannel = true + + NotificationsController.configure() + + if #available(iOS 8.0, *) { + // Always register for remote notifications. This will not show a prompt to the user, as by + // default it will provision silent notifications. We can use UNUserNotificationCenter to + // request authorization for user-facing notifications. + application.registerForRemoteNotifications() + } else { + // iOS 7 didn't differentiate between user-facing and other notifications, so we should just + // register for remote notifications + NotificationsController.shared.registerForUserFacingNotificationsFor(application) + } + + printFCMToken() + return true + } + + func printFCMToken() { + if let token = Messaging.messaging().fcmToken { + print("FCM Token: \(token)") + } else { + print("FCM Token: nil") + } + } + + func application(_ application: UIApplication, + didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { + print("APNS Token: \(deviceToken.hexByteString)") + NotificationCenter.default.post(name: APNSTokenReceivedNotification, object: nil) + if #available(iOS 8.0, *) { + } else { + // On iOS 7, receiving a device token also means our user notifications were granted, so fire + // the notification to update our user notifications UI + NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) + } + } + + func application(_ application: UIApplication, + didRegister notificationSettings: UIUserNotificationSettings) { + NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) + } + + func applicationDidBecomeActive(_ application: UIApplication) { + // If the app didn't start property due to an invalid GoogleService-Info.plist file, show an + // alert to the developer. + if !SampleAppUtilities.appContainsRealServiceInfoPlist() && + !AppDelegate.hasPresentedInvalidServiceInfoPlistAlert { + if let vc = window?.rootViewController { + SampleAppUtilities.presentAlertForInvalidServiceInfoPlistFrom(vc) + AppDelegate.hasPresentedInvalidServiceInfoPlistAlert = true + } + } + } +} + +extension AppDelegate: MessagingDelegate { + func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { + printFCMToken() + } + + // Direct channel data messages are delivered here, on iOS 10.0+. + // The `shouldEstablishDirectChannel` property should be be set to |true| before data messages can + // arrive. + func messaging(_ messaging: Messaging, didReceive remoteMessage: MessagingRemoteMessage) { + // Convert to pretty-print JSON + guard let data = + try? JSONSerialization.data(withJSONObject: remoteMessage.appData, options: .prettyPrinted), + let prettyPrinted = String(data: data, encoding: .utf8) else { + return + } + print("Received direct channel message:\n\(prettyPrinted)") + } +} + diff --git a/Example/Messaging/App/iOS/Base.lproj/LaunchScreen.storyboard b/Example/Messaging/App/iOS/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..fdf3f97 --- /dev/null +++ b/Example/Messaging/App/iOS/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Messaging/App/iOS/Base.lproj/Main.storyboard b/Example/Messaging/App/iOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..6df1a82 --- /dev/null +++ b/Example/Messaging/App/iOS/Base.lproj/Main.storyboard @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Messaging/App/iOS/Data+MessagingExtensions.swift b/Example/Messaging/App/iOS/Data+MessagingExtensions.swift new file mode 100644 index 0000000..99ded25 --- /dev/null +++ b/Example/Messaging/App/iOS/Data+MessagingExtensions.swift @@ -0,0 +1,25 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Foundation + +extension Data { + // Print Data as a string of bytes in hex, such as the common representation of APNs device tokens + // See: http://stackoverflow.com/a/40031342/9849 + var hexByteString: String { + return self.map { String(format: "%02.2hhx", $0) }.joined() + } +} diff --git a/Example/Messaging/App/iOS/Environment.swift b/Example/Messaging/App/iOS/Environment.swift new file mode 100644 index 0000000..5219c64 --- /dev/null +++ b/Example/Messaging/App/iOS/Environment.swift @@ -0,0 +1,28 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import Foundation + +struct Environment { + static let isSimulator: Bool = { + var isSim = false + #if arch(i386) || arch(x86_64) + isSim = true + #endif + + return isSim + }() +} diff --git a/Example/Messaging/App/iOS/Messaging-Info.plist b/Example/Messaging/App/iOS/Messaging-Info.plist new file mode 100644 index 0000000..e42f39d --- /dev/null +++ b/Example/Messaging/App/iOS/Messaging-Info.plist @@ -0,0 +1,53 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIBackgroundModes + + remote-notification + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Messaging/App/iOS/MessagingViewController.swift b/Example/Messaging/App/iOS/MessagingViewController.swift new file mode 100644 index 0000000..00ed3ff --- /dev/null +++ b/Example/Messaging/App/iOS/MessagingViewController.swift @@ -0,0 +1,332 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIKit + +import FirebaseDev + +enum Row: String { + case apnsToken = "apnsToken" + case apnsStatus = "apnsStatus" + case requestAPNSPermissions = "requestAPNSPermissions" + case fcmToken = "fcmToken" +} + +enum PermissionsButtonTitle: String { + case requestPermissions = "Request User Notifications" + case noAPNS = "Cannot Request Permissions (No APNs)" + case alreadyRequested = "Already Requested Permissions" + case simulator = "Cannot Request Permissions (Simulator)" +} + +class MessagingViewController: UIViewController { + + let tableView: UITableView + + var sections = [[Row]]() + var sectionHeaderTitles = [String?]() + + var allowedNotificationTypes: [NotificationsControllerAllowedNotificationType]? + + // Cached rows by Row type. Since this is largely a fixed table view, we'll + // keep track of our created cells and UI, rather than have all the logic + + required init?(coder aDecoder: NSCoder) { + tableView = UITableView(frame: CGRect.zero, style: .grouped) + tableView.rowHeight = UITableViewAutomaticDimension + tableView.estimatedRowHeight = 44 + // Allow UI Controls within the table to be immediately responsive + tableView.delaysContentTouches = false + super.init(coder: aDecoder) + tableView.dataSource = self + tableView.delegate = self + } + + override func loadView() { + super.loadView() + view = UIView(frame: CGRect.zero) + view.addSubview(self.tableView) + // Ensure that the tableView always is the size of the view + tableView.autoresizingMask = [.flexibleWidth, .flexibleHeight] + } + + override func viewDidLoad() { + super.viewDidLoad() + let center = NotificationCenter.default + center.addObserver(self, + selector: #selector(onAPNSTokenReceived) , + name: APNSTokenReceivedNotification, + object: nil) + center.addObserver(self, + selector: #selector(onUserNotificationSettingsChanged), + name: UserNotificationsChangedNotification, + object: nil) + center.addObserver(self, + selector: #selector(onFCMTokenRefreshed), + name: Notification.Name.MessagingRegistrationTokenRefreshed, + object: nil) + updateAllowedNotificationTypes { + self.resetTableContents() + self.tableView.reloadData() + } + } + + func onAPNSTokenReceived() { + // Reload the appropriate cells + updateAllowedNotificationTypes { + if let tokenPath = self.indexPathFor(.apnsToken), + let statusPath = self.indexPathFor(.apnsStatus), + let requestPath = self.indexPathFor(.requestAPNSPermissions) { + self.updateIndexPaths(indexPaths: [tokenPath, statusPath, requestPath]) + } + } + } + + func onFCMTokenRefreshed() { + if let indexPath = indexPathFor(.fcmToken) { + updateIndexPaths(indexPaths: [indexPath]) + } + } + + func onUserNotificationSettingsChanged() { + updateAllowedNotificationTypes { + if let statusPath = self.indexPathFor(.apnsStatus), + let requestPath = self.indexPathFor(.requestAPNSPermissions) { + self.updateIndexPaths(indexPaths: [statusPath, requestPath]) + } + } + } + + private func updateIndexPaths(indexPaths: [IndexPath]) { + tableView.beginUpdates() + tableView.reloadRows(at: indexPaths, with: .none) + tableView.endUpdates() + } + + fileprivate func updateAllowedNotificationTypes(_ completion: (() -> Void)?) { + NotificationsController.shared.getAllowedNotificationTypes { (types) in + self.allowedNotificationTypes = types + self.updateRequestAPNSButton() + completion?() + } + } + + fileprivate func updateRequestAPNSButton() { + guard !Environment.isSimulator else { + requestPermissionsButton.isEnabled = false + requestPermissionsButton.setTitle(PermissionsButtonTitle.simulator.rawValue, for: .normal) + return + } + guard let allowedTypes = allowedNotificationTypes else { + requestPermissionsButton.isEnabled = false + requestPermissionsButton.setTitle(PermissionsButtonTitle.noAPNS.rawValue, for: .normal) + return + } + + requestPermissionsButton.isEnabled = + (allowedTypes.count == 1 && allowedTypes.first! == .silent) + + let title: PermissionsButtonTitle = + (requestPermissionsButton.isEnabled ? .requestPermissions : .alreadyRequested) + requestPermissionsButton.setTitle(title.rawValue, for: .normal) + } + + // MARK: UI (Cells and Buttons) Defined as lazy properties + lazy var apnsTableCell: UITableViewCell = { + let cell = UITableViewCell(style: .subtitle, reuseIdentifier: Row.apnsToken.rawValue) + cell.textLabel?.numberOfLines = 0 + cell.textLabel?.lineBreakMode = .byWordWrapping + return cell + }() + + lazy var apnsStatusTableCell: UITableViewCell = { + let cell = UITableViewCell(style: UITableViewCellStyle.value1, reuseIdentifier: Row.apnsStatus.rawValue) + cell.textLabel?.text = "Allowed:" + cell.detailTextLabel?.numberOfLines = 0 + cell.detailTextLabel?.lineBreakMode = .byWordWrapping + return cell + }() + + lazy var requestPermissionsButton: UIButton = { + let button = UIButton(type: .system) + button.setTitle(PermissionsButtonTitle.requestPermissions.rawValue, for: .normal) + button.setTitleColor(UIColor.gray, for: .highlighted) + button.setTitleColor(UIColor.gray, for: .disabled) + button.titleLabel?.font = UIFont.preferredFont(forTextStyle: .body) + button.addTarget(self, + action: #selector(onRequestUserNotificationsButtonTapped), + for: .touchUpInside) + return button + }() + + lazy var apnsRequestPermissionsTableCell: UITableViewCell = { + let cell = UITableViewCell(style: .default, + reuseIdentifier: Row.requestAPNSPermissions.rawValue) + cell.selectionStyle = .none + cell.contentView.addSubview(self.requestPermissionsButton) + self.requestPermissionsButton.frame = cell.contentView.bounds + self.requestPermissionsButton.autoresizingMask = [.flexibleWidth, .flexibleHeight] + return cell + }() + + lazy var fcmTokenTableCell: UITableViewCell = { + let cell = UITableViewCell(style: .subtitle, reuseIdentifier: Row.fcmToken.rawValue) + cell.textLabel?.numberOfLines = 0 + cell.textLabel?.lineBreakMode = .byCharWrapping + return cell + }() +} + +// MARK: - Configuring the table view and cells with information +extension MessagingViewController { + func resetTableContents() { + sections.removeAll() + sectionHeaderTitles.removeAll() + + // APNS + let apnsSection: [Row] = [.apnsToken, .apnsStatus, .requestAPNSPermissions] + sections.append(apnsSection) + sectionHeaderTitles.append("APNs") + + // FCM + let fcmSection: [Row] = [.fcmToken] + sections.append(fcmSection) + sectionHeaderTitles.append("FCM Token") + + } + + func indexPathFor(_ rowId: Row) -> IndexPath? { + var sectionIndex = 0 + for section in sections { + var rowIndex = 0 + for row in section { + if row == rowId { + return IndexPath(row: rowIndex, section: sectionIndex) + } + rowIndex += 1 + } + sectionIndex += 1 + } + return nil + } + + func configureCell(_ cell: UITableViewCell, withAPNSToken apnsToken: Data?) { + guard !Environment.isSimulator else { + cell.textLabel?.text = "APNs notifications are not supported in the simulator." + cell.detailTextLabel?.text = nil + return + } + if let apnsToken = apnsToken { + cell.textLabel?.text = apnsToken.hexByteString + cell.detailTextLabel?.text = "Tap to Share" + } else { + cell.textLabel?.text = "None" + cell.detailTextLabel?.text = nil + } + } + + func configureCellWithAPNSStatus(_ cell: UITableViewCell) { + if let allowedNotificationTypes = allowedNotificationTypes { + let displayableTypes: [String] = allowedNotificationTypes.map { return $0.rawValue } + cell.detailTextLabel?.text = displayableTypes.joined(separator: ", ") + } else { + cell.detailTextLabel?.text = "Retrieving..." + } + } + + func configureCell(_ cell: UITableViewCell, withFCMToken fcmToken: String?) { + if let fcmToken = fcmToken { + cell.textLabel?.text = fcmToken + cell.detailTextLabel?.text = "Tap to Share" + } else { + cell.textLabel?.text = "None" + cell.detailTextLabel?.text = nil + } + } +} + +// MARK: - UITableViewDataSource +extension MessagingViewController: UITableViewDataSource { + func numberOfSections(in tableView: UITableView) -> Int { + return sections.count + } + + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return sections[section].count + } + + public func tableView(_ tableView: UITableView, + cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let row = sections[indexPath.section][indexPath.row] + + let cell: UITableViewCell + switch row { + case .apnsToken: + cell = apnsTableCell + configureCell(cell, withAPNSToken: Messaging.messaging().apnsToken) + case .apnsStatus: + cell = apnsStatusTableCell + configureCellWithAPNSStatus(cell) + case .requestAPNSPermissions: + cell = apnsRequestPermissionsTableCell + case .fcmToken: + cell = fcmTokenTableCell + configureCell(cell, withFCMToken: Messaging.messaging().fcmToken) + } + return cell + } + + func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? { + return sectionHeaderTitles[section] + } +} + +// MARK: - UITableViewDelegate +extension MessagingViewController: UITableViewDelegate { + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + + let row = sections[indexPath.section][indexPath.row] + switch row { + case .apnsToken: + if let apnsToken = Messaging.messaging().apnsToken { + showActivityViewControllerFor(sharedItem: apnsToken.hexByteString) + } + case .fcmToken: + if let fcmToken = Messaging.messaging().fcmToken { + showActivityViewControllerFor(sharedItem: fcmToken) + } + default: break + } + } +} + +// MARK: - UI Controls +extension MessagingViewController { + func onRequestUserNotificationsButtonTapped(sender: UIButton) { + NotificationsController.shared.registerForUserFacingNotificationsFor(UIApplication.shared) + } +} + +// MARK: - Activity View Controller +extension MessagingViewController { + func showActivityViewControllerFor(sharedItem: Any) { + let activityViewController = UIActivityViewController(activityItems: [sharedItem], + applicationActivities: nil) + present(activityViewController, animated: true, completion: nil) + } +} + diff --git a/Example/Messaging/App/iOS/Messaging_Example.entitlements b/Example/Messaging/App/iOS/Messaging_Example.entitlements new file mode 100644 index 0000000..903def2 --- /dev/null +++ b/Example/Messaging/App/iOS/Messaging_Example.entitlements @@ -0,0 +1,8 @@ + + + + + aps-environment + development + + diff --git a/Example/Messaging/App/iOS/NotificationsController.swift b/Example/Messaging/App/iOS/NotificationsController.swift new file mode 100644 index 0000000..726d980 --- /dev/null +++ b/Example/Messaging/App/iOS/NotificationsController.swift @@ -0,0 +1,132 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import UIKit +import UserNotifications + +import FirebaseDev + +enum NotificationsControllerAllowedNotificationType: String { + case none = "None" + case silent = "Silent Updates" + case alert = "Alerts" + case badge = "Badges" + case sound = "Sounds" +} + +let APNSTokenReceivedNotification: Notification.Name + = Notification.Name(rawValue: "APNSTokenReceivedNotification") +let UserNotificationsChangedNotification: Notification.Name + = Notification.Name(rawValue: "UserNotificationsChangedNotification") + +class NotificationsController: NSObject { + + static let shared: NotificationsController = { + let instance = NotificationsController() + return instance + }() + + class func configure() { + let sharedController = NotificationsController.shared + // Always become the delegate of UNUserNotificationCenter, even before we've requested user + // permissions + if #available(iOS 10.0, *) { + UNUserNotificationCenter.current().delegate = sharedController + } + } + + func registerForUserFacingNotificationsFor(_ application: UIApplication) { + if #available(iOS 10.0, *) { + UNUserNotificationCenter.current() + .requestAuthorization(options: [.alert, .badge, .sound], + completionHandler: { (granted, error) in + NotificationCenter.default.post(name: UserNotificationsChangedNotification, object: nil) + }) + } else if #available(iOS 8.0, *) { + let userNotificationSettings = UIUserNotificationSettings(types: [.alert, .badge, .sound], + categories: []) + application.registerUserNotificationSettings(userNotificationSettings) + + } else { + application.registerForRemoteNotifications(matching: [.alert, .badge, .sound]) + } + } + + func getAllowedNotificationTypes(_ completion: + @escaping (_ allowedTypes: [NotificationsControllerAllowedNotificationType]) -> Void) { + + guard Messaging.messaging().apnsToken != nil else { + completion([.none]) + return + } + + var types: [NotificationsControllerAllowedNotificationType] = [.silent] + if #available(iOS 10.0, *) { + UNUserNotificationCenter.current().getNotificationSettings(completionHandler: { (settings) in + if settings.alertSetting == .enabled { + types.append(.alert) + } + if settings.badgeSetting == .enabled { + types.append(.badge) + } + if settings.soundSetting == .enabled { + types.append(.sound) + } + DispatchQueue.main.async { + completion(types) + } + }) + } else if #available(iOS 8.0, *) { + if let userNotificationSettings = UIApplication.shared.currentUserNotificationSettings { + if userNotificationSettings.types.contains(.alert) { + types.append(.alert) + } + if userNotificationSettings.types.contains(.badge) { + types.append(.badge) + } + if userNotificationSettings.types.contains(.sound) { + types.append(.sound) + } + } + completion(types) + } else { + let enabledTypes = UIApplication.shared.enabledRemoteNotificationTypes() + if enabledTypes.contains(.alert) { + types.append(.alert) + } + if enabledTypes.contains(.badge) { + types.append(.badge) + } + if enabledTypes.contains(.sound) { + types.append(.sound) + } + completion(types) + } + } +} + +// MARK: - UNUserNotificationCenterDelegate +@available(iOS 10.0, *) +extension NotificationsController: UNUserNotificationCenterDelegate { + + func userNotificationCenter(_ center: UNUserNotificationCenter, + willPresent notification: UNNotification, + withCompletionHandler completionHandler: + @escaping (UNNotificationPresentationOptions) -> Void) { + // Always show the incoming notification, even if the app is in foreground + completionHandler([.alert, .badge, .sound]) + } +} diff --git a/Example/Podfile b/Example/Podfile index 50bc37e..35df51c 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -1,60 +1,123 @@ use_frameworks! -platform :ios, '8.0' -target 'Core_Example' do +target 'Core_Example_iOS' do + platform :ios, '8.0' + + pod 'FirebaseDev/Core', :path => '../' + + target 'Core_Tests_iOS' do + inherit! :search_paths + pod 'OCMock' + end +end + +target 'Core_Example_macOS' do + platform :osx, '10.10' + pod 'FirebaseDev/Core', :path => '../' - target 'Core_Tests' do + target 'Core_Tests_macOS' do + inherit! :search_paths + pod 'OCMock' + end +end + +target 'Auth_Example_iOS' do + platform :ios, '8.0' + + pod 'FirebaseDev/Auth', :path => '../' + + target 'Auth_Tests_iOS' do inherit! :search_paths pod 'OCMock' end end -target 'Auth_Example' do +target 'Auth_Example_macOS' do + platform :osx, '10.10' + pod 'FirebaseDev/Auth', :path => '../' - target 'Auth_Tests' do + target 'Auth_Tests_macOS' do inherit! :search_paths pod 'OCMock' end end -target 'Database_Example' do +target 'Database_Example_iOS' do + platform :ios, '8.0' + pod 'FirebaseDev/Database', :path => '../' - target 'Database_Tests' do + target 'Database_Tests_iOS' do inherit! :search_paths pod 'OCMock' end - - target 'Database_IntegrationTests' do + + target 'Database_IntegrationTests_iOS' do inherit! :search_paths pod 'OCMock' end end -target 'Messaging_Example' do +target 'Database_Example_macOS' do + platform :osx, '10.10' + + pod 'FirebaseDev/Database', :path => '../' + + target 'Database_Tests_macOS' do + inherit! :search_paths + pod 'OCMock' + end + + target 'Database_IntegrationTests_macOS' do + inherit! :search_paths + pod 'OCMock' + end +end + +target 'Messaging_Example_iOS' do + platform :ios, '8.0' + pod 'FirebaseDev/Messaging', :path => '../' # Lock to the 1.0.9 version of InstanceID since 1.0.10 added a dependency # to FirebaseCore pod 'FirebaseInstanceID', '1.0.9' - target 'Messaging_Tests' do + target 'Messaging_Tests_iOS' do inherit! :search_paths pod 'OCMock' end end -target 'Storage_Example' do +target 'Storage_Example_iOS' do + platform :ios, '8.0' + pod 'FirebaseDev/Storage', :path => '../' - target 'Storage_Tests' do + target 'Storage_Tests_iOS' do inherit! :search_paths pod 'OCMock' end - - target 'Storage_IntegrationTests' do + + target 'Storage_IntegrationTests_iOS' do + inherit! :search_paths + pod 'OCMock' + end +end + +target 'Storage_Example_macOS' do + platform :osx, '10.10' + + pod 'FirebaseDev/Storage', :path => '../' + + target 'Storage_Tests_macOS' do + inherit! :search_paths + pod 'OCMock' + end + + target 'Storage_IntegrationTests_macOS' do inherit! :search_paths pod 'OCMock' end diff --git a/Example/Shared/Shared.xcassets/AppIcon.appiconset/Contents.json b/Example/Shared/Shared.xcassets/AppIcon.appiconset/Contents.json index f659eef..a03ddc7 100644 --- a/Example/Shared/Shared.xcassets/AppIcon.appiconset/Contents.json +++ b/Example/Shared/Shared.xcassets/AppIcon.appiconset/Contents.json @@ -101,6 +101,57 @@ "idiom" : "ipad", "filename" : "Icon-Pad-83.5@2x.png", "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "16x16", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "32x32", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "Icon-Mac-128.png", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "128x128", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "256x256", + "scale" : "2x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "1x" + }, + { + "idiom" : "mac", + "size" : "512x512", + "scale" : "2x" } ], "info" : { diff --git a/Example/Shared/Shared.xcassets/AppIcon.appiconset/Icon-Mac-128.png b/Example/Shared/Shared.xcassets/AppIcon.appiconset/Icon-Mac-128.png new file mode 100644 index 0000000..d408832 Binary files /dev/null and b/Example/Shared/Shared.xcassets/AppIcon.appiconset/Icon-Mac-128.png differ diff --git a/Example/Storage/App/Base.lproj/LaunchScreen.storyboard b/Example/Storage/App/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index 66a7681..0000000 --- a/Example/Storage/App/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Storage/App/Base.lproj/Main.storyboard b/Example/Storage/App/Base.lproj/Main.storyboard deleted file mode 100644 index d164a23..0000000 --- a/Example/Storage/App/Base.lproj/Main.storyboard +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Example/Storage/App/FIRAppDelegate.h b/Example/Storage/App/FIRAppDelegate.h deleted file mode 100644 index e3fba8f..0000000 --- a/Example/Storage/App/FIRAppDelegate.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Example/Storage/App/FIRAppDelegate.m b/Example/Storage/App/FIRAppDelegate.m deleted file mode 100644 index 0ecfdea..0000000 --- a/Example/Storage/App/FIRAppDelegate.m +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRAppDelegate.h" - -@implementation FIRAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - // Override point for customization after application launch. - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -@end diff --git a/Example/Storage/App/FIRViewController.h b/Example/Storage/App/FIRViewController.h deleted file mode 100644 index 64b4b74..0000000 --- a/Example/Storage/App/FIRViewController.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2017 Google - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@import UIKit; - -@interface FIRViewController : UIViewController - -@end diff --git a/Example/Storage/App/FIRViewController.m b/Example/Storage/App/FIRViewController.m deleted file mode 100644 index 901accf..0000000 --- a/Example/Storage/App/FIRViewController.m +++ /dev/null @@ -1,35 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#import "FIRViewController.h" - -@interface FIRViewController () - -@end - -@implementation FIRViewController - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view, typically from a nib. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -@end diff --git a/Example/Storage/App/Storage-Info.plist b/Example/Storage/App/Storage-Info.plist deleted file mode 100644 index 7576a0d..0000000 --- a/Example/Storage/App/Storage-Info.plist +++ /dev/null @@ -1,49 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Example/Storage/App/iOS/Base.lproj/LaunchScreen.storyboard b/Example/Storage/App/iOS/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..66a7681 --- /dev/null +++ b/Example/Storage/App/iOS/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Storage/App/iOS/Base.lproj/Main.storyboard b/Example/Storage/App/iOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..d164a23 --- /dev/null +++ b/Example/Storage/App/iOS/Base.lproj/Main.storyboard @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Storage/App/iOS/FIRAppDelegate.h b/Example/Storage/App/iOS/FIRAppDelegate.h new file mode 100644 index 0000000..e3fba8f --- /dev/null +++ b/Example/Storage/App/iOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; + +@end diff --git a/Example/Storage/App/iOS/FIRAppDelegate.m b/Example/Storage/App/iOS/FIRAppDelegate.m new file mode 100644 index 0000000..0ecfdea --- /dev/null +++ b/Example/Storage/App/iOS/FIRAppDelegate.m @@ -0,0 +1,52 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRAppDelegate.h" + +@implementation FIRAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + // Override point for customization after application launch. + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +@end diff --git a/Example/Storage/App/iOS/FIRViewController.h b/Example/Storage/App/iOS/FIRViewController.h new file mode 100644 index 0000000..64b4b74 --- /dev/null +++ b/Example/Storage/App/iOS/FIRViewController.h @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +@import UIKit; + +@interface FIRViewController : UIViewController + +@end diff --git a/Example/Storage/App/iOS/FIRViewController.m b/Example/Storage/App/iOS/FIRViewController.m new file mode 100644 index 0000000..901accf --- /dev/null +++ b/Example/Storage/App/iOS/FIRViewController.m @@ -0,0 +1,35 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#import "FIRViewController.h" + +@interface FIRViewController () + +@end + +@implementation FIRViewController + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view, typically from a nib. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +@end diff --git a/Example/Storage/App/iOS/Storage-Info.plist b/Example/Storage/App/iOS/Storage-Info.plist new file mode 100644 index 0000000..7576a0d --- /dev/null +++ b/Example/Storage/App/iOS/Storage-Info.plist @@ -0,0 +1,49 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Example/Storage/App/iOS/main.m b/Example/Storage/App/iOS/main.m new file mode 100644 index 0000000..03b5c12 --- /dev/null +++ b/Example/Storage/App/iOS/main.m @@ -0,0 +1,23 @@ +// Copyright 2017 Google +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +@import UIKit; +#import "FIRAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); + } +} diff --git a/Example/Storage/App/macOS/Base.lproj/Main.storyboard b/Example/Storage/App/macOS/Base.lproj/Main.storyboard new file mode 100644 index 0000000..1cd523a --- /dev/null +++ b/Example/Storage/App/macOS/Base.lproj/Main.storyboard @@ -0,0 +1,693 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/Storage/App/macOS/FIRAppDelegate.h b/Example/Storage/App/macOS/FIRAppDelegate.h new file mode 100644 index 0000000..e637ef9 --- /dev/null +++ b/Example/Storage/App/macOS/FIRAppDelegate.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRAppDelegate : NSObject + + +@end + diff --git a/Example/Storage/App/macOS/FIRAppDelegate.m b/Example/Storage/App/macOS/FIRAppDelegate.m new file mode 100644 index 0000000..9a363a6 --- /dev/null +++ b/Example/Storage/App/macOS/FIRAppDelegate.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRAppDelegate.h" + +@interface FIRAppDelegate () + +@end + +@implementation FIRAppDelegate + +- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { + // Insert code here to initialize your application +} + + +- (void)applicationWillTerminate:(NSNotification *)aNotification { + // Insert code here to tear down your application +} + + +@end diff --git a/Example/Storage/App/macOS/FIRViewController.h b/Example/Storage/App/macOS/FIRViewController.h new file mode 100644 index 0000000..efee5d5 --- /dev/null +++ b/Example/Storage/App/macOS/FIRViewController.h @@ -0,0 +1,23 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +@interface FIRViewController : NSViewController + + +@end + diff --git a/Example/Storage/App/macOS/FIRViewController.m b/Example/Storage/App/macOS/FIRViewController.m new file mode 100644 index 0000000..08c5bb5 --- /dev/null +++ b/Example/Storage/App/macOS/FIRViewController.m @@ -0,0 +1,35 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import "FIRViewController.h" + +@implementation FIRViewController + +- (void)viewDidLoad { + [super viewDidLoad]; + + // Do any additional setup after loading the view. +} + + +- (void)setRepresentedObject:(id)representedObject { + [super setRepresentedObject:representedObject]; + + // Update the view, if already loaded. +} + + +@end diff --git a/Example/Storage/App/macOS/Storage-Info.plist b/Example/Storage/App/macOS/Storage-Info.plist new file mode 100644 index 0000000..6f7d78e --- /dev/null +++ b/Example/Storage/App/macOS/Storage-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2017 Google. All rights reserved. + NSMainStoryboardFile + Main + NSPrincipalClass + NSApplication + + diff --git a/Example/Storage/App/macOS/main.m b/Example/Storage/App/macOS/main.m new file mode 100644 index 0000000..e8858a6 --- /dev/null +++ b/Example/Storage/App/macOS/main.m @@ -0,0 +1,21 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#import + +int main(int argc, const char * argv[]) { + return NSApplicationMain(argc, argv); +} diff --git a/Example/Storage/App/main.m b/Example/Storage/App/main.m deleted file mode 100644 index 03b5c12..0000000 --- a/Example/Storage/App/main.m +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017 Google -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -@import UIKit; -#import "FIRAppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([FIRAppDelegate class])); - } -} diff --git a/Firebase/Auth/FirebaseAuth.podspec b/Firebase/Auth/FirebaseAuth.podspec index 74aa07c..980fedb 100644 --- a/Firebase/Auth/FirebaseAuth.podspec +++ b/Firebase/Auth/FirebaseAuth.podspec @@ -20,8 +20,17 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.source = { :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '7.0' + s.osx.deployment_target = '10.10' s.source_files = '**/*.[mh]' + s.osx.exclude_files = + 'Source/**/FIRAuthAppDelegateProxy.[mh]', + 'Source/**/FIRAuthNotificationManager.[mh]', + 'Source/**/FIRAuthAppCredentialManager.[mh]', + 'Source/**/FIRAuthAPNSTokenManager.[mh]', + 'Source/**/FIRAuthAPNSTokenType.[mh]', + 'Source/**/FIRAuthAPNSToken.[mh]', + 'Source/**/FIRPhoneAuthProvider.[mh]' s.public_header_files = 'Source/FirebaseAuth.h', 'Source/FirebaseAuthVersion.h', diff --git a/Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m b/Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m index b9bf577..c7e8bb1 100644 --- a/Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m +++ b/Firebase/Auth/Source/AuthProviders/Phone/FIRPhoneAuthCredential.m @@ -16,7 +16,6 @@ #import "FIRPhoneAuthCredential.h" -#import "FIRPhoneAuthProvider.h" #import "FIRPhoneAuthCredential_Internal.h" #import "FIRAuthCredential_Internal.h" #import "FIRAuthExceptionUtils.h" diff --git a/Firebase/Auth/Source/FIRAuth.h b/Firebase/Auth/Source/FIRAuth.h index 6e59e86..65b55d6 100644 --- a/Firebase/Auth/Source/FIRAuth.h +++ b/Firebase/Auth/Source/FIRAuth.h @@ -16,10 +16,13 @@ #import -#import "FIRAuthAPNSTokenType.h" #import "FIRAuthErrors.h" #import "FIRAuthSwiftNameSupport.h" +#if TARGET_OS_IOS +#import "FIRAuthAPNSTokenType.h" +#endif + @class FIRApp; @class FIRAuth; @class FIRAuthCredential; @@ -249,6 +252,7 @@ FIR_SWIFT_NAME(Auth) */ @property(nonatomic, strong, readonly, nullable) FIRUser *currentUser; +#if TARGET_OS_IOS /** @property APNSToken @brief The APNs token used for phone number authentication. The type of the token (production or sandbox) will be attempted to be automatcially detected. @@ -256,6 +260,7 @@ FIR_SWIFT_NAME(Auth) by either setting this property or by calling @c setAPNSToken:type: */ @property(nonatomic, strong, nullable) NSData *APNSToken; +#endif /** @fn init @brief Please access auth instances using @c FIRAuth.auth and @c FIRAuth.authForApp:. @@ -587,6 +592,7 @@ FIR_SWIFT_NAME(Auth) */ - (void)removeIDTokenDidChangeListener:(FIRIDTokenDidChangeListenerHandle)listenerHandle; +#if TARGET_OS_IOS /** @fn setAPNSToken:type: @brief Sets the APNs token along with its type. @remarks If swizzling is disabled, the APNs Token must be set for phone number auth to work, @@ -606,6 +612,7 @@ FIR_SWIFT_NAME(Auth) for phone number auth to work. */ - (BOOL)canHandleNotification:(NSDictionary *)userInfo; +#endif @end diff --git a/Firebase/Auth/Source/FIRAuth.m b/Firebase/Auth/Source/FIRAuth.m index 5b1da8c..dca0c1d 100644 --- a/Firebase/Auth/Source/FIRAuth.m +++ b/Firebase/Auth/Source/FIRAuth.m @@ -23,10 +23,6 @@ #import "AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.h" #import "AuthProviders/Phone/FIRPhoneAuthCredential_Internal.h" #import "Private/FIRAdditionalUserInfo_Internal.h" -#import "Private/FIRAuthAPNSToken.h" -#import "Private/FIRAuthAPNSTokenManager.h" -#import "Private/FIRAuthAppCredentialManager.h" -#import "Private/FIRAuthAppDelegateProxy.h" #import "Private/FIRAuthCredential_Internal.h" #import "Private/FIRAuthDataResult_Internal.h" #import "Private/FIRAuthDispatcher.h" @@ -34,7 +30,6 @@ #import "FIRAuthExceptionUtils.h" #import "Private/FIRAuthGlobalWorkQueue.h" #import "Private/FIRAuthKeychain.h" -#import "Private/FIRAuthNotificationManager.h" #import "Private/FIRUser_Internal.h" #import "FirebaseAuth.h" #import "FIRAuthBackend.h" @@ -59,6 +54,14 @@ #import "FIRVerifyPhoneNumberRequest.h" #import "FIRVerifyPhoneNumberResponse.h" +#if TARGET_OS_IOS +#import "Private/FIRAuthAPNSToken.h" +#import "Private/FIRAuthAPNSTokenManager.h" +#import "Private/FIRAuthAppCredentialManager.h" +#import "Private/FIRAuthAppDelegateProxy.h" +#import "Private/FIRAuthNotificationManager.h" +#endif + #pragma mark - Constants NSString *const FIRAuthStateDidChangeInternalNotification = @@ -173,7 +176,11 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; #pragma mark - FIRAuth +#if TARGET_OS_IOS @interface FIRAuth () +#else +@interface FIRAuth () +#endif /** @property firebaseAppId @brief The Firebase app ID. @@ -309,6 +316,8 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; FIRLogInfo(kFIRLoggerAuth, @"I-AUT000002", @"Token auto-refresh enabled."); strongSelf->_autoRefreshTokens = YES; [strongSelf scheduleAutoTokenRefresh]; + + #if TARGET_OS_IOS // TODO: Is a similar mechanism needed on macOS? strongSelf->_applicationDidBecomeActiveObserver = [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidBecomeActiveNotification object:nil @@ -332,6 +341,7 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; strongSelf->_isAppInBackground = YES; } }]; + #endif } if (!strongSelf.currentUser) { dispatch_async(dispatch_get_main_queue(), ^{ @@ -378,14 +388,20 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; FIRLogError(kFIRLoggerAuth, @"I-AUT000001", @"Error loading saved user when starting up: %@", error); } + + #if TARGET_OS_IOS // Initialize for phone number auth. _tokenManager = [[FIRAuthAPNSTokenManager alloc] initWithApplication:[UIApplication sharedApplication]]; + _appCredentialManager = [[FIRAuthAppCredentialManager alloc] initWithKeychain:_keychain]; + _notificationManager = [[FIRAuthNotificationManager alloc] initWithApplication:[UIApplication sharedApplication] appCredentialManager:_appCredentialManager]; + [[FIRAuthAppDelegateProxy sharedInstance] addHandler:self]; + #endif } return self; } @@ -398,12 +414,15 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; [defaultCenter removeObserver:handleToRemove]; [_listenerHandles removeLastObject]; } + + #if TARGET_OS_IOS [defaultCenter removeObserver:_applicationDidBecomeActiveObserver name:UIApplicationDidBecomeActiveNotification object:nil]; [defaultCenter removeObserver:_applicationDidEnterBackgroundObserver name:UIApplicationDidEnterBackgroundNotification object:nil]; + #endif } } @@ -520,6 +539,7 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; return; } + #if TARGET_OS_IOS if ([credential isKindOfClass:[FIRPhoneAuthCredential class]]) { // Special case for phone auth credential FIRPhoneAuthCredential *phoneCredential = (FIRPhoneAuthCredential *)credential; @@ -533,6 +553,7 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; }]; return; } + #endif FIRVerifyAssertionRequest *request = [[FIRVerifyAssertionRequest alloc] initWithAPIKey:_APIKey providerID:credential.provider]; @@ -839,7 +860,8 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; } } -- (NSData *)APNStoken { +#if TARGET_OS_IOS +- (NSData *)APNSToken { __block NSData *result = nil; dispatch_sync(FIRAuthGlobalWorkQueue(), ^{ result = _tokenManager.token.data; @@ -864,9 +886,11 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; }); return result; } +#endif #pragma mark - Internal Methods +#if TARGET_OS_IOS /** @fn signInWithPhoneCredential:callback: @brief Signs in using a phone credential. @param credential The Phone Auth credential used to sign in. @@ -922,6 +946,7 @@ static NSMutableDictionary *gKeychainServiceNameForAppName; callback:callback]; }]; } +#endif - (void)notifyListenersOfAuthStateChangeWithUser:(FIRUser *)user token:(NSString *)token { if (user && _autoRefreshTokens) { diff --git a/Firebase/Auth/Source/FIRUser.h b/Firebase/Auth/Source/FIRUser.h index ebe8b81..9e3ac77 100644 --- a/Firebase/Auth/Source/FIRUser.h +++ b/Firebase/Auth/Source/FIRUser.h @@ -158,6 +158,7 @@ FIR_SWIFT_NAME(User) completion:(nullable FIRUserProfileChangeCallback)completion FIR_SWIFT_NAME(updatePassword(to:completion:)); +#if TARGET_OS_IOS /** @fn updatePhoneNumberCredential:completion: @brief Updates the phone number for the user. On success, the cached user profile data is updated. @@ -181,6 +182,7 @@ FIR_SWIFT_NAME(User) */ - (void)updatePhoneNumberCredential:(FIRPhoneAuthCredential *)phoneNumberCredential completion:(nullable FIRUserProfileChangeCallback)completion; +#endif /** @fn profileChangeRequest @brief Creates an object which may be used to change the user's profile data. diff --git a/Firebase/Auth/Source/FIRUser.m b/Firebase/Auth/Source/FIRUser.m index f0c3226..c45539c 100644 --- a/Firebase/Auth/Source/FIRUser.m +++ b/Firebase/Auth/Source/FIRUser.m @@ -19,7 +19,6 @@ #import "AuthProviders/EmailPassword/FIREmailPasswordAuthCredential.h" #import "AuthProviders/EmailPassword/FIREmailAuthProvider.h" #import "AuthProviders/Phone/FIRPhoneAuthCredential_Internal.h" -#import "AuthProviders/Phone/FIRPhoneAuthProvider.h" #import "Private/FIRAdditionalUserInfo_Internal.h" #import "FIRAuth.h" #import "Private/FIRAuthCredential_Internal.h" @@ -48,6 +47,10 @@ #import "FIRVerifyPhoneNumberRequest.h" #import "FIRVerifyPhoneNumberResponse.h" +#if TARGET_OS_IOS +#import "AuthProviders/Phone/FIRPhoneAuthProvider.h" +#endif + NS_ASSUME_NONNULL_BEGIN /** @var kUserIDCodingKey @@ -602,6 +605,7 @@ static void callInMainThreadWithAuthDataResultAndError( }); } +#if TARGET_OS_IOS /** @fn internalUpdatePhoneNumberCredential:completion: @brief Updates the phone number for the user. On success, the cached user profile data is updated. @@ -654,6 +658,7 @@ static void callInMainThreadWithAuthDataResultAndError( }]; }); } +#endif - (FIRUserProfileChangeRequest *)profileChangeRequest { __block FIRUserProfileChangeRequest *result; @@ -839,6 +844,7 @@ static void callInMainThreadWithAuthDataResultAndError( return; } + #if TARGET_OS_IOS if ([credential isKindOfClass:[FIRPhoneAuthCredential class]]) { FIRPhoneAuthCredential *phoneAuthCredential = (FIRPhoneAuthCredential *)credential; [self internalUpdatePhoneNumberCredential:phoneAuthCredential @@ -851,6 +857,7 @@ static void callInMainThreadWithAuthDataResultAndError( }]; return; } + #endif [_taskQueue enqueueTask:^(FIRAuthSerialTaskCompletionBlock _Nonnull complete) { CallbackWithAuthDataResultAndError completeWithError = @@ -960,11 +967,13 @@ static void callInMainThreadWithAuthDataResultAndError( [mutableProviderData removeObjectForKey:provider]; _providerData = [mutableProviderData copy]; + #if TARGET_OS_IOS // After successfully unlinking a phone auth provider, remove the phone number from the // cached user info. if ([provider isEqualToString:FIRPhoneAuthProviderID]) { _phoneNumber = nil; } + #endif } if (response.IDToken && response.refreshToken) { FIRSecureTokenService *tokenService = diff --git a/Firebase/Auth/Source/Private/FIRAuth_Internal.h b/Firebase/Auth/Source/Private/FIRAuth_Internal.h index bdbefce..afcd899 100644 --- a/Firebase/Auth/Source/Private/FIRAuth_Internal.h +++ b/Firebase/Auth/Source/Private/FIRAuth_Internal.h @@ -16,9 +16,11 @@ #import "FIRAuth.h" +#if TARGET_OS_IOS @class FIRAuthAPNSTokenManager; @class FIRAuthAppCredentialManager; @class FIRAuthNotificationManager; +#endif NS_ASSUME_NONNULL_BEGIN @@ -46,6 +48,7 @@ extern NSString *const FIRAuthStateDidChangeInternalNotificationTokenKey; */ @property(nonatomic, copy, readonly) NSString *APIKey; +#if TARGET_OS_IOS /** @property tokenManager @brief The manager for APNs tokens used by phone number auth. */ @@ -60,6 +63,7 @@ extern NSString *const FIRAuthStateDidChangeInternalNotificationTokenKey; @brief The manager for remote notifications used by phone number auth. */ @property(nonatomic, strong, readonly) FIRAuthNotificationManager *notificationManager; +#endif /** @fn initWithAPIKey:appName: @brief Designated initializer. diff --git a/Firebase/Auth/Source/RPCs/FIRAuthBackend.h b/Firebase/Auth/Source/RPCs/FIRAuthBackend.h index 519a6e7..521cf16 100644 --- a/Firebase/Auth/Source/RPCs/FIRAuthBackend.h +++ b/Firebase/Auth/Source/RPCs/FIRAuthBackend.h @@ -312,6 +312,7 @@ typedef void (^FIRVerifyClientResponseCallback) + (void)deleteAccount:(FIRDeleteAccountRequest *)request callback:(FIRDeleteCallBack)callback; +#if TARGET_OS_IOS /** @fn sendVerificationCode:callback: @brief Calls the sendVerificationCode endpoint, which is responsible for sending the verification code to a phone number specified in the request parameters. @@ -338,6 +339,7 @@ typedef void (^FIRVerifyClientResponseCallback) */ + (void)verifyClient:(FIRVerifyClientRequest *)request callback:(FIRVerifyClientResponseCallback)callback; +#endif @end @@ -455,6 +457,7 @@ typedef void (^FIRVerifyClientResponseCallback) - (void)deleteAccount:(FIRDeleteAccountRequest *)request callback:(FIRDeleteCallBack)callback; +#if TARGET_OS_IOS /** @fn sendVerificationCode:callback: @brief Calls the sendVerificationCode endpoint, which is responsible for sending the verification code to a phone number specified in the request parameters. @@ -481,6 +484,7 @@ typedef void (^FIRVerifyClientResponseCallback) */ - (void)verifyClient:(FIRVerifyClientRequest *)request callback:(FIRVerifyClientResponseCallback)callback; +#endif /** @fn resetPassword:callback @brief Calls the resetPassword endpoint, which is responsible for resetting a user's password diff --git a/Firebase/Auth/Source/RPCs/FIRAuthBackend.m b/Firebase/Auth/Source/RPCs/FIRAuthBackend.m index 3efc602..3b899f0 100644 --- a/Firebase/Auth/Source/RPCs/FIRAuthBackend.m +++ b/Firebase/Auth/Source/RPCs/FIRAuthBackend.m @@ -17,7 +17,6 @@ #import "FIRAuthBackend.h" #import "../AuthProviders/Phone/FIRPhoneAuthCredential_Internal.h" -#import "../AuthProviders/Phone/FIRPhoneAuthProvider.h" #import "../Private/FIRAuthErrorUtils.h" #import "../Private/FIRAuthGlobalWorkQueue.h" #import "FirebaseAuth.h" @@ -54,6 +53,10 @@ #import #import +#if TARGET_OS_IOS +#import "../AuthProviders/Phone/FIRPhoneAuthProvider.h" +#endif + /** @var kIosBundleIdentifierHeader @brief HTTP header name for iOS bundle ID. */ @@ -374,6 +377,7 @@ static id gBackendImplementation; [[self implementation] deleteAccount:request callback:callback]; } +#if TARGET_OS_IOS + (void)sendVerificationCode:(FIRSendVerificationCodeRequest *)request callback:(FIRSendVerificationCodeResponseCallback)callback { [[self implementation] sendVerificationCode:request callback:callback]; @@ -387,6 +391,7 @@ static id gBackendImplementation; + (void)verifyClient:(id)request callback:(FIRVerifyClientResponseCallback)callback { [[self implementation] verifyClient:request callback:callback]; } +#endif + (void)resetPassword:(FIRResetPasswordRequest *)request callback:(FIRResetPasswordCallback)callback { @@ -560,6 +565,7 @@ static id gBackendImplementation; [self postWithRequest:request response:response callback:callback]; } +#if TARGET_OS_IOS - (void)sendVerificationCode:(FIRSendVerificationCodeRequest *)request callback:(FIRSendVerificationCodeResponseCallback)callback { FIRSendVerificationCodeResponse *response = [[FIRSendVerificationCodeResponse alloc] init]; @@ -606,6 +612,7 @@ static id gBackendImplementation; callback(response, nil); }]; } +#endif - (void)resetPassword:(FIRResetPasswordRequest *)request callback:(FIRResetPasswordCallback)callback { diff --git a/Firebase/Core/FIRApp.h b/Firebase/Core/FIRApp.h index 7f1d0c7..00781ad 100644 --- a/Firebase/Core/FIRApp.h +++ b/Firebase/Core/FIRApp.h @@ -15,7 +15,6 @@ */ #import -#import #import "FIRCoreSwiftNameSupport.h" diff --git a/Firebase/Core/FIRAppEnvironmentUtil.m b/Firebase/Core/FIRAppEnvironmentUtil.m index b88b432..b3c6913 100644 --- a/Firebase/Core/FIRAppEnvironmentUtil.m +++ b/Firebase/Core/FIRAppEnvironmentUtil.m @@ -23,7 +23,7 @@ /// The encryption info struct and constants are missing from the iPhoneSimulator SDK, but not from /// the iPhoneOS or Mac OS X SDKs. Since one doesn't ever ship a Simulator binary, we'll just /// provide the definitions here. -#if TARGET_IPHONE_SIMULATOR && !defined(LC_ENCRYPTION_INFO) +#if TARGET_OS_SIMULATOR && !defined(LC_ENCRYPTION_INFO) #define LC_ENCRYPTION_INFO 0x21 struct encryption_info_command { uint32_t cmd; @@ -152,12 +152,20 @@ static BOOL isAppEncrypted() { } + (BOOL)hasEmbeddedMobileProvision { + #if TARGET_OS_IOS return [[NSBundle mainBundle] pathForResource:@"embedded" ofType:@"mobileprovision"].length > 0; + #elif TARGET_OS_OSX + return NO; + #endif } + (BOOL)isSimulator { + #if TARGET_OS_IOS NSString *platform = [FIRAppEnvironmentUtil deviceModel]; return [platform isEqual:@"x86_64"] || [platform isEqual:@"i386"]; + #elif TARGET_OS_OSX + return NO; + #endif } + (NSString *)deviceModel { @@ -174,15 +182,24 @@ static BOOL isAppEncrypted() { } + (NSString *)systemVersion { + #if TARGET_OS_IOS return [UIDevice currentDevice].systemVersion; + #elif TARGET_OS_OSX + return [NSProcessInfo processInfo].operatingSystemVersionString; + #endif } + (BOOL)isAppExtension { + #if TARGET_OS_IOS // Documented by Apple BOOL appExtension = [[[NSBundle mainBundle] bundlePath] hasSuffix:@".appex"]; return appExtension; + #elif TARGET_OS_OSX + return NO; + #endif } +#if TARGET_OS_IOS + (UIApplication *)sharedApplication { if ([FIRAppEnvironmentUtil isAppExtension]) { return nil; @@ -195,13 +212,22 @@ static BOOL isAppEncrypted() { } return sharedApplication; } +#elif TARGET_OS_OSX ++ (NSApplication *)sharedApplication { + return [NSApplication sharedApplication]; +} +#endif #pragma mark - Helper methods + (BOOL)hasSCInfoFolder { + #if TARGET_OS_IOS NSString *bundlePath = [NSBundle mainBundle].bundlePath; NSString *scInfoPath = [bundlePath stringByAppendingPathComponent:@"SC_Info"]; return [[NSFileManager defaultManager] fileExistsAtPath:scInfoPath]; + #elif TARGET_OS_OSX + return NO; + #endif } @end diff --git a/Firebase/Core/FIRNetworkURLSession.m b/Firebase/Core/FIRNetworkURLSession.m index 2b17eb3..967ffe2 100644 --- a/Firebase/Core/FIRNetworkURLSession.m +++ b/Firebase/Core/FIRNetworkURLSession.m @@ -430,15 +430,19 @@ /// Creates a background session configuration with the session ID using the supported method. - (NSURLSessionConfiguration *)backgroundSessionConfigWithSessionID:(NSString *)sessionID { -#if (!TARGET_OS_IPHONE && defined(MAC_OS_X_VERSION_10_10) && \ - MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10) || \ - (TARGET_OS_IPHONE && defined(__IPHONE_8_0) && \ - __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0) + #if (TARGET_OS_OSX && defined(MAC_OS_X_VERSION_10_10) && \ + MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_10) || \ + (TARGET_OS_IOS && defined(__IPHONE_8_0) && \ + __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0) + // iOS 8/10.10 builds require the new backgroundSessionConfiguration method name. return [NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:sessionID]; -#elif (!TARGET_OS_IPHONE && defined(MAC_OS_X_VERSION_10_10) && \ - MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10) || \ - (TARGET_OS_IPHONE && defined(__IPHONE_8_0) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0) + + #elif (TARGET_OS_OSX && defined(MAC_OS_X_VERSION_10_10) && \ + MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_10) || \ + (TARGET_OS_IOS && defined(__IPHONE_8_0) && \ + __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0) + // Do a runtime check to avoid a deprecation warning about using // +backgroundSessionConfiguration: on iOS 8. if ([NSURLSessionConfiguration @@ -449,10 +453,11 @@ // Running on iOS 7/OS X 10.9. return [NSURLSessionConfiguration backgroundSessionConfiguration:sessionID]; } -#else + + #else // Building with an SDK earlier than iOS 8/OS X 10.10. return [NSURLSessionConfiguration backgroundSessionConfiguration:sessionID]; -#endif + #endif } - (void)maybeRemoveTempFilesAtURL:(NSURL *)folderURL expiringTime:(NSTimeInterval)staleTime { diff --git a/Firebase/Core/FIRReachabilityChecker.m b/Firebase/Core/FIRReachabilityChecker.m index 66b6547..4817e4e 100644 --- a/Firebase/Core/FIRReachabilityChecker.m +++ b/Firebase/Core/FIRReachabilityChecker.m @@ -175,15 +175,23 @@ static NSString *const kFIRReachabilityDisconnectedStatus = @"Disconnected"; // Reachable flag is set. Check further flags. if (!(flags & kSCNetworkReachabilityFlagsConnectionRequired)) { // Connection required flag is not set, so we have connectivity. + #if TARGET_OS_IOS status = (flags & kSCNetworkReachabilityFlagsIsWWAN) ? kFIRReachabilityViaCellular : kFIRReachabilityViaWifi; + #elif TARGET_OS_OSX + status = kFIRReachabilityViaWifi; + #endif } else if ((flags & (kSCNetworkReachabilityFlagsConnectionOnDemand | kSCNetworkReachabilityFlagsConnectionOnTraffic)) && !(flags & kSCNetworkReachabilityFlagsInterventionRequired)) { // If the connection on demand or connection on traffic flag is set, and user intervention // is not required, we have connectivity. + #if TARGET_OS_IOS status = (flags & kSCNetworkReachabilityFlagsIsWWAN) ? kFIRReachabilityViaCellular : kFIRReachabilityViaWifi; + #elif TARGET_OS_OSX + status = kFIRReachabilityViaWifi; + #endif } } return status; diff --git a/Firebase/Core/FirebaseCore.podspec b/Firebase/Core/FirebaseCore.podspec index f513367..ae2303f 100644 --- a/Firebase/Core/FirebaseCore.podspec +++ b/Firebase/Core/FirebaseCore.podspec @@ -20,6 +20,7 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.source = { :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '7.0' + s.osx.deployment_target = '10.10' s.source_files = '**/*.[mh]' s.public_header_files = diff --git a/Firebase/Core/Private/FIRAppEnvironmentUtil.h b/Firebase/Core/Private/FIRAppEnvironmentUtil.h index ba4696c..7ae9827 100644 --- a/Firebase/Core/Private/FIRAppEnvironmentUtil.h +++ b/Firebase/Core/Private/FIRAppEnvironmentUtil.h @@ -16,7 +16,11 @@ #import +#if TARGET_OS_IOS #import +#elif TARGET_OS_OSX +#import +#endif @interface FIRAppEnvironmentUtil : NSObject @@ -42,7 +46,12 @@ /// Indicates whether it is running inside an extension or an app. + (BOOL)isAppExtension; +#if TARGET_OS_IOS /// Returns the [UIApplication sharedApplication] if it is running on an app, not an extension. + (UIApplication *)sharedApplication; +#elif TARGET_OS_OSX +/// Returns the [NSApplication sharedApplication]. ++ (NSApplication *)sharedApplication; +#endif @end diff --git a/Firebase/Core/Private/FIRLogger.h b/Firebase/Core/Private/FIRLogger.h index 2206c0a..7680e04 100644 --- a/Firebase/Core/Private/FIRLogger.h +++ b/Firebase/Core/Private/FIRLogger.h @@ -81,7 +81,7 @@ extern void FIRLogBasic(FIRLoggerLevel level, NSString *message, // On 64-bit simulators, va_list is not a pointer, so cannot be marked nullable // See: http://stackoverflow.com/q/29095469 -#if __LP64__ && TARGET_IPHONE_SIMULATOR +#if __LP64__ && TARGET_OS_SIMULATOR || TARGET_OS_OSX va_list args_ptr #else va_list _Nullable args_ptr diff --git a/Firebase/Database/Core/FPersistentConnection.m b/Firebase/Database/Core/FPersistentConnection.m index 0eb1f9f..9298f6d 100644 --- a/Firebase/Database/Core/FPersistentConnection.m +++ b/Firebase/Database/Core/FPersistentConnection.m @@ -922,15 +922,15 @@ static void reachabilityCallback(SCNetworkReachabilityRef ref, SCNetworkReachabi - (void) sendConnectStats { NSMutableDictionary *stats = [NSMutableDictionary dictionary]; -#if TARGET_OS_IPHONE + #if TARGET_OS_IOS if (self.config.persistenceEnabled) { stats[@"persistence.ios.enabled"] = @1; } -#else // this must be OSX then + #elif TARGET_OS_OSX if (self.config.persistenceEnabled) { stats[@"persistence.osx.enabled"] = @1; } -#endif + #endif NSString *sdkVersion = [[FIRDatabase sdkVersion] stringByReplacingOccurrencesOfString:@"." withString:@"-"]; NSString *sdkStatName = [NSString stringWithFormat:@"sdk.objc.%@", sdkVersion]; stats[sdkStatName] = @1; diff --git a/Firebase/Database/Core/FRepo.m b/Firebase/Database/Core/FRepo.m index 06cc253..f04d0f1 100644 --- a/Firebase/Database/Core/FRepo.m +++ b/Firebase/Database/Core/FRepo.m @@ -50,7 +50,7 @@ #import "FValueEventRegistration.h" #import "FEmptyNode.h" -#ifdef TARGET_OS_IPHONE +#if TARGET_OS_IOS #import #endif @@ -543,7 +543,7 @@ return; // Targetted compilation is ONLY for testing. UIKit is weak-linked in actual release build. -#if TARGET_OS_IPHONE + #if TARGET_OS_IOS // The idea is to wait until any outstanding sets get written to disk. Since the sets might still be in our // dispatch queue, we wait for the dispatch queue to catch up and for persistence to catch up. // This may be undesirable though. The dispatch queue might just be processing a bunch of incoming data or @@ -563,7 +563,7 @@ FFLog(@"I-RDB038018", @"Background task completed. Queue time: %f", finishTime); [application endBackgroundTask:bgTask]; }); -#endif + #endif } #pragma mark - diff --git a/Firebase/Database/FirebaseDatabase.podspec b/Firebase/Database/FirebaseDatabase.podspec index 4db371e..6c966ce 100644 --- a/Firebase/Database/FirebaseDatabase.podspec +++ b/Firebase/Database/FirebaseDatabase.podspec @@ -20,6 +20,7 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.source = { :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '7.0' + s.osx.deployment_target = '10.10' s.source_files = '**/*.[mh]', 'third_party/Wrap-leveldb/APLevelDB.mm', diff --git a/Firebase/Database/Persistence/FLevelDBStorageEngine.m b/Firebase/Database/Persistence/FLevelDBStorageEngine.m index 4b324b8..e887c08 100644 --- a/Firebase/Database/Persistence/FLevelDBStorageEngine.m +++ b/Firebase/Database/Persistence/FLevelDBStorageEngine.m @@ -204,13 +204,13 @@ static NSString* trackedQueryKeysKey(NSUInteger trackedQueryId, NSString *key) { } + (NSString *) firebaseDir { -#if TARGET_OS_IPHONE + #if TARGET_OS_IOS NSArray *dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDir = [dirPaths objectAtIndex:0]; return [documentsDir stringByAppendingPathComponent:@"firebase"]; -#else // this must be OSX then + #elif TARGET_OS_OSX return [NSHomeDirectory() stringByAppendingPathComponent:@".firebase"]; -#endif + #endif } - (APLevelDB *)createDB:(NSString *)name { diff --git a/Firebase/Database/Realtime/FWebSocketConnection.m b/Firebase/Database/Realtime/FWebSocketConnection.m index 52e2296..ea64795 100644 --- a/Firebase/Database/Realtime/FWebSocketConnection.m +++ b/Firebase/Database/Realtime/FWebSocketConnection.m @@ -22,7 +22,7 @@ #import "FStringUtilities.h" #import "FIRDatabase_Private.h" -#if TARGET_OS_IPHONE +#if TARGET_OS_IOS #import #endif @@ -82,7 +82,7 @@ BOOL hasUiDeviceClass = NO; // Targetted compilation is ONLY for testing. UIKit is weak-linked in actual release build. - #if TARGET_OS_IPHONE + #if TARGET_OS_IOS Class uiDeviceClass = NSClassFromString(@"UIDevice"); if (uiDeviceClass) { systemVersion = [uiDeviceClass currentDevice].systemVersion; diff --git a/Firebase/Database/third_party/SocketRocket/FSRWebSocket.m b/Firebase/Database/third_party/SocketRocket/FSRWebSocket.m index c2b395c..54fcf27 100644 --- a/Firebase/Database/third_party/SocketRocket/FSRWebSocket.m +++ b/Firebase/Database/third_party/SocketRocket/FSRWebSocket.m @@ -16,7 +16,7 @@ #import "FSRWebSocket.h" -#if TARGET_OS_IPHONE +#if TARGET_OS_IOS #define HAS_ICU #endif @@ -26,9 +26,9 @@ #import #endif -#if TARGET_OS_IPHONE +#if TARGET_OS_IOS #import -#else +#elif TARGET_OS_OSX #import #endif diff --git a/Firebase/Storage/FIRStorageUtils.m b/Firebase/Storage/FIRStorageUtils.m index e0abe0a..5c6a1fa 100644 --- a/Firebase/Storage/FIRStorageUtils.m +++ b/Firebase/Storage/FIRStorageUtils.m @@ -12,7 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +#if TARGET_OS_IOS #import +#elif TARGET_OS_OSX +#import +#endif #import "FIRStorageUtils.h" @@ -118,4 +122,4 @@ NSString *const kGCSObjectAllowedCharacterSet = return [NSJSONSerialization dataWithJSONObject:dictionary options:0 error:nil]; } -@end \ No newline at end of file +@end diff --git a/Firebase/Storage/FirebaseStorage.podspec b/Firebase/Storage/FirebaseStorage.podspec index 69c6ddc..24fc2f8 100644 --- a/Firebase/Storage/FirebaseStorage.podspec +++ b/Firebase/Storage/FirebaseStorage.podspec @@ -20,6 +20,7 @@ Simplify your iOS development, grow your user base, and monetize more effectivel s.source = { :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '7.0' + s.osx.deployment_target = '10.10' s.source_files = '**/*.[mh]' s.public_header_files = @@ -35,7 +36,8 @@ Simplify your iOS development, grow your user base, and monetize more effectivel 'FIRStorageTaskSnapshot.h', 'FIRStorageUploadTask.h' - s.framework = 'MobileCoreServices' + s.ios.framework = 'MobileCoreServices' + s.osx.framework = 'CoreServices' # s.dependency 'FirebaseDev/Core' s.dependency 'GTMSessionFetcher/Core', '~> 1.1' s.xcconfig = { 'GCC_PREPROCESSOR_DEFINITIONS' => diff --git a/FirebaseDev.podspec b/FirebaseDev.podspec index f0999f0..1388e2a 100644 --- a/FirebaseDev.podspec +++ b/FirebaseDev.podspec @@ -16,6 +16,7 @@ Firebase Development CocoaPod including experimental and community supported fea s.source = { :git => 'https://github.com/firebase/firebase-ios-sdk.git', :tag => s.version.to_s } s.social_media_url = 'https://twitter.com/Firebase' s.ios.deployment_target = '8.0' + s.osx.deployment_target = '10.10' s.default_subspec = 'Root' s.preserve_paths = 'README.md' @@ -41,6 +42,14 @@ Firebase Development CocoaPod including experimental and community supported fea s.subspec 'Auth' do |sp| sp.source_files = 'Firebase/Auth/Source/**/*.[mh]' + sp.osx.exclude_files = + 'Firebase/Auth/Source/**/FIRAuthAppDelegateProxy.[mh]', + 'Firebase/Auth/Source/**/FIRAuthNotificationManager.[mh]', + 'Firebase/Auth/Source/**/FIRAuthAppCredentialManager.[mh]', + 'Firebase/Auth/Source/**/FIRAuthAPNSTokenManager.[mh]', + 'Firebase/Auth/Source/**/FIRAuthAPNSTokenType.[mh]', + 'Firebase/Auth/Source/**/FIRAuthAPNSToken.[mh]', + 'Firebase/Auth/Source/**/FIRPhoneAuthProvider.[mh]' sp.public_header_files = 'Firebase/Auth/Source/FirebaseAuth.h', 'Firebase/Auth/Source/FirebaseAuthVersion.h', @@ -99,6 +108,7 @@ Firebase Development CocoaPod including experimental and community supported fea end s.subspec 'Messaging' do |sp| + sp.platform = 'ios' sp.source_files = 'Firebase/Messaging/**/*.[mh]' sp.requires_arc = 'Firebase/Messaging/*.m' @@ -132,7 +142,8 @@ Firebase Development CocoaPod including experimental and community supported fea 'Firebase/Storage/FIRStorageTask.h', 'Firebase/Storage/FIRStorageTaskSnapshot.h', 'Firebase/Storage/FIRStorageUploadTask.h' - sp.framework = 'MobileCoreServices' + sp.ios.framework = 'MobileCoreServices' + sp.osx.framework = 'CoreServices' sp.dependency 'FirebaseDev/Core' sp.dependency 'GTMSessionFetcher/Core', '~> 1.1' sp.xcconfig = { 'OTHER_CFLAGS' => '-DFIRStorage_VERSION=' + s.version.to_s } diff --git a/test.sh b/test.sh index 975dbe3..9bb099d 100755 --- a/test.sh +++ b/test.sh @@ -13,30 +13,50 @@ set -eo pipefail -xcodebuild \ - -workspace Example/Firebase.xcworkspace \ - -scheme AllUnitTests \ - -sdk iphonesimulator \ - -destination 'platform=iOS Simulator,name=iPhone 7' \ - build \ - test \ - ONLY_ACTIVE_ARCH=YES \ - CODE_SIGNING_REQUIRED=NO \ - | xcpretty - -RESULT=$? +test_iOS() { + xcodebuild \ + -workspace Example/Firebase.xcworkspace \ + -scheme AllUnitTests_iOS \ + -sdk iphonesimulator \ + -destination 'platform=iOS Simulator,name=iPhone 7' \ + build \ + test \ + ONLY_ACTIVE_ARCH=YES \ + CODE_SIGNING_REQUIRED=NO \ + | xcpretty +} + +test_macOS() { + xcodebuild \ + -workspace Example/Firebase.xcworkspace \ + -scheme AllUnitTests_macOS \ + -sdk macosx \ + -destination 'platform=OS X,arch=x86_64' \ + build \ + test \ + ONLY_ACTIVE_ARCH=YES \ + CODE_SIGNING_REQUIRED=NO \ + | xcpretty +} + +test_iOS; RESULT=$? + if [ $RESULT == 65 ]; then echo "xcodebuild exited with 65, retrying" - xcodebuild \ - -workspace Example/Firebase.xcworkspace \ - -scheme AllUnitTests \ - -sdk iphonesimulator \ - -destination 'platform=iOS Simulator,name=iPhone 7' \ - build \ - test \ - ONLY_ACTIVE_ARCH=YES \ - CODE_SIGNING_REQUIRED=NO \ - | xcpretty -else - exit $RESULT + sleep 5 + + test_iOS; RESULT=$? fi + +if [ $RESULT != 0 ]; then exit $RESULT; fi + +test_macOS; RESULT=$? + +if [ $RESULT == 65 ]; then + echo "xcodebuild exited with 65, retrying" + sleep 5 + + test_macOS; RESULT=$? +fi + +exit $RESULT -- cgit v1.2.3