-
-
Save GoMino/0bf60ccdaeafb10b061f828fd4e8b5ac to your computer and use it in GitHub Desktop.
Firebase stage + Prod config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| STEP 1. | |
| Add a flag in the "Other Swift Flags" like -DENVConfigStaging to a debug target. | |
| Now when you build this target you have a debug flag set, otherwise assume production. | |
| STEP 2. | |
| Add the staging and production GoogleService-Info.plist(s) | |
| STEP 3. | |
| Add a build phase script to look for the build flag and copy the appropriate GoogleService-Info.plist to the built .app before codesigning it | |
| Doing this allows you to create a class like EnvConfig.swift to define env specific stuff | |
| You can do the same thing with GCC preprocessor flags, etc.. if you don't swift | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| CURRENT_DIR=`pwd -P` | |
| SOURCE_DIR="$CURRENT_DIR/PROJECTNAME/" | |
| if [[ $OTHER_SWIFT_FLAGS == *"-DENVConfigStaging"* ]] | |
| then | |
| cp "$SOURCE_DIR/GoogleService-Info.plist.staging" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" | |
| else | |
| cp "$SOURCE_DIR/GoogleService-Info.plist.production" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist" | |
| fi |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import Foundation | |
| @objc(EnvConfig) | |
| class EnvConfig: NSObject { | |
| #if ENVConfigStaging | |
| class var isProduction:Bool { | |
| return false | |
| } | |
| #else | |
| class var isProduction:Bool { | |
| return true | |
| } | |
| #endif | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment