* Enable async/await APIs for iOS 13, etc. This bumps the required compiler version to 5.5.2 which was included in Xcode 13.2, where backporting was first introduced. This breaks less developers and enables developers who aren't using these APIs to still compile using Xcode 13.0 and 13.1. As far as I can tell, the only breakage this includes now is developers who are using Xcode 13.0 or 13.1, targeting iOS 15 and using one of these 7 APIs. It will result in a compiler error and they'll have to either use the completion handler version or upgrade to Xcode 13.2+ to fix the compilation error. * Missed checks, CHANGELOG * Fixed avialability, added watchOS for RTDB * Moved to watchOS 7 for all async/await APIs to match platform support
Remote Config Swift Tests
Currently the Remote Config tests run in two configurations:
- Fake Console - mocks the console to run tests with a dummy GoogleService-Info.plist.
- Remote Config Console API - relies on generating an access token to use a real Firebase project.
Remote Config Console API
RemoteConfigConsole.swift
provides a simple API for interacting with an app's Remote Config on the
Firebase console.
Local Development Setup
- Create a Firebase project on the Firebase Console and download
the
GoogleService-Info.plist. - Navigate to your project's settings. Click on the Service accounts tab and
then download a private key by clicking the blue button that says "Generate new private key".
Rename it
ServiceAccount.json. - Within the
firebase-ios-sdk, run:
./scripts/generate_access_token.sh local_dev PATH/TO/ServiceAccount.json FirebaseRemoteConfigSwift/Tests/AccessToken.json
- Generate the
FirebaseRemoteConfigproject:
pod gen FirebaseRemoteConfig.podspec --local-sources=./ --auto-open --platforms=ios
- Copy the
GoogleService-Info.plistyou downloaded earlier into the generated Xcode project.
🚀 Everything is ready to go! Run the tests in the swift-api-tests target.
How it works
While the RemoteConfigConsole API basically just makes simple network calls,
we need to include an access token so our requests do the proper "handshake" with the Firebase console.
Firebase Service Account Private Key
This private key is needed to create an access token with the valid parameters that authorizes our requests to programmatically make changes to remote config on the Firebase console.
The private key can be located on the Firebase console and navigate to your project's settings. To download, click on the Service accounts tab and then generate the private key by clicking the blue button that says "Generate new private key".
Create the Access Token
We use Google's Auth Library for Swift
to generate the access token. There are a few example use cases provided. We use the
TokenSource
example.
For the access token to be generated, the GOOGLE_APPLICATION_CREDENTIALS env var should be set to point to where the
Firebase project's service account key is stored. This is set in the
generate_access_token.sh
script.
Remote Config API Tests
There is a section
of tests in APITests.swift
showcasing the RemoteConfigConsole in action.