Manjana Chandrasekharan пре 5 година
родитељ
комит
b2e76c9acd
100 измењених фајлова са 2448 додато и 7891 уклоњено
  1. 1 2
      .github/ISSUE_TEMPLATE/bug_report.md
  2. 9 24
      .github/workflows/abtesting.yml
  3. 3 18
      .github/workflows/appdistribution.yml
  4. 47 0
      .github/workflows/archiving.yml
  5. 11 28
      .github/workflows/auth.yml
  6. 2 0
      .github/workflows/check.yml
  7. 8 23
      .github/workflows/core.yml
  8. 9 24
      .github/workflows/crashlytics.yml
  9. 12 26
      .github/workflows/database.yml
  10. 5 20
      .github/workflows/datatransport.yml
  11. 6 22
      .github/workflows/dynamiclinks.yml
  12. 1 1
      .github/workflows/firebasepod.yml
  13. 21 27
      .github/workflows/firestore.yml
  14. 6 21
      .github/workflows/functions.yml
  15. 3 18
      .github/workflows/inappmessaging.yml
  16. 8 10
      .github/workflows/installations.yml
  17. 4 19
      .github/workflows/instanceid.yml
  18. 38 24
      .github/workflows/messaging.yml
  19. 469 0
      .github/workflows/prerelease.yml
  20. 47 45
      .github/workflows/release.yml
  21. 11 26
      .github/workflows/remoteconfig.yml
  22. 4 4
      .github/workflows/spm.yml
  23. 12 27
      .github/workflows/storage.yml
  24. 1 1
      .github/workflows/symbolcollision.yml
  25. 15 15
      .github/workflows/zip.yml
  26. 6 3
      .gitignore
  27. 48 0
      .swiftpm/xcode/xcshareddata/xcschemes/Firebase-Package.xcscheme
  28. 52 0
      .swiftpm/xcode/xcshareddata/xcschemes/MessagingUnit.xcscheme
  29. 52 0
      .swiftpm/xcode/xcshareddata/xcschemes/analytics-import-test.xcscheme
  30. 12 36
      .travis.yml
  31. 2 3
      AddNewPod.md
  32. 0 24
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Podfile
  33. 0 5
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Gemfile
  34. 0 22
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Podfile
  35. 0 5
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Gemfile
  36. 0 23
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Podfile
  37. 0 5
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Gemfile
  38. 0 6
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Gemfile
  39. 0 22
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Podfile
  40. 1 1
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_frameworks/Gemfile
  41. 1 1
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_frameworks/Podfile
  42. 1 1
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_staticLibs/Gemfile
  43. 1 1
      CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_staticLibs/Podfile
  44. 1222 6872
      CoreOnly/NOTICES
  45. 4 40
      CoreOnly/Sources/Firebase.h
  46. 1 1
      CoreOnly/Tests/FirebasePodTest/Podfile
  47. 10 1
      Crashlytics/CHANGELOG.md
  48. 5 3
      Crashlytics/Crashlytics/Components/FIRCLSContext.m
  49. 2 2
      Crashlytics/Crashlytics/Controllers/FIRCLSReportUploader.m
  50. 4 1
      Crashlytics/Crashlytics/DataCollection/FIRCLSDataCollectionArbiter.m
  51. 3 4
      Crashlytics/Crashlytics/FIRCrashlytics.m
  52. 0 6
      Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h
  53. 4 0
      Crashlytics/Crashlytics/Models/FIRCLSSettings.m
  54. 10 2
      Crashlytics/Crashlytics/Settings/FIRCLSSettingsOnboardingManager.m
  55. 1 1
      Crashlytics/Crashlytics/Settings/Operations/FIRCLSDownloadAndSaveSettingsOperation.m
  56. 3 2
      Crashlytics/Crashlytics/Settings/Operations/FIRCLSNetworkOperation.m
  57. 8 2
      Crashlytics/Shared/FIRCLSConstants.h
  58. 13 2
      Crashlytics/Shared/FIRCLSConstants.m
  59. 1 1
      Crashlytics/Shared/FIRCLSFABHost.m
  60. 5 2
      Crashlytics/UnitTests/FIRCLSDataCollectionArbiterTest.m
  61. 4 0
      Crashlytics/UnitTests/FIRCLSSettingsTests.m
  62. 6 10
      Crashlytics/run
  63. BIN
      Crashlytics/upload-symbols
  64. 6 2
      Dangerfile
  65. 4 4
      Example/CoreDiagnostics/Tests/FIRCoreDiagnosticsTest.m
  66. 4 1
      Example/InstanceID/IntegrationTests/FIRInstanceIDIntegrationTests.m
  67. 1 1
      Example/InstanceID/Tests/FIRInstanceIDCheckinServiceTest.m
  68. 2 3
      Example/InstanceID/Tests/FIRInstanceIDCheckinStoreTest.m
  69. 1 1
      Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.m
  70. 11 1
      Example/InstanceID/Tests/FIRInstanceIDResultTest.m
  71. 2 2
      Example/InstanceID/Tests/FIRInstanceIDStoreTest.m
  72. 14 82
      Example/InstanceID/Tests/FIRInstanceIDTest.m
  73. 1 1
      Example/InstanceID/Tests/FIRInstanceIDTokenManager+Test.m
  74. 2 2
      Example/InstanceID/Tests/FIRInstanceIDTokenManagerTest.m
  75. 4 3
      Example/InstanceID/Tests/FIRInstanceIDTokenOperationsTest.m
  76. 37 98
      Firebase.podspec
  77. 4 22
      Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m
  78. 0 0
      Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h
  79. 7 0
      Firebase/InstanceID/CHANGELOG.md
  80. 7 11
      Firebase/InstanceID/FIRInstanceID+Private.m
  81. 44 58
      Firebase/InstanceID/FIRInstanceID.m
  82. 2 2
      Firebase/InstanceID/FIRInstanceIDAPNSInfo.m
  83. 3 3
      Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m
  84. 1 1
      Firebase/InstanceID/FIRInstanceIDAuthService.h
  85. 10 10
      Firebase/InstanceID/FIRInstanceIDAuthService.m
  86. 2 2
      Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m
  87. 1 1
      Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h
  88. 3 3
      Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m
  89. 4 4
      Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m
  90. 1 1
      Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h
  91. 2 2
      Firebase/InstanceID/FIRInstanceIDCheckinService.h
  92. 9 9
      Firebase/InstanceID/FIRInstanceIDCheckinService.m
  93. 10 11
      Firebase/InstanceID/FIRInstanceIDCheckinStore.m
  94. 1 1
      Firebase/InstanceID/FIRInstanceIDCombinedHandler.m
  95. 1 1
      Firebase/InstanceID/FIRInstanceIDConstants.m
  96. 2 2
      Firebase/InstanceID/FIRInstanceIDKeychain.m
  97. 1 1
      Firebase/InstanceID/FIRInstanceIDLogger.h
  98. 1 1
      Firebase/InstanceID/FIRInstanceIDLogger.m
  99. 7 8
      Firebase/InstanceID/FIRInstanceIDStore.m
  100. 1 1
      Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h

+ 1 - 2
.github/ISSUE_TEMPLATE/bug_report.md

@@ -25,9 +25,8 @@ template_path=.github/ISSUE_TEMPLATE/bug_report.md
 
   * Xcode version: _____
   * Firebase SDK version: _____
-  * Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
-  * Component version: _____
   * Installation method: `CocoaPods | Carthage | Zip file | Swift Package Manager` (select one)
+  * Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
 
 ### [REQUIRED] Step 2: Describe the problem
 

+ 9 - 24
.github/workflows/abtesting.yml

@@ -14,7 +14,7 @@ on:
 jobs:
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     strategy:
@@ -31,12 +31,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -44,7 +44,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -52,7 +52,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -60,7 +60,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -73,7 +73,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -94,14 +94,14 @@ jobs:
 
   abtesting-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -113,18 +113,3 @@ jobs:
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb \
           FirebaseABTesting.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseABTesting ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 3 - 18
.github/workflows/appdistribution.yml

@@ -14,7 +14,7 @@ on:
 jobs:
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macos-latest
     strategy:
@@ -30,14 +30,14 @@ jobs:
          --platforms=${{ matrix.target }}
 
   appdistribution-cron-only:
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -49,18 +49,3 @@ jobs:
       run: |
        scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAppDistribution.podspec \
          --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseAppDistribution ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 47 - 0
.github/workflows/archiving.yml

@@ -0,0 +1,47 @@
+name: archiving
+
+on:
+  pull_request:
+    paths:
+    - '.github/workflows/archiving.yml'
+  schedule:
+    # Run every day at 2am (PST) - cron uses UTC times
+    # This is set to 3 hours after zip workflow finishes so zip testing can run after.
+    - cron:  '0 10 * * *'
+
+jobs:
+  # Archive tests for pods that support iOS only.
+  pods-ios-only-cron:
+    # Don't run on private repo.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
+
+    runs-on: macOS-latest
+    strategy:
+      matrix:
+        # These need to be on a single line or else the formatting won't validate.
+        pod: ["FirebaseAppDistribution", "FirebaseDynamicLinks", "FirebaseInAppMessaging"]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: Setup project and archive
+      run: scripts/test_archiving.sh ${{ matrix.pod }} ios ArchiveOutputs/ios.xcarchive
+
+
+  # Archive tests for pods that support iOS, tvOS, and macOS.
+  pods-ios-tvos-macos-cron:
+    # Don't run on private repo.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule')
+
+    runs-on: macOS-latest
+    strategy:
+      matrix:
+        target: [ios, tvos, macos]
+        # These need to be on a single line or else the formatting won't validate.
+        pod: ["FirebaseABTesting", "FirebaseAuth", "FirebaseCore", "FirebaseCrashlytics", "FirebaseDatabase", "FirebaseFirestore", "FirebaseFunctions", "FirebaseMessaging", "FirebaseRemoteConfig", "FirebaseStorage", "GoogleDataTransport"]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Setup Bundler
+      run: scripts/setup_bundler.sh
+    - name: Setup project and archive
+      run: scripts/test_archiving.sh ${{ matrix.pod }} ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 11 - 28
.github/workflows/auth.yml

@@ -15,7 +15,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
 
@@ -32,7 +32,7 @@ jobs:
 
   integration-tests:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -65,12 +65,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -78,7 +78,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -86,7 +86,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -94,7 +94,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -107,7 +107,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -128,7 +128,7 @@ jobs:
 
   auth-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
@@ -136,7 +136,7 @@ jobs:
         # The macos and tvos tests can hang, and watchOS doesn't have tests.
         target: [ios, tvos --skip-tests, macos --skip-tests, watchos --skip-tests]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -145,21 +145,4 @@ jobs:
     - name: Setup Bundler
       run: scripts/setup_bundler.sh
     - name: PodLibLint Auth Cron
-      run: |
-        scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-        scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseAuth ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive
+      run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseAuth.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}

+ 2 - 0
.github/workflows/check.yml

@@ -4,6 +4,8 @@ on:
   pull_request:
     paths-ignore:
       - 'Firestore/**'
+  push:
+    branches: master
 
 jobs:
   check:

+ 8 - 23
.github/workflows/core.yml

@@ -14,7 +14,7 @@ on:
 jobs:
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
 
@@ -30,12 +30,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -43,7 +43,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -51,7 +51,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -59,7 +59,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -69,31 +69,16 @@ jobs:
     - name: Setup project and Build Catalyst
       run: scripts/test_catalyst.sh FirebaseCore build
 
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseCore ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive
-
   core-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           # Tests are skipped since the Swift tests need modules.
           '--skip-tests --use-libraries'
         ]

+ 9 - 24
.github/workflows/crashlytics.yml

@@ -16,7 +16,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
 
@@ -33,12 +33,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -46,7 +46,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -54,7 +54,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -63,7 +63,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -75,7 +75,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -103,14 +103,14 @@ jobs:
 
   crashlytics-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos, watchos --skip-tests] # The macos and tvos tests can hang
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -122,18 +122,3 @@ jobs:
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCrashlytics.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseCrashlytics.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseCrashlytics ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 12 - 26
.github/workflows/database.yml

@@ -16,7 +16,7 @@ on:
 jobs:
   unit:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     strategy:
       matrix:
@@ -30,7 +30,7 @@ jobs:
 
   integration:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     steps:
     - uses: actions/checkout@v2
@@ -42,12 +42,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -55,7 +55,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -63,7 +63,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -71,7 +71,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
@@ -81,9 +81,10 @@ jobs:
       # Only build the unit tests on Catalyst. Test stopped working when GHA moved to Xcode 11.4.1.
       run: scripts/test_catalyst.sh FirebaseDatabase build FirebaseDatabase-Unit-unit
 
+# Restore when FirebaseUI works with Firebase 7 (#6646)
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -105,7 +106,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     strategy:
@@ -120,13 +121,13 @@ jobs:
 
   database-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--skip-tests --use-modular-headers',
+          '--skip-tests --use-static-frameworks',
           '--skip-tests --use-libraries'
         ]
     needs: pod-lib-lint
@@ -136,18 +137,3 @@ jobs:
       run: scripts/setup_bundler.sh
     - name: PodLibLint database Cron
       run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseDatabase.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseDatabase ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 5 - 20
.github/workflows/datatransport.yml

@@ -13,7 +13,7 @@ on:
 jobs:
   pod_lib_lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macos-latest
     strategy:
@@ -29,7 +29,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -42,7 +42,7 @@ jobs:
 
   watchos-testapp:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -58,14 +58,14 @@ jobs:
 
   datatransport-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos, watchos]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod_lib_lint
@@ -76,18 +76,3 @@ jobs:
     - name: PodLibLint DataTransport Cron
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb GoogleDataTransport.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh GoogleDataTransport ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 6 - 22
.github/workflows/dynamiclinks.yml

@@ -14,7 +14,7 @@ on:
 jobs:
   pod_lib_lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -26,12 +26,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -39,13 +39,13 @@ jobs:
 
   dynamiclinks-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     strategy:
       matrix:
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod_lib_lint
@@ -58,7 +58,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -84,19 +84,3 @@ jobs:
     - name: Test swift quickstart
       if: ${{ always() }}
       run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks swift)
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseDynamicLinks ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive
-

+ 1 - 1
.github/workflows/firebasepod.yml

@@ -16,7 +16,7 @@ on:
 jobs:
   installation-test:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
 

+ 21 - 27
.github/workflows/firestore.yml

@@ -62,7 +62,7 @@ on:
 jobs:
   check:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     steps:
     - uses: actions/checkout@v2
@@ -80,7 +80,7 @@ jobs:
 
   cmake:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     needs: check
 
     strategy:
@@ -118,7 +118,7 @@ jobs:
 
   sanitizers:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     needs: check
 
@@ -149,7 +149,7 @@ jobs:
 
   xcodebuild:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     needs: check
 
@@ -169,9 +169,15 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     needs: check
+    strategy:
+      matrix:
+        flags: [
+          '--use-static-frameworks',
+          '',
+        ]
 
     steps:
     - uses: actions/checkout@v2
@@ -182,27 +188,29 @@ jobs:
     - name: Pod lib lint
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseFirestore.podspec \
+            ${{ matrix.flags }} \
             --platforms=ios \
             --allow-warnings
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
+    needs: check
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Build Test
       run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore iOS spmbuildonly
     - name: Swift Build
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestoreSwift iOS spmbuildonly
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestoreSwift-Beta iOS spmbuildonly
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -210,17 +218,18 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Build Test
       run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestore ${{ matrix.target }} spmbuildonly
     - name: Swift Build
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestoreSwift ${{ matrix.target }} spmbuildonly
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFirestoreSwift-Beta ${{ matrix.target }} spmbuildonly
 
+# Restore when FirebaseUI works with Firebase 7 (#6646)
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -240,18 +249,3 @@ jobs:
     - name: Test swift quickstart
       run: ([ -z $plist_secret ] ||
             scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore)
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseFirestore ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 6 - 21
.github/workflows/functions.yml

@@ -16,12 +16,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -29,7 +29,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -37,16 +37,16 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
       run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseFunctions ${{ matrix.target }} spmbuildonly
 
+# Restore when FirebaseUI works with Firebase 7 (#6646)
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
-
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -70,18 +70,3 @@ jobs:
     - name: Test swift quickstart
       run: ([ -z $plist_secret ] ||
             scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions swift)
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseFunctions ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 3 - 18
.github/workflows/inappmessaging.yml

@@ -15,12 +15,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -28,7 +28,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -51,18 +51,3 @@ jobs:
     - name: Test swift quickstart
       run: ([ -z $plist_secret ] ||
             scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging swift)
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseInAppMessaging ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 8 - 10
.github/workflows/installations.yml

@@ -13,7 +13,7 @@ on:
 jobs:
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     env:
@@ -36,18 +36,17 @@ jobs:
     - name: Build and test
       run: |
        export FIS_INTEGRATION_TESTS_REQUIRED=${{ steps.secrets.outputs.val }}
-       export FIS_ALLOWS_INCOMPATIBLE_IID_VERSION="1"
        scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseInstallations.podspec \
          --platforms=${{ matrix.target }} --ignore-local-podspecs=FirebaseInstanceID.podspec
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -55,7 +54,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -63,7 +62,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -85,7 +84,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
 
     runs-on: macOS-latest
     steps:
@@ -100,7 +99,7 @@ jobs:
       run: scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Installations swift
 
   installations-cron-only:
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macos-latest
     env:
@@ -110,7 +109,7 @@ jobs:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -129,7 +128,6 @@ jobs:
     - name: PodLibLint Installations Cron
       run: |
        export FIS_INTEGRATION_TESTS_REQUIRED=${{ steps.secrets.outputs.val }}
-       export FIS_ALLOWS_INCOMPATIBLE_IID_VERSION="1"
        scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseInstallations.podspec \
          --platforms=${{ matrix.target }} ${{ matrix.flags }} \
          --ignore-local-podspecs=FirebaseInstanceID.podspec

+ 4 - 19
.github/workflows/instanceid.yml

@@ -15,7 +15,7 @@ on:
 jobs:
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -41,7 +41,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
@@ -53,7 +53,7 @@ jobs:
 
   instanceid-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -62,7 +62,7 @@ jobs:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--use-modular-headers',
+          '--use-static-frameworks',
           '--use-libraries'
         ]
     needs: pod-lib-lint
@@ -82,18 +82,3 @@ jobs:
       run: |
         export FIR_IID_INTEGRATION_TESTS_REQUIRED=${{ steps.secrets.outputs.val }}
         FIR_IID_INTEGRATION_TESTS_REQUIRED="$plist_secret" scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseInstanceID.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseInstanceID ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 38 - 24
.github/workflows/messaging.yml

@@ -21,7 +21,7 @@ jobs:
 
   messaging:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
     runs-on: macos-latest
@@ -40,7 +40,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     strategy:
@@ -53,9 +53,38 @@ jobs:
     - name: Build and test
       run: scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseMessaging.podspec --platforms=${{ matrix.target }}
 
+  spm:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Xcode 12
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
+    - name: Initialize xcodebuild
+      run: xcodebuild -list
+    - name: iOS Unit Tests
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh MessagingUnit iOS spm
+
+  spm-cron:
+    # Don't run on private repo.
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
+    runs-on: macOS-latest
+    strategy:
+      matrix:
+        target: [tvOS, macOS, catalyst]
+    steps:
+    - uses: actions/checkout@v2
+    - name: Xcode 12
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
+    - name: Initialize xcodebuild
+      run: xcodebuild -list
+    - name: Unit Tests
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh MessagingUnit ${{ matrix.target }} spm
+
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
@@ -66,7 +95,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -90,7 +119,7 @@ jobs:
 
   pod-lib-lint-watchos:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     steps:
@@ -103,7 +132,7 @@ jobs:
 
   messaging-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     strategy:
       matrix:
@@ -122,12 +151,12 @@ jobs:
 
   messaging-watchos-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     strategy:
       matrix:
         flags: [
-          '--skip-tests --use-modular-headers',
+          '--use-static-frameworks',
           '--skip-tests --use-libraries'
         ]
     needs: pod-lib-lint-watchos
@@ -140,7 +169,7 @@ jobs:
 
   messaging-sample-build-test:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
     runs-on: macos-latest
@@ -156,18 +185,3 @@ jobs:
       run: scripts/install_prereqs.sh MessagingSample iOS
     - name: Build
       run: ([ -z $plist_secret ] || scripts/build.sh MessagingSample iOS)
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseMessaging ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 469 - 0
.github/workflows/prerelease.yml

@@ -0,0 +1,469 @@
+name: prerelease
+
+on:
+  pull_request:
+    paths:
+    - '.github/workflows/prerelease.yml'
+  workflow_dispatch:
+  schedule:
+    # Run every day at 11pm (PST) - cron uses UTC times
+    - cron:  '0 7 * * *'
+
+jobs:
+  buildup_SpecsReleasing_repo:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    env:
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      local_repo: specstesting
+      local_sdk_repo_dir: /tmp/test/firebase-ios-sdk
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: |
+         scripts/decrypt_gha_secret.sh scripts/gha-encrypted/oss-bot-access.txt.gpg \
+         oss-bot-access.txt "$bot_token_secret"
+         scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+         bot-access.txt "$bot_token_secret"
+    - name: Update SpecsReleasing repo setup
+      run: |
+         ossbotaccess=`cat oss-bot-access.txt`
+         BOT_TOKEN="${ossbotaccess}" test_version="${nightly_version}" sdk_version_config="${GITHUB_WORKSPACE}/scripts/create_spec_repo/RC_firebase_sdk.textproto" scripts/release_testing_setup.sh RC_testing
+    - name: Update SpecsReleasing repo
+      run: |
+        botaccess=`cat bot-access.txt`
+        cd scripts/create_spec_repo/
+        swift build
+        pod repo add --silent "${local_repo}" https://"$botaccess"@github.com/FirebasePrivate/SpecsReleasing.git
+        BOT_TOKEN="${botaccess}"  .build/debug/spec-repo-builder --sdk-repo "${local_sdk_repo_dir}" --local-spec-repo-name "${local_repo}" --sdk-repo-name SpecsReleasing --pod-sources 'https://${BOT_TOKEN}@github.com/FirebasePrivate/SpecsReleasing' --pod-sources "https://github.com/firebase/SpecsStaging.git" --pod-sources "https://cdn.cocoapods.org/"
+    - name: Clean Artifacts
+      if: ${{ always() }}
+      run: |
+        pod repo remove "${local_repo}"
+        rm -rf bot-access.txt
+
+  abtesting_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh abtesting prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-abtesting.plist.gpg \
+          quickstart-ios/abtesting/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh ABTesting)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_abtesting
+        path: quickstart-ios/
+
+  auth_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Authentication prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-auth.plist.gpg \
+          quickstart-ios/authentication/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Authentication)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh authentication release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_auth
+        path: quickstart-ios/
+
+  crashlytics_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh Crashlytics prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-crashlytics.plist.gpg \
+          quickstart-ios/crashlytics/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: |
+        mkdir -p quickstart-ios/crashlytics/Pods/FirebaseCrashlytics
+        # Set the deployed pod location of run and upload-symbols with the development pod version.
+        cp Crashlytics/run quickstart-ios/crashlytics/Pods/FirebaseCrashlytics/
+        cp Crashlytics/upload-symbols quickstart-ios/crashlytics/Pods/FirebaseCrashlytics/
+        ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Crashlytics swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh crashlytics release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_crashlytics
+        path: quickstart-ios/
+
+  database_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh database prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-database.plist.gpg \
+          quickstart-ios/database/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Database swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh database release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_database
+        path: quickstart-ios/
+
+  dynamiclinks_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh dynamiclinks prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \
+          quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret"
+    - name: Update Environment Variable For DynamicLinks
+      run: |
+        sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements
+        sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m
+        sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks)
+    - name: Test swift quickstart
+      if: ${{ always() }}
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh DynamicLinks swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh dynamiclinks release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_dynamiclinks
+        path: quickstart-ios/
+
+  firestore_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh firestore prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-firestore.plist.gpg \
+          quickstart-ios/firestore/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Firestore)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh firestore release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_firestore
+        path: quickstart-ios/
+
+  functions_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh functions prerelease_testing
+    - name: install secret googleservice-info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-functions.plist.gpg \
+          quickstart-ios/functions/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Setup custom URL scheme
+      run: sed -i '' 's/REVERSED_CLIENT_ID/com.googleusercontent.apps.1025801074639-6p6ebi8amuklcjrto20gvpe295smm8u6/' quickstart-ios/functions/FunctionsExample/Info.plist
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Functions swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh functions release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_functions
+        path: quickstart-ios/
+
+  inappmessaging_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh inappmessaging prerelease_testing
+    - name: install secret googleservice-info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-inappmessaging.plist.gpg \
+          quickstart-ios/inappmessaging/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh InAppMessaging swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh inappmessaging release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_inappmessaging
+        path: quickstart-ios/
+
+  messaging_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh messaging prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-messaging.plist.gpg \
+          quickstart-ios/messaging/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] ||
+            scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Messaging swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh messaging release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_messaging
+        path: quickstart-ios/
+
+  remoteconfig_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
+          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test Swift Quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_config
+        path: quickstart-ios/
+
+  storage_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsReleasing_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      testing_repo_dir: "/tmp/test/"
+      testing_repo: "firebase-ios-sdk"
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh storage prerelease_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-storage.plist.gpg \
+          quickstart-ios/storage/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test objc quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage)
+    - name: Test swift quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Storage swift)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh storage release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_storage
+        path: quickstart-ios/

+ 47 - 45
.github/workflows/release.yml

@@ -4,7 +4,8 @@ on:
   pull_request:
     paths:
     - '.github/workflows/release.yml'
-    - 'scripts/create_spec_repo/*'
+    - 'scripts/create_spec_repo/**'
+  workflow_dispatch:
   schedule:
     # Run every day at 11pm (PST) - cron uses UTC times
     - cron:  '0 7 * * *'
@@ -12,7 +13,7 @@ on:
 jobs:
   buildup_SpecsTesting_repo:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     env:
       bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       local_repo: specstesting
@@ -44,43 +45,10 @@ jobs:
       run: |
         pod repo remove "${local_repo}"
         rm -rf bot-access.txt
-  remoteconfig_quickstart:
-    # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
-    needs: buildup_SpecsTesting_repo
-    env:
-      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
-    runs-on: macOS-latest
-    steps:
-    - uses: actions/checkout@v2
-    - name: Get token
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
-          bot-access.txt "$bot_token_secret"
-    - name: Setup testing repo and quickstart
-      run: |
-          botaccess=`cat bot-access.txt`
-          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
-    - name: Install Secret GoogleService-Info.plist
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
-          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
-    - name: Install Secret FIREGSignInInfo.h
-      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
-          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
-    - name: Test Swift Quickstart
-      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
-    - name: Remove data before upload
-      run: scripts/remove_data.sh config release_testing
-    - uses: actions/upload-artifact@v2
-      if: ${{ failure() }}
-      with:
-        name: quickstart_artifacts_config
-        path: quickstart-ios/
 
   abtesting_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -114,7 +82,7 @@ jobs:
 
   auth_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -148,7 +116,7 @@ jobs:
 
   crashlytics_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -191,7 +159,7 @@ jobs:
 
   database_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -229,7 +197,7 @@ jobs:
 
   dynamiclinks_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -273,7 +241,7 @@ jobs:
 
   firestore_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -310,7 +278,7 @@ jobs:
 
   functions_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -352,7 +320,7 @@ jobs:
 
   inappmessaging_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -392,7 +360,7 @@ jobs:
 
   messaging_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -430,9 +398,43 @@ jobs:
         name: quickstart_artifacts_messaging
         path: quickstart-ios/
 
+  remoteconfig_quickstart:
+    # Don't run on private repo unless it is a PR.
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
+    needs: buildup_SpecsTesting_repo
+    env:
+      plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+      bot_token_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
+    runs-on: macOS-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: Get token
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/bot-access.txt.gpg \
+          bot-access.txt "$bot_token_secret"
+    - name: Setup testing repo and quickstart
+      run: |
+          botaccess=`cat bot-access.txt`
+          BOT_TOKEN="${botaccess}" scripts/setup_quickstart.sh config nightly_release_testing
+    - name: Install Secret GoogleService-Info.plist
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-config.plist.gpg \
+          quickstart-ios/config/GoogleService-Info.plist "$plist_secret"
+    - name: Install Secret FIREGSignInInfo.h
+      run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/FIREGSignInInfo.h.gpg \
+          quickstart-ios/TestUtils/FIREGSignInInfo.h "$signin_secret"
+    - name: Test Swift Quickstart
+      run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart.sh Config)
+    - name: Remove data before upload
+      run: scripts/remove_data.sh config release_testing
+    - uses: actions/upload-artifact@v2
+      if: ${{ failure() }}
+      with:
+        name: quickstart_artifacts_config
+        path: quickstart-ios/
+
   storage_quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch'
     needs: buildup_SpecsTesting_repo
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

+ 11 - 26
.github/workflows/remoteconfig.yml

@@ -16,7 +16,7 @@ jobs:
 
   remoteconfig:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
     runs-on: macos-latest
@@ -44,7 +44,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     strategy:
@@ -60,12 +60,12 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -73,7 +73,7 @@ jobs:
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -81,7 +81,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
@@ -89,7 +89,7 @@ jobs:
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
@@ -101,7 +101,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -121,7 +121,7 @@ jobs:
 
   sample-build-test:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macos-latest
     steps:
     - uses: actions/checkout@v2
@@ -134,13 +134,13 @@ jobs:
 
   remoteconfig-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--skip-tests --use-modular-headers',
+          '--skip-tests --use-static-frameworks',
           '--skip-tests --use-libraries'
         ]
     needs: pod-lib-lint
@@ -151,18 +151,3 @@ jobs:
     - name: PodLibLint RemoteConfig Cron
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseRemoteConfig.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseRemoteConfig ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 4 - 4
.github/workflows/spm.yml

@@ -16,12 +16,12 @@ on:
 jobs:
   swift-build-run:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
@@ -29,7 +29,7 @@ jobs:
 
   cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
 
     runs-on: macOS-latest
     strategy:
@@ -40,7 +40,7 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests

+ 12 - 27
.github/workflows/storage.yml

@@ -16,7 +16,7 @@ on:
 jobs:
   storage:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
     runs-on: macos-latest
@@ -43,22 +43,22 @@ jobs:
 
   spm:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: iOS Unit Tests
       run: scripts/third_party/travis/retry.sh ./scripts/build.sh StorageUnit iOS spm
     - name: Swift Build
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseStorageSwift iOS spmbuildonly
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseStorageSwift-Beta iOS spmbuildonly
 
   spm-cron:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macOS-latest
     strategy:
       matrix:
@@ -66,17 +66,17 @@ jobs:
     steps:
     - uses: actions/checkout@v2
     - name: Xcode 12
-      run: sudo xcode-select -s /Applications/Xcode_12_beta.app/Contents/Developer
+      run: sudo xcode-select -s /Applications/Xcode_12.app/Contents/Developer
     - name: Initialize xcodebuild
       run: xcodebuild -list
     - name: Unit Tests
       run: scripts/third_party/travis/retry.sh ./scripts/build.sh StorageUnit ${{ matrix.target }} spm
     - name: Swift Build
-      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseStorageSwift ${{ matrix.target }} spmbuildonly
+      run: scripts/third_party/travis/retry.sh ./scripts/build.sh FirebaseStorageSwift-Beta ${{ matrix.target }} spmbuildonly
 
   catalyst:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
@@ -88,7 +88,7 @@ jobs:
 
   quickstart:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
       signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -110,7 +110,7 @@ jobs:
 
   pod-lib-lint:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     strategy:
@@ -129,13 +129,13 @@ jobs:
 
   storage-cron-only:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     runs-on: macos-latest
     strategy:
       matrix:
         target: [ios, tvos, macos]
         flags: [
-          '--skip-tests --use-modular-headers',
+          '--skip-tests --use-static-frameworks',
           '--skip-tests --use-libraries'
         ]
     needs: pod-lib-lint
@@ -147,18 +147,3 @@ jobs:
       run: |
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseStorage.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
         scripts/third_party/travis/retry.sh scripts/pod_lib_lint.rb FirebaseStorage.podspec --platforms=${{ matrix.target }} ${{ matrix.flags }}
-
-  archive-cron:
-    # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
-
-    runs-on: macOS-latest
-    strategy:
-      matrix:
-        target: [ios, tvos, macos]
-    steps:
-    - uses: actions/checkout@v2
-    - name: Setup Bundler
-      run: scripts/setup_bundler.sh
-    - name: Setup project and archive
-      run: scripts/test_archiving.sh FirebaseStorage ${{ matrix.target }} ArchiveOutputs/${{ matrix.target }}.xcarchive

+ 1 - 1
.github/workflows/symbolcollision.yml

@@ -14,7 +14,7 @@ on:
 jobs:
   installation-test:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
 
     steps:

+ 15 - 15
.github/workflows/zip.yml

@@ -3,10 +3,10 @@ name: zip
 on:
   pull_request:
     paths:
-    - 'ZipBuilder/**'
+    - 'ReleaseTooling/**'
     - '.github/workflows/zip.yml'
     # Don't run based on any markdown only changes.
-    - '!ZipBuilder/*.md'
+    - '!ReleaseTooling/*.md'
   schedule:
     # Run every day at midnight(PST) - cron uses UTC times
     - cron:  '0 8 * * *'
@@ -14,18 +14,18 @@ on:
 jobs:
   build:
     # Don't run on private repo unless it is a PR.
-    if: github.repository != 'FirebasePrivate/firebase-ios-sdk' || github.event_name == 'pull_request'
+    if: (github.repository == 'Firebase/firebase-ios-sdk' && github.event_name == 'schedule') || github.event_name == 'pull_request'
     runs-on: macOS-latest
     steps:
     - uses: actions/checkout@v2
     - name: Build
       run: |
-        cd ZipBuilder
+        cd ReleaseTooling
         swift build -v
 
   package:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: build
     runs-on: macOS-latest
     steps:
@@ -45,7 +45,7 @@ jobs:
 
   quickstart_framework_abtesting:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -90,7 +90,7 @@ jobs:
 
   quickstart_framework_auth:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -134,7 +134,7 @@ jobs:
 
   quickstart_framework_config:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -175,7 +175,7 @@ jobs:
 
   quickstart_framework_crashlytics:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -225,7 +225,7 @@ jobs:
 
   quickstart_framework_database:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -270,7 +270,7 @@ jobs:
 
   quickstart_framework_dynamiclinks:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -320,7 +320,7 @@ jobs:
 
   quickstart_framework_firestore:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -363,7 +363,7 @@ jobs:
 
   quickstart_framework_inappmessaging:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -409,7 +409,7 @@ jobs:
 
   quickstart_framework_messaging:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}
@@ -454,7 +454,7 @@ jobs:
 
   quickstart_framework_storage:
     # Don't run on private repo.
-    if: github.event_name == 'schedule' && github.repository != 'FirebasePrivate/firebase-ios-sdk'
+    if: github.event_name == 'schedule' && github.repository == 'Firebase/firebase-ios-sdk'
     needs: package
     env:
       plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }}

+ 6 - 3
.gitignore

@@ -29,6 +29,9 @@ FirebaseStorage/Tests/Integration/Credentials.h
 FirebaseStorage/Tests/SwiftIntegration/Credentials.swift
 FirebaseStorageSwift/Tests/Integration/Credentials.swift
 
+# FirebaseSegmentation integration tests GoogleService-Info.plist
+FirebaseSegmentation/Tests/Sample/GoogleService-Info.plist
+
 Secrets.tar
 
 # OS X
@@ -54,9 +57,9 @@ DerivedData
 
 # Swift Package Manager
 */.build
-ZipBuilder/Packages
-ZipBuilder/*.xcodeproj
-ZipBuilder/Package.resolved
+ReleaseTooling/Packages
+ReleaseTooling/*.xcodeproj
+ReleaseTooling/Package.resolved
 
 # Mint package manager
 Mint

+ 48 - 0
.swiftpm/xcode/xcshareddata/xcschemes/Firebase-Package.xcscheme

@@ -482,6 +482,34 @@
                ReferencedContainer = "container:">
             </BuildableReference>
          </BuildActionEntry>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "FirebaseInstanceID"
+               BuildableName = "FirebaseInstanceID"
+               BlueprintName = "FirebaseInstanceID"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </BuildActionEntry>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "FirebaseMessaging"
+               BuildableName = "FirebaseMessaging"
+               BlueprintName = "FirebaseMessaging"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </BuildActionEntry>
       </BuildActionEntries>
    </BuildAction>
    <TestAction
@@ -630,6 +658,26 @@
                ReferencedContainer = "container:">
             </BuildableReference>
          </TestableReference>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "analytics-import-test"
+               BuildableName = "analytics-import-test"
+               BlueprintName = "analytics-import-test"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </TestableReference>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "MessagingUnit"
+               BuildableName = "MessagingUnit"
+               BlueprintName = "MessagingUnit"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </TestableReference>
       </Testables>
    </TestAction>
    <LaunchAction

+ 52 - 0
.swiftpm/xcode/xcshareddata/xcschemes/MessagingUnit.xcscheme

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1200"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "MessagingUnit"
+               BuildableName = "MessagingUnit"
+               BlueprintName = "MessagingUnit"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 52 - 0
.swiftpm/xcode/xcshareddata/xcschemes/analytics-import-test.xcscheme

@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1200"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+         <TestableReference
+            skipped = "NO">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "analytics-import-test"
+               BuildableName = "analytics-import-test"
+               BlueprintName = "analytics-import-test"
+               ReferencedContainer = "container:">
+            </BuildableReference>
+         </TestableReference>
+      </Testables>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Release"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>

+ 12 - 36
.travis.yml

@@ -107,6 +107,7 @@ jobs:
         - ./scripts/if_changed.sh ./scripts/install_prereqs.sh # Start integration test server
       script:
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec
+        - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-static-frameworks
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-libraries
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseFunctions.podspec --use-modular-headers
 
@@ -175,6 +176,9 @@ jobs:
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=ios
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=tvos
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --platforms=macos
+        - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks --platforms=ios
+        - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks  --platforms=tvos
+        - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-static-frameworks  --platforms=macos
 
     - stage: test
       if: type = cron
@@ -182,9 +186,9 @@ jobs:
         - PROJECT=GoogleUtilitiesCron METHOD=pod-lib-lint
       script:
 
-        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=ios
-        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=tvos
-        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=macos
+        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=ios --skip-tests
+        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=tvos --skip-tests
+        - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-libraries --platforms=macos --skip-tests
         - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=ios
         - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=tvos
         - travis_retry ./scripts/pod_lib_lint.rb GoogleUtilities.podspec --use-modular-headers --platforms=macos
@@ -215,6 +219,7 @@ jobs:
         - PROJECT=Firebase METHOD=pod-lib-lint
       script:
         - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec
+        - travis_retry ./scripts/if_changed.sh ./scripts/pod_lib_lint.rb FirebaseInAppMessaging.podspec --use-static-frameworks
 
     # pod lib lint to check build and warnings for static library build - only on cron jobs
     - stage: test
@@ -234,54 +239,24 @@ jobs:
 
     # Validate Cocoapods configurations
     # This may take long time, so we would like to run it only once all other tests pass
-    # Validate Cocoapods 1.7.0 compatibility
     - stage: test
       if: type = cron
       env:
-        - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_frameworks
+        - POD_CONFIG_DIR=Cocoapods_multiprojects_frameworks
       script:
         - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
 
     - stage: test
       if: type = cron
       env:
-        - POD_CONFIG_DIR=Cocoapods1_7_0_frameworks
-      script:
-        - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
-
-    - stage: test
-      if: type = cron
-      env:
-        - POD_CONFIG_DIR=Cocoapods1_7_0_multiprojects_staticLibs
-      script:
-        - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
-
-    - stage: test
-      if: type = cron
-      env:
-        - POD_CONFIG_DIR=Cocoapods1_7_0_staticLibs
-      script:
-        - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
-
-    # Validate Cocoapods 1.6.1 compatibility
-    - stage: test
-      if: type = cron
-      env:
-        - POD_CONFIG_DIR=Cocoapods1_6_1_frameworks
-      script:
-        - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
-
-    - stage: test
-      if: type = cron
-      env:
-        - POD_CONFIG_DIR=Cocoapods1_6_1_staticLibs
+        - POD_CONFIG_DIR=Cocoapods_multiprojects_staticLibs
       script:
         - travis_retry ./CocoapodsIntegrationTest/scripts/build_with_environment.sh --gemfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Gemfile --podfile=./CocoapodsIntegrationTest/TestEnvironments/${POD_CONFIG_DIR}/Podfile
 
   allow_failures:
     # Run fuzz tests only on cron jobs.
     - stage: test
-      if: type = cron
+#      if: type = cron
       env:
         - PROJECT=Firestore PLATFORM=iOS METHOD=fuzz
       before_install:
@@ -293,3 +268,4 @@ jobs:
 branches:
   only:
     - master
+    - firebase7-main

+ 2 - 3
AddNewPod.md

@@ -13,8 +13,6 @@ detailed instructions. Some Firebase specific guidance below:
 * `s.deployment_target` - Ideally should include ios, osx, and tvos. See
 [FirebaseCore.podspec](FirebaseCore.podspec) for the current Firebase minimum version settings.
 
-* `s.static_framework` - By default, Firebase pods should be static frameworks.
-
 * `s.dependency` - Dependencies on other Firebase pods and pods in this repo should specify a
 version and allow minor version updates - like `s.dependency 'FirebaseCore', '~> 6.6'`. When
 initially defined, choose the most recently released minor version of the dependency.
@@ -72,7 +70,8 @@ For top-level Firebase pods that map to documented products:
 * Update [Firebase.podspec](Firebase.podspec).
 * Register library via registerInternalLibrary API like this
   [Storage example](FirebaseStorage/Sources/FIRStorageComponent.m).
-* Add to the [ZipBuilder pod list](ZipBuilder/Sources/ZipBuilder/FirebasePods.swift).
+* When ready to release with Firebase, add to the
+  [Firebase manifest](ReleaseTooling/Sources/FirebaseManifest/FirebaseManifest.swift).
 * Add a [quickstart](https://github.com/firebase/quickstart-ios).
 
 ## Review and Release

+ 0 - 24
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Podfile

@@ -1,24 +0,0 @@
-# Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
-
-target 'CocoapodsIntegrationTest' do
-  use_frameworks!
-
-  pod 'FirebaseABTesting', :path => '../'
-  pod 'FirebaseAppDistribution', :path => '../'
-  pod 'FirebaseCore', :path => '../'
-  pod 'FirebaseCoreDiagnostics', :path => '../'
-  pod 'FirebaseCrashlytics', :path => '../'
-  pod 'FirebaseAuth', :path => '../'
-  pod 'FirebaseDatabase', :path => '../'
-  pod 'FirebaseDynamicLinks', :path => '../'
-  pod 'FirebaseFirestore', :path => '../'
-  pod 'FirebaseFunctions', :path => '../'
-  pod 'FirebaseInAppMessaging', :path => '../'
-  pod 'FirebaseInstallations', :path => '../'
-  pod 'FirebaseInstanceID', :path => '../'
-  pod 'FirebaseMessaging', :path => '../'
-  pod 'FirebaseStorage', :path => '../'
-  pod 'GoogleDataTransport', :path => '../'
-  pod 'GoogleUtilities', :path => '../'
-end

+ 0 - 5
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Gemfile

@@ -1,5 +0,0 @@
-# frozen_string_literal: true
-
-source "https://rubygems.org"
-
-gem 'cocoapods', "=1.6.1"

+ 0 - 22
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_staticLibs/Podfile

@@ -1,22 +0,0 @@
-# Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
-
-target 'CocoapodsIntegrationTest' do
-  pod 'FirebaseABTesting', :path => '../'
-  pod 'FirebaseAppDistribution', :path => '../'
-  pod 'FirebaseCore', :path => '../'
-  pod 'FirebaseCoreDiagnostics', :path => '../'
-  pod 'FirebaseCrashlytics', :path => '../'
-  pod 'FirebaseAuth', :path => '../'
-  pod 'FirebaseDatabase', :path => '../'
-  pod 'FirebaseDynamicLinks', :path => '../'
-  pod 'FirebaseFirestore', :path => '../'
-  pod 'FirebaseFunctions', :path => '../'
-  pod 'FirebaseInAppMessaging', :path => '../'
-  pod 'FirebaseInstallations', :path => '../'
-  pod 'FirebaseInstanceID', :path => '../'
-  pod 'FirebaseMessaging', :path => '../'
-  pod 'FirebaseStorage', :path => '../'
-  pod 'GoogleDataTransport', :path => '../'
-  pod 'GoogleUtilities', :path => '../'
-end

+ 0 - 5
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Gemfile

@@ -1,5 +0,0 @@
-# frozen_string_literal: true
-
-source "https://rubygems.org"
-
-gem 'cocoapods', "~>1.7.0.beta"

+ 0 - 23
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_frameworks/Podfile

@@ -1,23 +0,0 @@
-# Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
-
-target 'CocoapodsIntegrationTest' do
-  use_frameworks!
-  pod 'FirebaseABTesting', :path => '../'
-  pod 'FirebaseAppDistribution', :path => '../'
-  pod 'FirebaseCore', :path => '../'
-  pod 'FirebaseCoreDiagnostics', :path => '../'
-  pod 'FirebaseCrashlytics', :path => '../'
-  pod 'FirebaseAuth', :path => '../'
-  pod 'FirebaseDatabase', :path => '../'
-  pod 'FirebaseDynamicLinks', :path => '../'
-  pod 'FirebaseFirestore', :path => '../'
-  pod 'FirebaseFunctions', :path => '../'
-  pod 'FirebaseInAppMessaging', :path => '../'
-  pod 'FirebaseInstallations', :path => '../'
-  pod 'FirebaseInstanceID', :path => '../'
-  pod 'FirebaseMessaging', :path => '../'
-  pod 'FirebaseStorage', :path => '../'
-  pod 'GoogleDataTransport', :path => '../'
-  pod 'GoogleUtilities', :path => '../'
-end

+ 0 - 5
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Gemfile

@@ -1,5 +0,0 @@
-# frozen_string_literal: true
-
-source "https://rubygems.org"
-
-gem 'cocoapods', "~>1.7.0.beta"

+ 0 - 6
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Gemfile

@@ -1,6 +0,0 @@
-# frozen_string_literal: true
-
-source "https://rubygems.org"
-
-# Don't allow 1.7.0.rc.1 because of https://github.com/CocoaPods/CocoaPods/issues/8765
-gem 'cocoapods', "!=1.7.0.rc.1"

+ 0 - 22
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_staticLibs/Podfile

@@ -1,22 +0,0 @@
-# Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
-
-target 'CocoapodsIntegrationTest' do
-  pod 'FirebaseABTesting', :path => '../'
-  pod 'FirebaseAppDistribution', :path => '../'
-  pod 'FirebaseCore', :path => '../'
-  pod 'FirebaseCoreDiagnostics', :path => '../'
-  pod 'FirebaseCrashlytics', :path => '../'
-  pod 'FirebaseAuth', :path => '../'
-  pod 'FirebaseDatabase', :path => '../'
-  pod 'FirebaseDynamicLinks', :path => '../'
-  pod 'FirebaseFirestore', :path => '../'
-  pod 'FirebaseFunctions', :path => '../'
-  pod 'FirebaseInAppMessaging', :path => '../'
-  pod 'FirebaseInstallations', :path => '../'
-  pod 'FirebaseInstanceID', :path => '../'
-  pod 'FirebaseMessaging', :path => '../'
-  pod 'FirebaseStorage', :path => '../'
-  pod 'GoogleDataTransport', :path => '../'
-  pod 'GoogleUtilities', :path => '../'
-end

+ 1 - 1
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_6_1_frameworks/Gemfile → CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_frameworks/Gemfile

@@ -2,4 +2,4 @@
 
 source "https://rubygems.org"
 
-gem 'cocoapods', "=1.6.1"
+gem 'cocoapods', '1.10.0.rc.1'

+ 1 - 1
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_frameworks/Podfile → CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_frameworks/Podfile

@@ -1,5 +1,5 @@
 # Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
+platform :ios, '10.0'
 
 target 'CocoapodsIntegrationTest' do
   # Comment the next line if you don't want to use dynamic frameworks

+ 1 - 1
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Gemfile → CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_staticLibs/Gemfile

@@ -3,4 +3,4 @@
 source "https://rubygems.org"
 
 # Don't allow 1.7.0.rc.1 because of https://github.com/CocoaPods/CocoaPods/issues/8765
-gem 'cocoapods', "!=1.7.0.rc.1"
+gem 'cocoapods', '1.10.0.rc.1'

+ 1 - 1
CocoapodsIntegrationTest/TestEnvironments/Cocoapods1_7_0_multiprojects_staticLibs/Podfile → CocoapodsIntegrationTest/TestEnvironments/Cocoapods_multiprojects_staticLibs/Podfile

@@ -1,5 +1,5 @@
 # Uncomment the next line to define a global platform for your project
-platform :ios, '9.0'
+platform :ios, '10.0'
 
 target 'CocoapodsIntegrationTest' do
   pod 'FirebaseABTesting', :path => '../'

Разлика између датотеке није приказан због своје велике величине
+ 1222 - 6872
CoreOnly/NOTICES


+ 4 - 40
CoreOnly/Sources/Firebase.h

@@ -66,6 +66,10 @@ FirebaseAnalytics dependency to your project to ensure Firebase In App Messaging
     #endif
   #endif
 
+  #if __has_include(<FirebaseInstallations/FirebaseInstallations.h>)
+    #import <FirebaseInstallations/FirebaseInstallations.h>
+  #endif
+
   #if __has_include(<FirebaseInstanceID/FirebaseInstanceID.h>)
     #import <FirebaseInstanceID/FirebaseInstanceID.h>
   #endif
@@ -89,50 +93,10 @@ FirebaseAnalytics dependency to your project to ensure Messaging works as intend
     #import <FirebaseMLModelInterpreter/FirebaseMLModelInterpreter.h>
   #endif
 
-  #if __has_include(<FirebaseMLNLLanguageID/FirebaseMLNLLanguageID.h>)
-    #import <FirebaseMLNLLanguageID/FirebaseMLNLLanguageID.h>
-  #endif
-
-  #if __has_include(<FirebaseMLNLSmartReply/FirebaseMLNLSmartReply.h>)
-    #import <FirebaseMLNLSmartReply/FirebaseMLNLSmartReply.h>
-  #endif
-
-  #if __has_include(<FirebaseMLNLTranslate/FirebaseMLNLTranslate.h>)
-    #import <FirebaseMLNLTranslate/FirebaseMLNLTranslate.h>
-  #endif
-
-  #if __has_include(<FirebaseMLNaturalLanguage/FirebaseMLNaturalLanguage.h>)
-    #import <FirebaseMLNaturalLanguage/FirebaseMLNaturalLanguage.h>
-  #endif
-
   #if __has_include(<FirebaseMLVision/FirebaseMLVision.h>)
     #import <FirebaseMLVision/FirebaseMLVision.h>
   #endif
 
-  #if __has_include(<FirebaseMLVisionAutoML/FirebaseMLVisionAutoML.h>)
-    #import <FirebaseMLVisionAutoML/FirebaseMLVisionAutoML.h>
-  #endif
-
-  #if __has_include(<FirebaseMLVisionBarcodeModel/FirebaseMLVisionBarcodeModel.h>)
-    #import <FirebaseMLVisionBarcodeModel/FirebaseMLVisionBarcodeModel.h>
-  #endif
-
-  #if __has_include(<FirebaseMLVisionFaceModel/FirebaseMLVisionFaceModel.h>)
-    #import <FirebaseMLVisionFaceModel/FirebaseMLVisionFaceModel.h>
-  #endif
-
-  #if __has_include(<FirebaseMLVisionLabelModel/FirebaseMLVisionLabelModel.h>)
-    #import <FirebaseMLVisionLabelModel/FirebaseMLVisionLabelModel.h>
-  #endif
-
-  #if __has_include(<FirebaseMLVisionObjectDetection/FirebaseMLVisionObjectDetection.h>)
-    #import <FirebaseMLVisionObjectDetection/FirebaseMLVisionObjectDetection.h>
-  #endif
-
-  #if __has_include(<FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>)
-    #import <FirebaseMLVisionTextModel/FirebaseMLVisionTextModel.h>
-  #endif
-
   #if __has_include(<FirebasePerformance/FirebasePerformance.h>)
     #import <FirebasePerformance/FirebasePerformance.h>
     #if TARGET_OS_IOS && !__has_include(<FirebaseAnalytics/FirebaseAnalytics.h>)

+ 1 - 1
CoreOnly/Tests/FirebasePodTest/Podfile

@@ -1,5 +1,5 @@
 # Uncomment the next line to define a global platform for your project
-# platform :ios, '9.0'
+platform :ios, '10.0'
 
 source 'https://github.com/firebase/SpecsStaging.git'
 source 'https://cdn.cocoapods.org/'

+ 10 - 1
Crashlytics/CHANGELOG.md

@@ -1,17 +1,26 @@
 # Unreleased
-- [fixed] Fixed Apple Watch crash related to sigaction (#6434).
+- [fixed] Fixed an issue where symbol uploads would fail when there are spaces in the project path, particularly in Unity builds (#6789).
+- [changed] Added additional logging when settings requests fail with a 404 status to help customers debug onboarding issues (#6847).
+
+# v4.6.2
+
+- [changed] Improved upload-symbols conversion speed. Customers with large dSYMs should see a significant improvement in the time it takes to upload Crashlytics symbols.
+- [fixed] Fixed Apple Watch crash related to `sigaction` (#6434).
 
 # v4.6.0
+
 - [added] Added stackFrameWithAddress API for recording custom errors that are symbolicated on the backend (#5975).
 - [fixed] Fixed comment typos (#6363).
 - [fixed] Remove device information from binary image data crash info entries (#6382).
 
 # v4.5.0
+
 - [fixed] Fixed a compiler warning and removed unused networking code (#6210).
 - [fixed] Fixed a crash that occurred rarely when trying to restart a URL session task without a valid request (#5984).
 - [added] Introduced watchOS support (#6262).
 
 # v4.3.1
+
 - [fixed] Fixed a segmentation fault that could occur when writing crash contexts to disk (#6048).
 
 # v4.3.0

+ 5 - 3
Crashlytics/Crashlytics/Components/FIRCLSContext.m

@@ -17,6 +17,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#import "Crashlytics/Shared/FIRCLSConstants.h"
+
 #import "Crashlytics/Crashlytics/Models/FIRCLSFileManager.h"
 #import "Crashlytics/Crashlytics/Models/FIRCLSInstallIdentifierModel.h"
 #import "Crashlytics/Crashlytics/Models/FIRCLSInternalReport.h"
@@ -400,9 +402,9 @@ static bool FIRCLSContextRecordIdentity(FIRCLSFile* file, const FIRCLSContextIni
 
   FIRCLSFileWriteHashStart(file);
 
-  FIRCLSFileWriteHashEntryString(file, "generator", CLS_SDK_GENERATOR_NAME);
-  FIRCLSFileWriteHashEntryString(file, "display_version", CLS_SDK_DISPLAY_VERSION);
-  FIRCLSFileWriteHashEntryString(file, "build_version", CLS_SDK_DISPLAY_VERSION);
+  FIRCLSFileWriteHashEntryString(file, "generator", FIRCLSSDKGeneratorName().UTF8String);
+  FIRCLSFileWriteHashEntryString(file, "display_version", FIRCLSSDKVersion().UTF8String);
+  FIRCLSFileWriteHashEntryString(file, "build_version", FIRCLSSDKVersion().UTF8String);
   FIRCLSFileWriteHashEntryUint64(file, "started_at", time(NULL));
 
   FIRCLSFileWriteHashEntryString(file, "session_id", initData->sessionId);

+ 2 - 2
Crashlytics/Crashlytics/Controllers/FIRCLSReportUploader.m

@@ -318,7 +318,7 @@
 
   NSString *localeId = [self localeIdentifier];
 
-  [request setValue:@CLS_SDK_GENERATOR_NAME forHTTPHeaderField:FIRCLSNetworkUserAgent];
+  [request setValue:FIRCLSSDKGeneratorName() forHTTPHeaderField:FIRCLSNetworkUserAgent];
   [request setValue:FIRCLSNetworkApplicationJson forHTTPHeaderField:FIRCLSNetworkAccept];
   [request setValue:FIRCLSNetworkUTF8 forHTTPHeaderField:FIRCLSNetworkAcceptCharset];
   [request setValue:localeId forHTTPHeaderField:FIRCLSNetworkAcceptLanguage];
@@ -326,7 +326,7 @@
   [request setValue:FIRCLSDeveloperToken forHTTPHeaderField:FIRCLSNetworkCrashlyticsDeveloperToken];
   [request setValue:FIRCLSApplicationGetSDKBundleID()
       forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientId];
-  [request setValue:@CLS_SDK_DISPLAY_VERSION
+  [request setValue:FIRCLSSDKVersion()
       forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientDisplayVersion];
   [request setValue:[[self dataSource] googleAppID]
       forHTTPHeaderField:FIRCLSNetworkCrashlyticsGoogleAppId];

+ 4 - 1
Crashlytics/Crashlytics/DataCollection/FIRCLSDataCollectionArbiter.m

@@ -101,8 +101,11 @@ typedef NS_ENUM(NSInteger, FIRCLSDataCollectionSetting) {
       [firebaseCrashlyticsCollectionEnabled isKindOfClass:[NSNumber class]]) {
     return [firebaseCrashlyticsCollectionEnabled boolValue];
   }
-
+#ifdef CRASHLYTICS_1P
+  return NO;
+#else
   return [app isDataCollectionDefaultEnabled];
+#endif
 }
 
 - (BOOL)isCrashlyticsCollectionEnabled {

+ 3 - 4
Crashlytics/Crashlytics/FIRCrashlytics.m

@@ -37,6 +37,7 @@
 
 #import "Crashlytics/Crashlytics/Helpers/FIRCLSLogger.h"
 #import "Crashlytics/Shared/FIRCLSByteUtility.h"
+#import "Crashlytics/Shared/FIRCLSConstants.h"
 #import "Crashlytics/Shared/FIRCLSFABHost.h"
 
 #import "Crashlytics/Crashlytics/Controllers/FIRCLSReportManager.h"
@@ -94,7 +95,7 @@ NSString *const FIRCLSGoogleTransportMappingID = @"1206";
 
     FIRCLSProfileMark mark = FIRCLSProfilingStart();
 
-    NSLog(@"[Firebase/Crashlytics] Version %@", @CLS_SDK_DISPLAY_VERSION);
+    NSLog(@"[Firebase/Crashlytics] Version %@", FIRCLSSDKVersion());
 
     FIRCLSDeveloperLog("Crashlytics", @"Running on %@, %@ (%@)", FIRCLSHostModelInfo(),
                        FIRCLSHostOSDisplayVersion(), FIRCLSHostOSBuildVersion());
@@ -147,9 +148,7 @@ NSString *const FIRCLSGoogleTransportMappingID = @"1206";
 }
 
 + (void)load {
-  [FIRApp registerInternalLibrary:(Class<FIRLibrary>)self
-                         withName:@"firebase-crashlytics"
-                      withVersion:@CLS_SDK_DISPLAY_VERSION];
+  [FIRApp registerInternalLibrary:(Class<FIRLibrary>)self withName:@"firebase-crashlytics"];
 }
 
 + (NSArray<FIRComponent *> *)componentsToRegister {

+ 0 - 6
Crashlytics/Crashlytics/Helpers/FIRCLSDefines.h

@@ -17,8 +17,6 @@
 #include <TargetConditionals.h>
 
 // macro trickiness
-#define STR_HELPER(x) #x
-#define STR(x) STR_HELPER(x)
 #define CONCAT_EXPANDED(a, b) a##b
 #define CONCAT(a, b) CONCAT_EXPANDED(a, b)
 
@@ -47,10 +45,6 @@
 #define CLS_TARGET_OS_OSX (TARGET_OS_MAC && !TARGET_OS_IPHONE)
 #define CLS_TARGET_OS_HAS_UIKIT (TARGET_OS_IOS || TARGET_OS_TV)
 
-#define CLS_SDK_DISPLAY_VERSION STR(DISPLAY_VERSION)
-
-#define CLS_SDK_GENERATOR_NAME (STR(CLS_SDK_NAME) "/" CLS_SDK_DISPLAY_VERSION)
-
 // arch definitions
 #if defined(__arm__) || defined(__arm64__) || defined(__arm64e__)
 #include <arm/arch.h>

+ 4 - 0
Crashlytics/Crashlytics/Models/FIRCLSSettings.m

@@ -304,6 +304,9 @@ NSString *const AppVersion = @"app_version";
 }
 
 - (BOOL)shouldUseNewReportEndpoint {
+#ifdef CRASHLYTICS_1P
+  return YES;
+#else
   NSNumber *value = [self appSettings][@"report_upload_variant"];
 
   // Default to use the new endpoint when settings were not successfully fetched
@@ -316,6 +319,7 @@ NSString *const AppVersion = @"app_version";
   // 1 - Legacy
   // 2 - New
   return value.intValue == 2;
+#endif
 }
 
 #pragma mark - Optional Limit Overrides

+ 10 - 2
Crashlytics/Crashlytics/Settings/FIRCLSSettingsOnboardingManager.m

@@ -84,7 +84,7 @@
   // backwards compatibility
   // TODO(b/141747635)
   self.kitVersionsByKitBundleIdentifier = @{
-    FIRCLSApplicationGetSDKBundleID() : @CLS_SDK_DISPLAY_VERSION,
+    FIRCLSApplicationGetSDKBundleID() : FIRCLSSDKVersion(),
   };
 
   [self beginSettingsDownload:token waitForCompletion:waitForCompletion];
@@ -181,7 +181,15 @@
 - (void)operation:(FIRCLSDownloadAndSaveSettingsOperation *)operation
     didDownloadAndSaveSettingsWithError:(nullable NSError *)error {
   if (error) {
-    FIRCLSErrorLog(@"Failed to download settings %@", error);
+    NSString *message = @"Failed to download settings.";
+    if (error.userInfo && [error.userInfo objectForKey:@"status_code"] &&
+        [[error.userInfo objectForKey:@"status_code"]
+            isEqualToNumber:[NSNumber numberWithInt:404]]) {
+      NSString *debugHint = @"If this is your first time launching the app, make sure you have "
+                            @"enabled Crashlytics in the Firebase Console.";
+      message = [NSString stringWithFormat:@"%@ %@", message, debugHint];
+    }
+    FIRCLSErrorLog(@"%@ %@", message, error);
     [self finishNetworkingSession];
     return;
   }

+ 1 - 1
Crashlytics/Crashlytics/Settings/Operations/FIRCLSDownloadAndSaveSettingsOperation.m

@@ -88,7 +88,7 @@
       forHTTPHeaderField:@"X-Crashlytics-OS-Build-Version"];
   [request setValue:FIRCLSHostOSDisplayVersion()
       forHTTPHeaderField:@"X-Crashlytics-OS-Display-Version"];
-  [request setValue:FIRCLSVersion forHTTPHeaderField:@"X-Crashlytics-API-Client-Version"];
+  [request setValue:FIRCLSSDKVersion() forHTTPHeaderField:@"X-Crashlytics-API-Client-Version"];
 
   return request;
 }

+ 3 - 2
Crashlytics/Crashlytics/Settings/Operations/FIRCLSNetworkOperation.m

@@ -74,7 +74,7 @@
   [request setValue:FIRCLSDeveloperToken forHTTPHeaderField:FIRCLSNetworkCrashlyticsDeveloperToken];
   [request setValue:FIRCLSApplicationGetSDKBundleID()
       forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientId];
-  [request setValue:FIRCLSVersion
+  [request setValue:FIRCLSSDKVersion()
       forHTTPHeaderField:FIRCLSNetworkCrashlyticsAPIClientDisplayVersion];
   [request setValue:self.googleAppID forHTTPHeaderField:FIRCLSNetworkCrashlyticsGoogleAppId];
 
@@ -82,7 +82,8 @@
 }
 
 - (NSString *)userAgentString {
-  return [NSString stringWithFormat:@"%@/%@", FIRCLSApplicationGetSDKBundleID(), FIRCLSVersion];
+  return
+      [NSString stringWithFormat:@"%@/%@", FIRCLSApplicationGetSDKBundleID(), FIRCLSSDKVersion()];
 }
 
 - (NSString *)localeIdentifier {

+ 8 - 2
Crashlytics/Shared/FIRCLSConstants.h

@@ -14,9 +14,9 @@
 
 #import <Foundation/Foundation.h>
 
-FOUNDATION_EXPORT NSString *const FIRCLSDeveloperToken;
+NS_ASSUME_NONNULL_BEGIN
 
-FOUNDATION_EXPORT NSString *const FIRCLSVersion;
+FOUNDATION_EXPORT NSString *const FIRCLSDeveloperToken;
 
 // User Messages
 FOUNDATION_EXPORT NSString *const FIRCLSMissingConsumerKeyMsg;
@@ -43,3 +43,9 @@ FOUNDATION_EXPORT NSString *const FIRCLSNetworkCrashlyticsGoogleAppId;
 FOUNDATION_EXPORT NSString *const FIRCLSNetworkCrashlyticsOrgId;
 FOUNDATION_EXPORT NSString *const FIRCLSNetworkUserAgent;
 FOUNDATION_EXPORT NSString *const FIRCLSNetworkUTF8;
+
+NSString *FIRCLSSDKGeneratorName(void);
+
+NSString *FIRCLSSDKVersion(void);
+
+NS_ASSUME_NONNULL_END

+ 13 - 2
Crashlytics/Shared/FIRCLSConstants.m

@@ -13,14 +13,13 @@
 // limitations under the License.
 
 #import "Crashlytics/Shared/FIRCLSConstants.h"
+#import "FirebaseCore/Sources/Public/FirebaseCore/FIRVersion.h"
 
 #define STR_HELPER(x) #x
 #define STR(x) STR_HELPER(x)
 
 NSString* const FIRCLSDeveloperToken = @"77f0789d8e230eccdb4b99b82dccd78d47f9b604";
 
-NSString* const FIRCLSVersion = @STR(DISPLAY_VERSION);
-
 // User Messages
 NSString* const FIRCLSMissingConsumerKeyMsg = @"consumer key is nil or zero length";
 NSString* const FIRCLSMissingConsumerSecretMsg = @"consumer secret is nil or zero length";
@@ -47,3 +46,15 @@ NSString* const FIRCLSNetworkCrashlyticsGoogleAppId = @"X-Crashlytics-Google-App
 NSString* const FIRCLSNetworkCrashlyticsOrgId = @"X-Crashlytics-Org-Id";
 NSString* const FIRCLSNetworkUserAgent = @"User-Agent";
 NSString* const FIRCLSNetworkUTF8 = @"utf-8";
+
+NSString* FIRCLSSDKGeneratorName(void) {
+  return [NSString stringWithFormat:@"%s / %s", STR(CLS_SDK_NAME), FIRFirebaseVersion().UTF8String];
+}
+
+NSString* FIRCLSSDKVersion(void) {
+#ifdef CRASHLYTICS_1P
+  return [FIRFirebaseVersion() stringByAppendingString:@"_1P"];
+#else
+  return FIRFirebaseVersion();
+#endif
+}

+ 1 - 1
Crashlytics/Shared/FIRCLSFABHost.m

@@ -97,7 +97,7 @@ NSString *FIRCLSHostModelInfo(void) {
 #elif TARGET_OS_TV
   model = @"tvOS Simulator";
 #elif TARGET_OS_IPHONE
-  switch (UI_USER_INTERFACE_IDIOM()) {
+  switch ([[UIDevice currentDevice] userInterfaceIdiom]) {
     case UIUserInterfaceIdiomPhone:
       model = @"iOS Simulator (iPhone)";
       break;

+ 5 - 2
Crashlytics/UnitTests/FIRCLSDataCollectionArbiterTest.m

@@ -49,12 +49,15 @@
   [super tearDown];
 }
 
-// If you do nothing, it should be YES. We should not be turning Fabric
-// customers off by default
 - (void)testNothingSet {
   self.fakeApp.isDefaultCollectionEnabled = YES;
   FIRCLSDataCollectionArbiter *arbiter = [self arbiterWithDictionary:@{}];
+#ifdef CRASHLYTICS_1P
+  XCTAssertFalse([arbiter isCrashlyticsCollectionEnabled]);
+#else
+  // It should be YES by default for 3P users.
   XCTAssertTrue([arbiter isCrashlyticsCollectionEnabled]);
+#endif
 }
 
 - (void)testOnlyStickyOff {

+ 4 - 0
Crashlytics/UnitTests/FIRCLSSettingsTests.m

@@ -489,7 +489,11 @@ NSString *const TestChangedGoogleAppID = @"2:changed:google:app:id";
   [self.settings cacheSettingsWithGoogleAppID:TestGoogleAppID currentTimestamp:currentTimestamp];
 
   XCTAssertNil(error, "%@", error);
+#ifdef CRASHLYTICS_1P
+  XCTAssertTrue(self.settings.shouldUseNewReportEndpoint);
+#else
   XCTAssertFalse(self.settings.shouldUseNewReportEndpoint);
+#endif
 }
 
 - (void)testLegacyReportEndpointSettingsWithNonExistentKey {

+ 6 - 10
Crashlytics/run

@@ -39,17 +39,13 @@
 #  Figure out where we're being called from
 DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
 
-#  If the first argument is specified without a dash, treat it as the Fabric API
-#  Key and add it as an argument.
-if [ -z "$1" ] || [[ $1 == -* ]]; then
-  API_KEY_ARG=""
-else
-  API_KEY_ARG="-a $1"; shift
-fi
+#  Build up the arguments list, passing through any flags added, and quoting
+#  every argument in case there are spaces in any of the the paths.
+ARGUMENTS=''
+for i in "$@"; do
+  ARGUMENTS="$ARGUMENTS \"$i\""
+done
 
-#  Build up the arguments list, passing through any flags added after the
-#  API Key
-ARGUMENTS="$API_KEY_ARG $@"
 VALIDATE_ARGUMENTS="$ARGUMENTS --build-phase --validate"
 UPLOAD_ARGUMENTS="$ARGUMENTS --build-phase"
 

BIN
Crashlytics/upload-symbols


+ 6 - 2
Dangerfile

@@ -49,10 +49,11 @@ def labelsForModifiedFiles()
   labels.push("api: instanceid") if @has_instanceid_changes
   labels.push("api: messaging") if @has_messaging_changes
   labels.push("api: remoteconfig") if @has_remoteconfig_changes
+  labels.push("api: segmentation") if @has_segmentation_changes
   labels.push("api: storage") if @has_storage_changes
   labels.push("GoogleDataTransport") if @has_gdt_changes
   labels.push("GoogleUtilities") if @has_googleutilities_changes
-  labels.push("zip-builder") if @has_zipbuilder_changes
+  labels.push("release-tooling") if @has_releasetooling_changes
   labels.push("public-api-change") if @has_api_changes
   return labels
 end
@@ -102,13 +103,15 @@ has_license_changes = didModify(["LICENSE"])
 @has_messaging_api_changes = hasChangesIn("FirebaseMessaging/Sources/Public/")
 @has_remoteconfig_changes = hasChangesIn("FirebaseRemoteConfig/")
 @has_remoteconfig_api_changes = hasChangesIn("FirebaseRemoteConfig/Sources/Public/")
+@has_segmentation_changes = hasChangesIn("FirebaseSegmentation/")
+@has_segmentation_api_changes = hasChangesIn("FirebaseSegmentation/Source/Public/")
 @has_storage_changes = hasChangesIn("FirebaseStorage/")
 @has_storage_api_changes = hasChangesIn("FirebaseStorage/Sources/Public/")
 
 @has_gdt_changes = hasChangesIn(["GoogleDataTransport/"])
 @has_gdt_api_changes = hasChangesIn("GoogleDataTransport/GDTCORLibrary/Public")
 @has_googleutilities_changes = hasChangesIn("GoogleUtilities/")
-@has_zipbuilder_changes = hasChangesIn("ZipBuilder/")
+@has_releasetooling_changes = hasChangesIn("ReleaseTooling/")
 
 # Convenient flag for all API changes.
 @has_api_changes = @has_abtesting_api_changes ||
@@ -125,6 +128,7 @@ has_license_changes = didModify(["LICENSE"])
                      @has_instanceid_api_changes ||
                      @has_messaging_api_changes ||
                      @has_remoteconfig_api_changes ||
+                     @has_segmentation_api_changes ||
                      @has_storage_api_changes ||
                      @has_gdt_api_changes
 

+ 4 - 4
Example/CoreDiagnostics/Tests/FIRCoreDiagnosticsTest.m

@@ -19,13 +19,13 @@
 #import <UIKit/UIKit.h>
 #endif  // TARGET_OS_IOS || TARGET_OS_TV
 
+#import <GoogleUtilities/GULAppEnvironmentUtil.h>
+#import <GoogleUtilities/GULHeartbeatDateStorage.h>
+#import <GoogleUtilities/GULUserDefaults.h>
 #import <OCMock/OCMock.h>
 #import <nanopb/pb_decode.h>
 #import <nanopb/pb_encode.h>
 #import "GoogleDataTransport/GDTCORLibrary/Internal/GoogleDataTransportInternal.h"
-#import "GoogleUtilities/Environment/Private/GULAppEnvironmentUtil.h"
-#import "GoogleUtilities/Environment/Private/GULHeartbeatDateStorage.h"
-#import "GoogleUtilities/UserDefaults/Private/GULUserDefaults.h"
 #import "Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h"
 #import "Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h"
 
@@ -193,7 +193,7 @@ extern void FIRPopulateProtoWithInfoPlistValues(
   config->has_pod_name = 1;
   config->app_id = FIREncodeString(kGoogleAppID);
   config->bundle_id = FIREncodeString(kBundleID);
-  config->device_model = FIREncodeString([FIRCoreDiagnostics deviceModel]);
+  config->device_model = FIREncodeString([GULAppEnvironmentUtil deviceModel]);
   config->os_version = FIREncodeString([GULAppEnvironmentUtil systemVersion]);
   config->app_count = 1;
   config->has_app_count = 1;

+ 4 - 1
Example/InstanceID/IntegrationTests/FIRInstanceIDIntegrationTests.m

@@ -22,10 +22,12 @@
 #import <XCTest/XCTest.h>
 
 #import <FirebaseCore/FirebaseCore.h>
-#import <FirebaseInstanceID/FirebaseInstanceID.h>
+#import "Firebase/InstanceID/Public/FirebaseInstanceID.h"
 
 static BOOL sFIRInstanceIDFirebaseDefaultAppConfigured = NO;
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 @interface FIRInstanceIDIntegrationTests : XCTestCase
 @property(nonatomic, strong) FIRInstanceID *instanceID;
 @end
@@ -134,6 +136,7 @@ static BOOL sFIRInstanceIDFirebaseDefaultAppConfigured = NO;
 
   [self waitForExpectations:@[ expectation ] timeout:5];
 }
+#pragma clang diagnostic pop
 
 - (NSString *)tokenAuthorizedEntity {
   if (!sFIRInstanceIDFirebaseDefaultAppConfigured) {

+ 1 - 1
Example/InstanceID/Tests/FIRInstanceIDCheckinServiceTest.m

@@ -16,12 +16,12 @@
 
 #import <XCTest/XCTest.h>
 
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
 #import <OCMock/OCMock.h>
 #import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
 #import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
 #import "Firebase/InstanceID/NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 static NSString *const kDeviceAuthId = @"1234";
 static NSString *const kSecretToken = @"567890";

+ 2 - 3
Example/InstanceID/Tests/FIRInstanceIDCheckinStoreTest.m

@@ -18,8 +18,7 @@
 
 #import <OCMock/OCMock.h>
 
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
-#import "FIRInstanceIDFakeKeychain.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.h"
 #import "Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h"
 #import "Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
@@ -27,7 +26,7 @@
 #import "Firebase/InstanceID/FIRInstanceIDCheckinStore.h"
 #import "Firebase/InstanceID/FIRInstanceIDStore.h"
 #import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
-#import "Firebase/InstanceID/FIRInstanceIDVersionUtilities.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 static const NSTimeInterval kExpectationTimeout = 12;
 

+ 1 - 1
Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDFakeKeychain.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.h"
 
 static NSString *const kFakeKeychainErrorDomain = @"com.google.iid";
 

+ 11 - 1
Example/InstanceID/Tests/FIRInstanceIDResultTest.m

@@ -16,8 +16,8 @@
 
 #import <XCTest/XCTest.h>
 
-#import <FirebaseInstanceID/FIRInstanceID.h>
 #import <OCMock/OCMock.h>
+#import "Firebase/InstanceID/Public/FIRInstanceID.h"
 
 #import "Firebase/InstanceID/NSError+FIRInstanceID.h"
 
@@ -35,7 +35,11 @@ static NSString *const kFakeToken =
 @end
 
 @interface FIRInstanceIDResultTest : XCTestCase {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   FIRInstanceID *_instanceID;
+#pragma clang diagnostic pop
+
   id _mockInstanceID;
 }
 
@@ -45,7 +49,10 @@ static NSString *const kFakeToken =
 
 - (void)setUp {
   [super setUp];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   _mockInstanceID = OCMClassMock([FIRInstanceID class]);
+#pragma clang diagnostic pop
 }
 
 - (void)tearDown {
@@ -54,6 +61,8 @@ static NSString *const kFakeToken =
   [super tearDown];
 }
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 - (void)testResultWithFailedIID {
   // mocking getting iid failed with error.
   OCMStub([_mockInstanceID
@@ -130,5 +139,6 @@ static NSString *const kFakeToken =
         XCTAssertEqualObjects(resultCopy.token, kFakeToken);
       }];
 }
+#pragma clang diagnostic pop
 
 @end

+ 2 - 2
Example/InstanceID/Tests/FIRInstanceIDStoreTest.m

@@ -16,9 +16,8 @@
 
 #import <XCTest/XCTest.h>
 
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
 #import <OCMock/OCMock.h>
-#import "FIRInstanceIDFakeKeychain.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.h"
 #import "Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
@@ -27,6 +26,7 @@
 #import "Firebase/InstanceID/FIRInstanceIDTokenInfo.h"
 #import "Firebase/InstanceID/FIRInstanceIDTokenStore.h"
 #import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 static NSString *const kSubDirectoryName = @"FirebaseInstanceIDStoreTest";
 

+ 14 - 82
Example/InstanceID/Tests/FIRInstanceIDTest.m

@@ -18,8 +18,8 @@
 
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
 
-#import <FirebaseInstanceID/FIRInstanceID_Private.h>
 #import <OCMock/OCMock.h>
+#import "Firebase/InstanceID/Private/FIRInstanceID_Private.h"
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 
 #import "Firebase/InstanceID/FIRInstanceIDAuthService.h"
@@ -75,7 +75,10 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
 @interface FIRInstanceIDTest : XCTestCase
 
 @property(nonatomic, readwrite, assign) BOOL hasCheckinInfo;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 @property(nonatomic, readwrite, strong) FIRInstanceID *instanceID;
+#pragma clang diagnostic pop
 @property(nonatomic, readwrite, strong) id mockInstanceID;
 @property(nonatomic, readwrite, strong) id mockTokenManager;
 @property(nonatomic, readwrite, strong) id mockInstallations;
@@ -89,6 +92,8 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
 
 @implementation FIRInstanceIDTest
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 - (void)setUp {
   [super setUp];
 
@@ -134,8 +139,11 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
   _instanceID.fcmSenderID = kAuthorizedEntity;
   self.mockInstanceID = OCMPartialMock(_instanceID);
   [self.mockInstanceID setTokenManager:self.mockTokenManager];
-
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   id instanceIDClassMock = OCMClassMock([FIRInstanceID class]);
+#pragma clang diagnostic pop
+
   OCMStub(ClassMethod([instanceIDClassMock minIntervalForDefaultTokenRetry])).andReturn(2);
   OCMStub(ClassMethod([instanceIDClassMock maxRetryIntervalForDefaultTokenInSeconds]))
       .andReturn(10);
@@ -146,16 +154,15 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
  *  FIRInstanceID with an associated FIRInstanceIDTokenManager.
  */
 - (void)testSharedInstance {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
   // The shared instance should be `nil` before the app is configured.
   XCTAssertNil([FIRInstanceID instanceID]);
 
-  // Expect FID to be requested at the start.
-  [self expectInstallationsInstallationIDWithFID:@"fid" error:nil];
-
   // The shared instance relies on the default app being configured. Configure it.
   FIROptions *options = [[FIROptions alloc] initWithGoogleAppID:kGoogleAppID
                                                     GCMSenderID:kGCMSenderID];
-  options.APIKey = @"api-key";
+  options.APIKey = @"AIzaSy-ApiKeyWithValidFormat_0123456789";
   options.projectID = @"project-id";
   [FIRApp configureWithName:kFIRDefaultAppName options:options];
   FIRInstanceID *instanceID = [FIRInstanceID instanceID];
@@ -166,86 +173,10 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
   FIRInstanceID *secondInstanceID = [FIRInstanceID instanceID];
   XCTAssertEqualObjects(instanceID, secondInstanceID);
 
-  // Verify FirebaseInstallations requested for FID.
-  OCMVerifyAll(self.mockInstallations);
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  XCTAssertEqualObjects([instanceID appInstanceID:NULL], @"fid");
-#pragma clang diagnostic pop
-
   // Reset the default app for the next test.
   [FIRApp resetApps];
 }
 
-- (void)testSyncAppInstanceIDIsUpdatedOnFIDUpdateNotificationIfAppIDMatches {
-  NSString *firebaseAppID = @"firebaseAppID";
-  _instanceID.firebaseAppID = firebaseAppID;
-
-  [self expectInstallationsInstallationIDWithFID:@"fid-1" error:nil];
-  // Simulate FID update notification.
-  [[NSNotificationCenter defaultCenter]
-      postNotificationName:FIRInstallationIDDidChangeNotification
-                    object:nil
-                  userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : firebaseAppID}];
-
-  OCMVerifyAll(self.mockInstallations);
-  NSError *error = nil;
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  XCTAssertEqualObjects([self.instanceID appInstanceID:&error], @"fid-1");
-#pragma clang diagnostic pop
-  XCTAssertNil(error);
-
-  [self expectInstallationsInstallationIDWithFID:@"fid-2" error:nil];
-  // Simulate FID update notification.
-  [[NSNotificationCenter defaultCenter]
-      postNotificationName:FIRInstallationIDDidChangeNotification
-                    object:nil
-                  userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : firebaseAppID}];
-
-  OCMVerifyAll(self.mockInstallations);
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  XCTAssertEqualObjects([self.instanceID appInstanceID:&error], @"fid-2");
-#pragma clang diagnostic pop
-  XCTAssertNil(error);
-}
-
-- (void)testSyncAppInstanceIDIsNotUpdatedOnFIDUpdateNotificationIfAppIDMismatches {
-  NSString *firebaseAppID = @"firebaseAppID";
-  _instanceID.firebaseAppID = firebaseAppID;
-
-  [self expectInstallationsInstallationIDWithFID:@"fid-1" error:nil];
-  // Simulate FID update notification.
-  [[NSNotificationCenter defaultCenter]
-      postNotificationName:FIRInstallationIDDidChangeNotification
-                    object:nil
-                  userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : firebaseAppID}];
-
-  OCMVerifyAll(self.mockInstallations);
-  NSError *error = nil;
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  XCTAssertEqualObjects([self.instanceID appInstanceID:&error], @"fid-1");
-#pragma clang diagnostic pop
-  XCTAssertNil(error);
-
-  OCMReject([self.mockInstallations installationIDWithCompletion:[OCMArg any]]);
-  // Simulate FID update notification.
-  NSString *differentAppID = [firebaseAppID stringByAppendingString:@"different"];
-  [[NSNotificationCenter defaultCenter]
-      postNotificationName:FIRInstallationIDDidChangeNotification
-                    object:nil
-                  userInfo:@{kFIRInstallationIDDidChangeNotificationAppNameKey : differentAppID}];
-
-  OCMVerifyAll(self.mockInstallations);
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
-  XCTAssertEqualObjects([self.instanceID appInstanceID:&error], @"fid-1");
-#pragma clang diagnostic pop
-  XCTAssertNil(error);
-}
-
 - (void)testFCMAutoInitEnabled {
   XCTAssertFalse([_instanceID isFCMAutoInitEnabled],
                  @"When FCM is not available, FCM Auto Init Enabled should be NO.");
@@ -1470,5 +1401,6 @@ static NSString *const kGoogleAppID = @"1:123:ios:123abc";
     return YES;
   }];
 }
+#pragma clang diagnostic pop
 
 @end

+ 1 - 1
Example/InstanceID/Tests/FIRInstanceIDTokenManager+Test.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDTokenManager+Test.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDTokenManager+Test.h"
 
 #import "Firebase/InstanceID/FIRInstanceIDAuthService.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinStore.h"

+ 2 - 2
Example/InstanceID/Tests/FIRInstanceIDTokenManagerTest.m

@@ -20,8 +20,8 @@
 
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
 
-#import "FIRInstanceIDFakeKeychain.h"
-#import "FIRInstanceIDTokenManager+Test.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDFakeKeychain.h"
+#import "Example/InstanceID/Tests/FIRInstanceIDTokenManager+Test.h"
 #import "Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
 #import "Firebase/InstanceID/FIRInstanceIDCheckinStore.h"

+ 4 - 3
Example/InstanceID/Tests/FIRInstanceIDTokenOperationsTest.m

@@ -16,7 +16,7 @@
 
 #import <XCTest/XCTest.h>
 
-#import <FirebaseInstanceID/FIRInstanceID.h>
+#import "Firebase/InstanceID/Public/FIRInstanceID.h"
 
 #import <OCMock/OCMock.h>
 
@@ -32,9 +32,9 @@
 #import "Firebase/InstanceID/FIRInstanceIDTokenOperation.h"
 #import "Firebase/InstanceID/NSError+FIRInstanceID.h"
 
+#import <GoogleUtilities/GULHeartbeatDateStorage.h>
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
-#import "GoogleUtilities/Environment/Private/GULHeartbeatDateStorage.h"
 
 static NSString *kDeviceID = @"fakeDeviceID";
 static NSString *kSecretToken = @"fakeSecretToken";
@@ -210,13 +210,14 @@ static NSString *kRegistrationToken = @"token-12345";
                                            checkinPreferences:checkinPreferences
                                                    instanceID:self.instanceID];
   operation.performWasCalled = NO;
+  __weak FIRInstanceIDTokenOperationFake *weakOperation = operation;
   [operation addCompletionHandler:^(FIRInstanceIDTokenOperationResult result,
                                     NSString *_Nullable token, NSError *_Nullable error) {
     if (result == FIRInstanceIDTokenOperationCancelled) {
       [cancelledExpectation fulfill];
     }
 
-    if (!operation.performWasCalled) {
+    if (!weakOperation.performWasCalled) {
       [didNotCallPerform fulfill];
     }
   }];

+ 37 - 98
Firebase.podspec

@@ -1,6 +1,6 @@
 Pod::Spec.new do |s|
   s.name             = 'Firebase'
-  s.version          = '6.32.2'
+  s.version          = '7.0.0'
   s.summary          = 'Firebase'
 
   s.description      = <<-DESC
@@ -22,8 +22,8 @@ Simplify your app development, grow your user base, and monetize more effectivel
     "CoreOnly/README.md"
   ]
   s.social_media_url = 'https://twitter.com/Firebase'
-  s.ios.deployment_target = '8.0'
-  s.osx.deployment_target = '10.11'
+  s.ios.deployment_target = '10.0'
+  s.osx.deployment_target = '10.12'
   s.tvos.deployment_target = '10.0'
 
   s.cocoapods_version = '>= 1.4.0'
@@ -31,12 +31,13 @@ Simplify your app development, grow your user base, and monetize more effectivel
   s.default_subspec = 'Core'
 
   s.subspec 'Core' do |ss|
-    ss.ios.dependency 'FirebaseAnalytics', '6.8.2'
+    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'FirebaseAnalytics', '7.0.0'
     ss.dependency 'Firebase/CoreOnly'
   end
 
   s.subspec 'CoreOnly' do |ss|
-    ss.dependency 'FirebaseCore', '6.10.2'
+    ss.dependency 'FirebaseCore', '7.0.0'
     ss.source_files = 'CoreOnly/Sources/Firebase.h'
     ss.preserve_paths = 'CoreOnly/Sources/module.modulemap'
     if ENV['FIREBASE_POD_REPO_FOR_DEV_POD'] then
@@ -48,188 +49,126 @@ Simplify your app development, grow your user base, and monetize more effectivel
         'HEADER_SEARCH_PATHS' => "$(inherited) ${PODS_ROOT}/Firebase/CoreOnly/Sources"
       }
     end
-    # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '8.0'
-    ss.osx.deployment_target = '10.11'
+    ss.ios.deployment_target = '9.0'
+    ss.osx.deployment_target = '10.12'
     ss.tvos.deployment_target = '10.0'
     ss.watchos.deployment_target = '6.0'
   end
 
   s.subspec 'Analytics' do |ss|
+    ss.ios.deployment_target = '9.0'
     ss.dependency 'Firebase/Core'
   end
 
   s.subspec 'ABTesting' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseABTesting', '~> 4.2.0'
+    ss.dependency 'FirebaseABTesting', '~> 7.0.0'
   end
 
   s.subspec 'AdMob' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    # 7.64 bumps the minimum iOS version to 9.0, so don't update here until
-    # next major version.
-    ss.ios.dependency 'Google-Mobile-Ads-SDK', '~> 7.63'
+    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'Google-Mobile-Ads-SDK', '~> 7.66'
   end
 
   s.subspec 'AppDistribution' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseAppDistribution', '~> 0.9.2'
-    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'FirebaseAppDistribution', '~> 7.0.0-beta'
   end
 
   s.subspec 'Auth' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseAuth', '~> 6.9.1'
+    ss.dependency 'FirebaseAuth', '~> 7.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '8.0'
-    ss.osx.deployment_target = '10.11'
+    ss.ios.deployment_target = '10.0'
+    ss.osx.deployment_target = '10.12'
     ss.tvos.deployment_target = '10.0'
     ss.watchos.deployment_target = '6.0'
   end
 
   s.subspec 'Crashlytics' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseCrashlytics', '~> 4.6.0'
+    ss.dependency 'FirebaseCrashlytics', '~> 7.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '8.0'
-    ss.osx.deployment_target = '10.11'
+    ss.ios.deployment_target = '10.0'
+    ss.osx.deployment_target = '10.12'
     ss.tvos.deployment_target = '10.0'
     ss.watchos.deployment_target = '6.0'
   end
 
   s.subspec 'Database' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseDatabase', '~> 6.6.0'
+    ss.dependency 'FirebaseDatabase', '~> 7.0.0'
   end
 
   s.subspec 'DynamicLinks' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseDynamicLinks', '~> 4.3.0'
+    ss.ios.dependency 'FirebaseDynamicLinks', '~> 7.0.0'
   end
 
   s.subspec 'Firestore' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseFirestore', '~> 1.17.1'
+    ss.dependency 'FirebaseFirestore', '~> 7.0.0'
   end
 
   s.subspec 'Functions' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseFunctions', '~> 2.8.0'
+    ss.dependency 'FirebaseFunctions', '~> 7.0.0'
   end
 
   s.subspec 'InAppMessaging' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseInAppMessaging', '~> 0.24.0'
-    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'FirebaseInAppMessaging', '~> 7.0.0-beta'
   end
 
-  s.subspec 'InAppMessagingDisplay' do |ss|
+  s.subspec 'Installations' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseInAppMessagingDisplay', '~> 0.17.0'
-    ss.ios.deployment_target = '9.0'
+    ss.dependency 'FirebaseInstallations', '~> 7.0.0'
   end
 
   s.subspec 'Messaging' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseMessaging', '~> 4.6.2'
+    ss.dependency 'FirebaseMessaging', '~> 7.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '8.0'
-    ss.osx.deployment_target = '10.11'
+    ss.ios.deployment_target = '10.0'
+    ss.osx.deployment_target = '10.12'
     ss.tvos.deployment_target = '10.0'
     ss.watchos.deployment_target = '6.0'
   end
 
   s.subspec 'Performance' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebasePerformance', '~> 3.3.0'
+    ss.ios.dependency 'FirebasePerformance', '~> 7.0.0'
   end
 
   s.subspec 'RemoteConfig' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseRemoteConfig', '~> 4.9.0'
+    ss.dependency 'FirebaseRemoteConfig', '~> 7.0.0'
   end
 
   s.subspec 'Storage' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.dependency 'FirebaseStorage', '~> 3.9.0'
+    ss.dependency 'FirebaseStorage', '~> 7.0.0'
     # Standard platforms PLUS watchOS.
-    ss.ios.deployment_target = '8.0'
-    ss.osx.deployment_target = '10.11'
+    ss.ios.deployment_target = '10.0'
+    ss.osx.deployment_target = '10.12'
     ss.tvos.deployment_target = '10.0'
     ss.watchos.deployment_target = '6.0'
   end
 
   s.subspec 'MLCommon' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLCommon', '~> 0.21.0'
+    ss.ios.dependency 'FirebaseMLCommon', '~> 7.0.0-beta'
   end
 
   s.subspec 'MLModelInterpreter' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLModelInterpreter', '~> 0.22.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLNLLanguageID' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLNLLanguageID', '~> 0.18.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLNLSmartReply' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLNLSmartReply', '~> 0.18.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLNLTranslate' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLNLTranslate', '~> 0.19.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLNaturalLanguage' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLNaturalLanguage', '~> 0.18.0'
-    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'FirebaseMLModelInterpreter', '~> 7.0.0-beta'
   end
 
   s.subspec 'MLVision' do |ss|
     ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVision', '~> 0.21.0'
-  end
-
-  s.subspec 'MLVisionAutoML' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionAutoML', '~> 0.21.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLVisionBarcodeModel' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionBarcodeModel', '~> 0.21.0'
-    ss.ios.deployment_target = '9.0'
-  end
-
-  s.subspec 'MLVisionFaceModel' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionFaceModel', '~> 0.21.0'
-  end
-
-  s.subspec 'MLVisionLabelModel' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionLabelModel', '~> 0.21.0'
-  end
-
-  s.subspec 'MLVisionTextModel' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionTextModel', '~> 0.21.0'
-  end
-
-  s.subspec 'MLVisionObjectDetection' do |ss|
-    ss.dependency 'Firebase/CoreOnly'
-    ss.ios.dependency 'FirebaseMLVisionObjectDetection', '~> 0.21.0'
-    ss.ios.deployment_target = '9.0'
+    ss.ios.dependency 'FirebaseMLVision', '~> 7.0.0-beta'
   end
 
 end

+ 4 - 22
Firebase/CoreDiagnostics/FIRCDLibrary/FIRCoreDiagnostics.m

@@ -19,9 +19,9 @@
 
 #import "GoogleDataTransport/GDTCORLibrary/Internal/GoogleDataTransportInternal.h"
 
-#import "GoogleUtilities/Environment/Private/GULAppEnvironmentUtil.h"
-#import "GoogleUtilities/Environment/Private/GULHeartbeatDateStorage.h"
-#import "GoogleUtilities/Logger/Private/GULLogger.h"
+#import <GoogleUtilities/GULAppEnvironmentUtil.h>
+#import <GoogleUtilities/GULHeartbeatDateStorage.h>
+#import <GoogleUtilities/GULLogger.h>
 
 #import "Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsData.h"
 #import "Interop/CoreDiagnostics/Public/FIRCoreDiagnosticsInterop.h"
@@ -192,24 +192,6 @@ NS_ASSUME_NONNULL_END
   return self;
 }
 
-#pragma mark - Metadata helpers
-
-/** Returns the model of iOS device. Sample platform strings are @"iPhone7,1" for iPhone 6 Plus,
- * @"iPhone7,2" for iPhone 6, etc. Refer to the Hardware strings at
- * https://en.wikipedia.org/wiki/List_of_iOS_devices
- *
- * @return The device model as an NSString.
- */
-+ (NSString *)deviceModel {
-  static NSString *deviceModel = nil;
-  if (deviceModel == nil) {
-    struct utsname systemInfo;
-    uname(&systemInfo);
-    deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
-  }
-  return deviceModel;
-}
-
 #pragma mark - nanopb helper functions
 
 /** Callocs a pb_bytes_array and copies the given NSString's bytes into the bytes array.
@@ -359,7 +341,7 @@ void FIRPopulateProtoWithCommonInfoFromApp(logs_proto_mobilesdk_ios_ICoreConfigu
     config->icore_version = FIREncodeString(libraryVersionID);
   }
 
-  NSString *deviceModel = [FIRCoreDiagnostics deviceModel];
+  NSString *deviceModel = [GULAppEnvironmentUtil deviceModel];
   if (deviceModel.length) {
     config->device_model = FIREncodeString(deviceModel);
   }

+ 0 - 0
Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnistics.h → Firebase/CoreDiagnostics/FIRCDLibrary/Public/FIRCoreDiagnostics.h


+ 7 - 0
Firebase/InstanceID/CHANGELOG.md

@@ -1,3 +1,10 @@
+# Unreleased -- 7.0.0
+- [changed] Deprecated private `-[FIRInstanceID appInstanceID:]` method was removed. (#4486)
+- [fixed] Fixed an issue that APNS token is not sent in token request when there's a delay of getting the APNS token from Apple. (#6553)
+
+# 2020-09 -- 4.7.0
+- [deprecated] Deprecated InstanceID. For app instance identity handling, use FirebaseInstallations. For FCM registration token handling, use FirebaseMessaging. (#6585)
+
 # 2020-08 -- 4.6.0
 - [added] Added a new notification listening token refresh from Messaging and update the token cache in InstanceID. (#6286)
 - [fixed] Fixed an issue that token refresh notification is not triggered when use `tokenWithAuthorizedEntity:scope:options:handler` to get token. (#6286)

+ 7 - 11
Firebase/InstanceID/FIRInstanceID+Private.m

@@ -14,14 +14,13 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceID+Private.h"
+#import "Firebase/InstanceID/Private/FIRInstanceID+Private.h"
 
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
 
-#import <FirebaseInstanceID/FIRInstanceID_Private.h>
-#import "FIRInstanceIDAuthService.h"
-#import "FIRInstanceIDDefines.h"
-#import "FIRInstanceIDTokenManager.h"
+#import "Firebase/InstanceID/FIRInstanceIDAuthService.h"
+#import "Firebase/InstanceID/FIRInstanceIDTokenManager.h"
+#import "Firebase/InstanceID/Private/FIRInstanceID_Private.h"
 
 @class FIRInstallations;
 
@@ -31,7 +30,10 @@
 
 @end
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 @implementation FIRInstanceID (Private)
+#pragma clang diagnostic pop
 
 // This method just wraps our pre-configured auth service to make the request.
 // This method is only needed by first-party users, like Remote Config.
@@ -39,12 +41,6 @@
   [self.tokenManager.authService fetchCheckinInfoWithHandler:handler];
 }
 
-// TODO(#4486): Delete the method, `self.firebaseInstallationsID` and related
-// code for Firebase 7 release.
-- (NSString *)appInstanceID:(NSError **)outError {
-  return self.firebaseInstallationsID;
-}
-
 #pragma mark - Firebase Installations Compatibility
 
 /// Presence of this method indicates that this version of IID uses FirebaseInstallations under the

+ 44 - 58
Firebase/InstanceID/FIRInstanceID.m

@@ -14,26 +14,25 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceID.h"
+#import "Firebase/InstanceID/Public/FIRInstanceID.h"
 
 #import "FirebaseInstallations/Source/Library/Private/FirebaseInstallationsInternal.h"
 
-#import "FIRInstanceID+Private.h"
-#import "FIRInstanceIDAuthService.h"
-#import "FIRInstanceIDCheckinPreferences.h"
-#import "FIRInstanceIDCombinedHandler.h"
-#import "FIRInstanceIDConstants.h"
-#import "FIRInstanceIDDefines.h"
-#import "FIRInstanceIDLogger.h"
-#import "FIRInstanceIDStore.h"
-#import "FIRInstanceIDTokenInfo.h"
-#import "FIRInstanceIDTokenManager.h"
-#import "FIRInstanceIDUtilities.h"
-#import "FIRInstanceIDVersionUtilities.h"
+#import <GoogleUtilities/GULAppEnvironmentUtil.h>
+#import <GoogleUtilities/GULUserDefaults.h>
+#import "Firebase/InstanceID/FIRInstanceIDAuthService.h"
+#import "Firebase/InstanceID/FIRInstanceIDCombinedHandler.h"
+#import "Firebase/InstanceID/FIRInstanceIDConstants.h"
+#import "Firebase/InstanceID/FIRInstanceIDDefines.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDStore.h"
+#import "Firebase/InstanceID/FIRInstanceIDTokenInfo.h"
+#import "Firebase/InstanceID/FIRInstanceIDTokenManager.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/Private/FIRInstanceID+Private.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
-#import "GoogleUtilities/Environment/Private/GULAppEnvironmentUtil.h"
-#import "GoogleUtilities/UserDefaults/Private/GULUserDefaults.h"
-#import "NSError+FIRInstanceID.h"
 
 // Public constants
 NSString *const kFIRInstanceIDScopeFirebaseMessaging = @"fcm";
@@ -118,9 +117,6 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
 @property(atomic, strong, nullable)
     FIRInstanceIDCombinedHandler<NSString *> *defaultTokenFetchHandler;
 
-/// A cached value of FID. Should be used only for `-[FIRInstanceID appInstanceID:]`.
-@property(atomic, copy, nullable) NSString *firebaseInstallationsID;
-
 @end
 
 // InstanceID doesn't provide any functionality to other components,
@@ -132,7 +128,10 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
 @interface FIRInstanceID () <FIRInstanceIDInstanceProvider, FIRLibrary>
 @end
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 @implementation FIRInstanceIDResult
+#pragma clang diagnostic pop
 - (id)copyWithZone:(NSZone *)zone {
   FIRInstanceIDResult *result = [[[self class] allocWithZone:zone] init];
   result.instanceID = self.instanceID;
@@ -141,7 +140,10 @@ typedef NS_ENUM(NSInteger, FIRInstanceIDAPNSTokenType) {
 }
 @end
 
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-implementations"
 @implementation FIRInstanceID
+#pragma clang diagnostic pop
 
 // File static to support InstanceID tests that call [FIRInstanceID instanceID] after
 // [FIRInstanceID instanceIDForTests].
@@ -578,9 +580,7 @@ static FIRInstanceID *gInstanceID;
 #pragma mark - Config
 
 + (void)load {
-  [FIRApp registerInternalLibrary:(Class<FIRLibrary>)self
-                         withName:@"fire-iid"
-                      withVersion:FIRInstanceIDCurrentLibraryVersion()];
+  [FIRApp registerInternalLibrary:(Class<FIRLibrary>)self withName:@"fire-iid"];
 }
 
 + (nonnull NSArray<FIRComponent *> *)componentsToRegister {
@@ -622,8 +622,6 @@ static FIRInstanceID *gInstanceID;
   self.fcmSenderID = GCMSenderID;
   self.firebaseAppID = options.googleAppID;
 
-  [self updateFirebaseInstallationID];
-
   // FCM generates a FCM token during app start for sending push notification to device.
   // This is not needed for app extension except for watch.
 #if TARGET_OS_WATCH
@@ -716,7 +714,6 @@ static FIRInstanceID *gInstanceID;
              selector:@selector(notifyAPNSTokenIsSet:)
                  name:kFIRInstanceIDAPNSTokenNotification
                object:nil];
-  [self observeFirebaseInstallationIDChanges];
   [self observeFirebaseMessagingTokenChanges];
 }
 
@@ -824,10 +821,13 @@ static FIRInstanceID *gInstanceID;
       if (!APNSRemainedSameDuringFetch && hasFirebaseMessaging) {
         // APNs value did change mid-fetch, so the token should be re-fetched with the current APNs
         // value.
-        [self retryGetDefaultTokenAfter:0];
+        [self fetchNewToken];
         FIRInstanceIDLoggerDebug(kFIRInstanceIDMessageCodeRefetchingTokenForAPNS,
                                  @"Received APNS token while fetching default token. "
-                                 @"Refetching default token.");
+                                 @"Refetching default token. "
+                                 @"Updated cached APNS token: %@\n "
+                                 @"Stale request APNS token: %@",
+                                 self.APNSTupleString, APNSTupleStringInRequest);
         // Do not notify and handle completion handler since this is a retry.
         // Simply return.
         return;
@@ -852,6 +852,23 @@ static FIRInstanceID *gInstanceID;
                           handler:newHandler];
 }
 
+- (void)fetchNewToken {
+  [self.installations
+      installationIDWithCompletion:^(NSString *_Nullable identifier, NSError *_Nullable error) {
+        if (error) {
+          FIRInstanceIDLoggerError(kFIRInstanceIDMessageCodeRefetchingTokenForAPNS,
+                                   kFIRInstanceIDInvalidNilHandlerError);
+        } else {
+          // The cached apns token has updated, recollect the default token options from cache.
+          [self.tokenManager fetchNewTokenWithAuthorizedEntity:self.fcmSenderID
+                                                         scope:kFIRInstanceIDDefaultTokenScope
+                                                    instanceID:identifier
+                                                       options:[self defaultTokenOptions]
+                                                       handler:nil];
+        }
+      }];
+}
+
 /**
  *
  */
@@ -1095,37 +1112,6 @@ static FIRInstanceID *gInstanceID;
   }
 }
 
-#pragma mark - Sync InstanceID
-
-- (void)updateFirebaseInstallationID {
-  FIRInstanceID_WEAKIFY(self);
-  [self.installations
-      installationIDWithCompletion:^(NSString *_Nullable installationID, NSError *_Nullable error) {
-        FIRInstanceID_STRONGIFY(self);
-        self.firebaseInstallationsID = installationID;
-      }];
-}
-
-- (void)installationIDDidChangeNotificationReceived:(NSNotification *)notification {
-  NSString *installationAppID =
-      notification.userInfo[kFIRInstallationIDDidChangeNotificationAppNameKey];
-  if ([installationAppID isKindOfClass:[NSString class]] &&
-      [installationAppID isEqual:self.firebaseAppID]) {
-    [self updateFirebaseInstallationID];
-  }
-}
-
-- (void)observeFirebaseInstallationIDChanges {
-  [[NSNotificationCenter defaultCenter] removeObserver:self
-                                                  name:FIRInstallationIDDidChangeNotification
-                                                object:nil];
-  [[NSNotificationCenter defaultCenter]
-      addObserver:self
-         selector:@selector(installationIDDidChangeNotificationReceived:)
-             name:FIRInstallationIDDidChangeNotification
-           object:nil];
-}
-
 - (void)observeFirebaseMessagingTokenChanges {
   [[NSNotificationCenter defaultCenter]
       removeObserver:self

+ 2 - 2
Firebase/InstanceID/FIRInstanceIDAPNSInfo.m

@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDAPNSInfo.h"
+#import "Firebase/InstanceID/FIRInstanceIDAPNSInfo.h"
 
-#import "FIRInstanceIDConstants.h"
+#import "Firebase/InstanceID/FIRInstanceIDConstants.h"
 
 /// The key used to find the APNs device token in an archive.
 NSString *const kFIRInstanceIDAPNSInfoTokenKey = @"device_token";

+ 3 - 3
Firebase/InstanceID/FIRInstanceIDAuthKeyChain.m

@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDAuthKeyChain.h"
-#import "FIRInstanceIDKeychain.h"
-#import "FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h"
+#import "Firebase/InstanceID/FIRInstanceIDKeychain.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
 
 /**
  *  The error type representing why we couldn't read data from the keychain.

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDAuthService.h

@@ -15,7 +15,7 @@
  */
 
 #import <Foundation/Foundation.h>
-#import "FIRInstanceIDCheckinService.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
 
 @class FIRInstanceIDCheckinPreferences;
 @class FIRInstanceIDStore;

+ 10 - 10
Firebase/InstanceID/FIRInstanceIDAuthService.m

@@ -14,16 +14,16 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDAuthService.h"
-
-#import "FIRInstanceIDCheckinPreferences+Internal.h"
-#import "FIRInstanceIDCheckinPreferences.h"
-#import "FIRInstanceIDCheckinPreferences_Private.h"
-#import "FIRInstanceIDConstants.h"
-#import "FIRInstanceIDDefines.h"
-#import "FIRInstanceIDLogger.h"
-#import "FIRInstanceIDStore.h"
-#import "NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/FIRInstanceIDAuthService.h"
+
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h"
+#import "Firebase/InstanceID/FIRInstanceIDConstants.h"
+#import "Firebase/InstanceID/FIRInstanceIDDefines.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDStore.h"
+#import "Firebase/InstanceID/NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 // Max time interval between checkin retry in seconds.
 static const int64_t kMaxCheckinRetryIntervalInSeconds = 1 << 5;

+ 2 - 2
Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.m

@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDBackupExcludedPlist.h"
+#import "Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h"
 
-#import "FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
 
 @interface FIRInstanceIDBackupExcludedPlist ()
 

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 @interface FIRInstanceIDCheckinPreferences (Internal)
 

+ 3 - 3
Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.m

@@ -14,10 +14,10 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDCheckinPreferences+Internal.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
 
-#import "FIRInstanceIDCheckinService.h"
-#import "FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
 
 static NSString *const kCheckinKeychainContentSeparatorString = @"|";
 

+ 4 - 4
Firebase/InstanceID/FIRInstanceIDCheckinPreferences.m

@@ -14,11 +14,11 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDCheckinPreferences.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
-#import "FIRInstanceIDCheckinService.h"
-#import "FIRInstanceIDUtilities.h"
-#import "GoogleUtilities/UserDefaults/Private/GULUserDefaults.h"
+#import <GoogleUtilities/GULUserDefaults.h>
+#import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
 
 const NSTimeInterval kFIRInstanceIDDefaultCheckinInterval = 7 * 24 * 60 * 60;  // 7 days.
 

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import <FirebaseInstanceID/FIRInstanceIDCheckinPreferences.h>
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 /** Checkin refresh interval. **/
 FOUNDATION_EXPORT const NSTimeInterval kFIRInstanceIDDefaultCheckinInterval;

+ 2 - 2
Firebase/InstanceID/FIRInstanceIDCheckinService.h

@@ -16,8 +16,8 @@
 
 #import <Foundation/Foundation.h>
 
-#import <FirebaseInstanceID/FIRInstanceID+Private.h>
-#import "FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/Private/FIRInstanceID+Private.h"
 
 NS_ASSUME_NONNULL_BEGIN
 

+ 9 - 9
Firebase/InstanceID/FIRInstanceIDCheckinService.m

@@ -14,15 +14,15 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDCheckinService.h"
-
-#import "FIRInstanceIDCheckinPreferences+Internal.h"
-#import "FIRInstanceIDCheckinPreferences_Private.h"
-#import "FIRInstanceIDDefines.h"
-#import "FIRInstanceIDLogger.h"
-#import "FIRInstanceIDStore.h"
-#import "FIRInstanceIDUtilities.h"
-#import "NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
+
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h"
+#import "Firebase/InstanceID/FIRInstanceIDDefines.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDStore.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/NSError+FIRInstanceID.h"
 
 static NSString *const kDeviceCheckinURL = @"https://device-provisioning.googleapis.com/checkin";
 

+ 10 - 11
Firebase/InstanceID/FIRInstanceIDCheckinStore.m

@@ -14,17 +14,16 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDCheckinStore.h"
-
-#import "FIRInstanceIDAuthKeyChain.h"
-#import "FIRInstanceIDBackupExcludedPlist.h"
-#import "FIRInstanceIDCheckinPreferences+Internal.h"
-#import "FIRInstanceIDCheckinPreferences_Private.h"
-#import "FIRInstanceIDCheckinService.h"
-#import "FIRInstanceIDLogger.h"
-#import "FIRInstanceIDUtilities.h"
-#import "FIRInstanceIDVersionUtilities.h"
-#import "NSError+FIRInstanceID.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinStore.h"
+
+#import "Firebase/InstanceID/FIRInstanceIDAuthKeyChain.h"
+#import "Firebase/InstanceID/FIRInstanceIDBackupExcludedPlist.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences+Internal.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinPreferences_Private.h"
+#import "Firebase/InstanceID/FIRInstanceIDCheckinService.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDUtilities.h"
+#import "Firebase/InstanceID/NSError+FIRInstanceID.h"
 
 static NSString *const kFIRInstanceIDCheckinKeychainGeneric = @"com.google.iid";
 

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDCombinedHandler.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDCombinedHandler.h"
+#import "Firebase/InstanceID/FIRInstanceIDCombinedHandler.h"
 
 NS_ASSUME_NONNULL_BEGIN
 

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDConstants.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDConstants.h"
+#import "Firebase/InstanceID/FIRInstanceIDConstants.h"
 
 // Commands
 NSString *const kFIRInstanceID_CMD_RST = @"RST";

+ 2 - 2
Firebase/InstanceID/FIRInstanceIDKeychain.m

@@ -14,9 +14,9 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDKeychain.h"
+#import "Firebase/InstanceID/FIRInstanceIDKeychain.h"
 
-#import "FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
 
 NSString *const kFIRInstanceIDKeychainErrorDomain = @"com.google.iid";
 

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDLogger.h

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRIMessageCode.h"
+#import "Firebase/InstanceID/FIRIMessageCode.h"
 
 // The convenience macros are only defined if they haven't already been defined.
 #ifndef FIRInstanceIDLoggerInfo

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDLogger.m

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
 
 #import "FirebaseCore/Sources/Private/FirebaseCoreInternal.h"
 

+ 7 - 8
Firebase/InstanceID/FIRInstanceIDStore.m

@@ -14,14 +14,13 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDStore.h"
-
-#import "FIRInstanceIDCheckinPreferences.h"
-#import "FIRInstanceIDCheckinStore.h"
-#import "FIRInstanceIDConstants.h"
-#import "FIRInstanceIDLogger.h"
-#import "FIRInstanceIDTokenStore.h"
-#import "FIRInstanceIDVersionUtilities.h"
+#import "Firebase/InstanceID/FIRInstanceIDStore.h"
+
+#import "Firebase/InstanceID/FIRInstanceIDCheckinStore.h"
+#import "Firebase/InstanceID/FIRInstanceIDConstants.h"
+#import "Firebase/InstanceID/FIRInstanceIDLogger.h"
+#import "Firebase/InstanceID/FIRInstanceIDTokenStore.h"
+#import "Firebase/InstanceID/Private/FIRInstanceIDCheckinPreferences.h"
 
 // NOTE: These values should be in sync with what InstanceID saves in as.
 static NSString *const kCheckinFileName = @"g-checkin";

+ 1 - 1
Firebase/InstanceID/FIRInstanceIDTokenDeleteOperation.h

@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#import "FIRInstanceIDTokenOperation.h"
+#import "Firebase/InstanceID/FIRInstanceIDTokenOperation.h"
 
 NS_ASSUME_NONNULL_BEGIN
 

Неке датотеке нису приказане због велике количине промена