{"id":5766,"date":"2020-01-17T15:57:00","date_gmt":"2020-01-17T10:27:00","guid":{"rendered":"https:\/\/www.innovationm.com\/blog\/?p=5766"},"modified":"2026-01-14T11:54:30","modified_gmt":"2026-01-14T06:24:30","slug":"multiple-firebase-environmentsgoogleservice-info-plist-in-ios","status":"publish","type":"post","link":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/","title":{"rendered":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS"},"content":{"rendered":"<p>A common scenario in application development is to have different\u00a0<strong class=\"gu hg\">environments<\/strong>, such as D<em class=\"ia\">ebug<\/em>,\u00a0<em class=\"ia\">QA<\/em>, P<em class=\"ia\">roduction<\/em>\u2026 can be resolve via\u00a0Multiple Firebase Environments.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong>Requirement of having\u00a0Multiple Firebase Environments :<\/strong><\/span><\/h2>\n<p>While your app is in development mode, or while it is being tested by the\u00a0<em>QA\u00a0<\/em>department, some \u201c<strong class=\"gu hg\">data pollution<\/strong>\u201d could reach Firebase servers.<\/p>\n<p>Imagine your application is going to use\u00a0<i>Firebase Analytics and Firebase Realtime Database<\/i>. The QA has received your build and is going to try it. They will navigate through the app, make taps on buttons, insert data on the database\u2026 You are sending \u201c<b>fake information<\/b>\u201d to Firebase, and you don\u2019t want to mix this pollution data with the production\u00a0database.<\/p>\n<p>In other words, you could be\u00a0<b>mixing events<\/b>\u00a0from your testers which you only want for testing purposes, with\u00a0end-users\u00a0information which you do want for the correct behavior of your\u00a0application.\u00a0The\u00a0<b>solution\u00a0<\/b>consists of\u00a0<b>having different environments<\/b>\u00a0in your application, so that information from each one gets isolated and is not mixed with the others.<\/p>\n<h2><span style=\"text-decoration: underline;\"><strong><span class=\"TextRun MacChromeBold Underlined SCXW192974936 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW192974936 BCX0\">Setting up Firebase environments in XCode<\/span><\/span><span class=\"EOP SCXW192974936 BCX0\">\u00a0<\/span><\/strong><\/span><\/h2>\n<ol>\n<li><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">I<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">n the<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">\u00a0<\/span><\/span><a class=\"Hyperlink BCX0 SCXW19875989\" href=\"https:\/\/console.firebase.google.com\/\" target=\"_blank\" rel=\"noreferrer noopener\"><span class=\"TextRun MacChromeBold BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">Firebase console<\/span><\/span><\/a><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">, create two separate projects (not applications): one will be for\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">debug<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">\u00a0environment and the other for the\u00a0<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">release<\/span><\/span><span class=\"TextRun BCX0 SCXW19875989\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun BCX0 SCXW19875989\">\u00a0one. Name them appropriately so that you don\u2019t confuse them.<img fetchpriority=\"high\" decoding=\"async\" class=\"aligncenter size-full wp-image-5769\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/1.png\" alt=\"\" width=\"567\" height=\"377\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/1.png 567w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/1-300x199.png 300w\" sizes=\"(max-width: 567px) 100vw, 567px\" \/><\/span><\/span><\/li>\n<li><span class=\"TextRun SCXW256144765 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW256144765 BCX0\">Create an iOS app for each project. Be careful to enter the\u00a0<\/span><\/span><span class=\"TextRun SCXW256144765 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW256144765 BCX0\">bundle id\u00a0<\/span><\/span><span class=\"TextRun SCXW256144765 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW256144765 BCX0\">you assigned to each project in\u00a0<\/span><\/span><span class=\"TextRun SCXW256144765 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW256144765 BCX0\">xcode<\/span><\/span><span class=\"TextRun SCXW256144765 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW256144765 BCX0\">.<\/span><\/span><span class=\"EOP SCXW256144765 BCX0\">\u00a0<\/span><\/li>\n<li><span class=\"TextRun SCXW40890029 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW40890029 BCX0\">Download the\u00a0<\/span><\/span><span class=\"TextRun MacChromeBold SCXW40890029 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW40890029 BCX0\">GoogleService-Info.plist<\/span><\/span><span class=\"TextRun SCXW40890029 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW40890029 BCX0\">\u00a0generated by Firebase for each project. By now, save them in different locations on your hard drive.\u00a0<\/span><\/span><span class=\"EOP SCXW40890029 BCX0\">\u00a0<img decoding=\"async\" class=\"aligncenter size-full wp-image-5770\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2.png\" alt=\"\" width=\"1382\" height=\"814\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2.png 1382w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2-300x177.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2-768x452.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2-1024x603.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/2-624x368.png 624w\" sizes=\"(max-width: 1382px) 100vw, 1382px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW59653337 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW59653337 BCX0\">In\u00a0<\/span><\/span><span class=\"TextRun SCXW59653337 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW59653337 BCX0\">xcode<\/span><\/span><span class=\"TextRun SCXW59653337 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW59653337 BCX0\">\u00a0project navigator, create a new group and name\u00a0<\/span><\/span><span class=\"TextRun SCXW59653337 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"ContextualSpellingAndGrammarError SCXW59653337 BCX0\">it<\/span><\/span><span class=\"TextRun SCXW59653337 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW59653337 BCX0\">\u00a0&#8220;Firebase&#8221;.<\/span><\/span><span class=\"EOP SCXW59653337 BCX0\">\u00a0<img decoding=\"async\" class=\"aligncenter size-full wp-image-5771\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3.png\" alt=\"\" width=\"1812\" height=\"1274\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3.png 1812w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3-300x211.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3-768x540.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3-1024x720.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/3-624x439.png 624w\" sizes=\"(max-width: 1812px) 100vw, 1812px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW14446078 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW14446078 BCX0\">Inside \u201cFirebase\u201d directory, create two child directories named \u201cDebug\u201d and \u201cRelease\u201d<\/span><\/span><span class=\"EOP SCXW14446078 BCX0\">\u00a0<\/span><\/li>\n<li><span class=\"TextRun SCXW173818850 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW173818850 BCX0\">In the project navigator, right-click on the new \u201cDebug\u201d folder and select \u201cAdd Files to\u2026\u201d.<\/span><\/span><span class=\"EOP SCXW173818850 BCX0\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5772\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4.png\" alt=\"\" width=\"1806\" height=\"1334\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4.png 1806w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4-300x222.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4-768x567.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4-1024x756.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/4-624x461.png 624w\" sizes=\"(max-width: 1806px) 100vw, 1806px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">You will come up with a new window. Navigate to the location of your\u00a0<\/span><\/span><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">debug<\/span><\/span><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">\u00a0<\/span><\/span><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW144368047 BCX0\">plist<\/span><\/span><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">\u00a0file and select it. Make sure to\u00a0<\/span><\/span><span class=\"TextRun MacChromeBold SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">uncheck<\/span><\/span><span class=\"TextRun SCXW144368047 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144368047 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW144368047 BCX0\">\u201cAdd to targets\u201d options and that \u201cCopy items if needed\u201d and \u201cCreate groups\u201d are checked.<\/span><\/span><span class=\"EOP SCXW144368047 BCX0\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5773\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5.png\" alt=\"\" width=\"2179\" height=\"1114\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5.png 2179w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5-300x153.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5-768x393.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5-1024x524.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/5-624x319.png 624w\" sizes=\"(max-width: 2179px) 100vw, 2179px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW32520749 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW32520749 BCX0\">Repeat the last step for the\u00a0<\/span><\/span><span class=\"TextRun SCXW32520749 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW32520749 BCX0\">release\u00a0<\/span><\/span><span class=\"TextRun SCXW32520749 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW32520749 BCX0\">plist<\/span><\/span><span class=\"TextRun SCXW32520749 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW32520749 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW32520749 BCX0\">file, adding it to \u201cRelease\u201d folder. So far, your project navigator should look like this:<\/span><\/span><span class=\"EOP SCXW32520749 BCX0\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5774\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6.png\" alt=\"\" width=\"1096\" height=\"914\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6.png 1096w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6-300x250.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6-768x640.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6-1024x854.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/6-624x520.png 624w\" sizes=\"(max-width: 1096px) 100vw, 1096px\" \/><\/span><span class=\"TextRun SCXW28386860 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW28386860 BCX0\">If you accidentally did not uncheck the \u201cAdd to targets\u201d option, click on the\u00a0<\/span><\/span><span class=\"TextRun SCXW28386860 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW28386860 BCX0\">plist<\/span><\/span><span class=\"TextRun SCXW28386860 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW28386860 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW28386860 BCX0\">file and uncheck the \u201cTarget Membership\u201d option, located on the file inspector, at the right side of\u00a0<\/span><span class=\"SpellingError SCXW28386860 BCX0\">xcode<\/span><span class=\"NormalTextRun SCXW28386860 BCX0\">. You may be asking why we have to uncheck this option. The reason is that, at compile-time, we will tell\u00a0<\/span><span class=\"SpellingError SCXW28386860 BCX0\">Xcode<\/span><span class=\"NormalTextRun SCXW28386860 BCX0\">\u00a0which of the two files it must copy to the final app bundle. If both files were checked to be in the app bundle, an error will raise because they are named the same.<\/span><\/span><span class=\"EOP SCXW28386860 BCX0\">\u00a0<\/span><\/li>\n<li><span class=\"TextRun SCXW144843845 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144843845 BCX0\">In the project navigator, select the app target, switch to the \u201cBuild phases\u201d tab, click the plus sign at the top and select\u00a0<\/span><\/span><span class=\"TextRun MacChromeBold SCXW144843845 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW144843845 BCX0\">New Run Script Phase.<\/span><\/span><span class=\"EOP SCXW144843845 BCX0\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5775\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7.png\" alt=\"\" width=\"2052\" height=\"1004\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7.png 2052w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7-300x147.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7-768x376.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7-1024x501.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/7-624x305.png 624w\" sizes=\"(max-width: 2052px) 100vw, 2052px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW122311289 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW122311289 BCX0\">Name the phase \u201cSetup Firebase\u00a0<\/span><\/span><span class=\"TextRun SCXW122311289 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW122311289 BCX0\">plist<\/span><\/span><span class=\"TextRun SCXW122311289 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW122311289 BCX0\">\u00a0files\u201d and add it below the \u201cLink Binary with Libraries\u201d step.<\/span><\/span><span class=\"EOP SCXW122311289 BCX0\">\u00a0<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-5776\" src=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8.png\" alt=\"\" width=\"2045\" height=\"896\" srcset=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8.png 2045w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8-300x131.png 300w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8-768x336.png 768w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8-1024x449.png 1024w, https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/8-624x273.png 624w\" sizes=\"(max-width: 2045px) 100vw, 2045px\" \/><\/span><\/li>\n<li><span class=\"TextRun SCXW98303908 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW98303908 BCX0\">Create a new shell script that will copy the appropriate\u00a0<\/span><\/span><span class=\"TextRun SCXW98303908 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW98303908 BCX0\">list<\/span><\/span><span class=\"TextRun SCXW98303908 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW98303908 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW98303908 BCX0\">file to the app bundle based on the current build configuration selected. Copy and paste the following code into the run script phase you just created:<\/span><\/span><span class=\"EOP SCXW98303908 BCX0\"><span class=\"EOP SCXW98303908 BCX0\"><span class=\"EOP SCXW98303908 BCX0\">\u00a0<\/span><\/span><\/span>\n<pre class=\"lang:swift decode:true\"># Name of the resource to copy\r\nINFO_PLIST_FILE=GoogleService-Info.plist\r\n\r\n# Get references to debug and release versions of the plist file\r\nDEBUG_INFO_PLIST_FILE=${PROJECT_DIR}\/${TARGET_NAME}\/Firebase\/Debug\/${INFO_PLIST_FILE}\r\nRELEASE_INFO_PLIST_FILE=${PROJECT_DIR}\/${TARGET_NAME}\/Firebase\/Release\/${INFO_PLIST_FILE}\r\n\r\n# Make sure the debug version exists\r\necho \"Looking for ${INFO_PLIST_FILE} in ${DEBUG_INFO_PLIST_FILE}\"\r\nif [ ! -f $DEBUG_INFO_PLIST_FILE ] ; then\r\n    echo \"File GoogleService-Info.plist (debug) not found.\"\r\n    exit 1\r\nfi\r\n\r\n# Make sure the release version exists\r\necho \"Looking for ${INFO_PLIST_FILE} in ${RELEASE_INFO_PLIST_FILE}\"\r\nif [ ! -f $RELEASE_INFO_PLIST_FILE ] ; then\r\n    echo \"File GoogleService-Info.plist (release) not found.\"\r\n    exit 1\r\nfi\r\n\r\n# Get a reference to the destination location for the plist file\r\nPLIST_DESTINATION=${BUILT_PRODUCTS_DIR}\/${PRODUCT_NAME}.app\r\necho \"Copying ${INFO_PLIST_FILE} to final destination: ${PLIST_DESTINATION}\"\r\n\r\n# Copy the appropiate file to app bundle\r\nif [ \"${CONFIGURATION}\" == \"Debug\" ] ; then\r\n    echo \"File ${DEBUG_INFO_PLIST_FILE} copied\"\r\n    cp \"${DEBUG_INFO_PLIST_FILE}\" \"${PLIST_DESTINATION}\"\r\nelse\r\n    echo \"File ${RELEASE_INFO_PLIST_FILE} copied\"\r\n    cp \"${RELEASE_INFO_PLIST_FILE}\" \"${PLIST_DESTINATION}\"\r\nfi<\/pre>\n<\/li>\n<li><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW238786701 BCX0\">Select the \u201cDebug\u201d build scheme and build your app by pressing\u00a0<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW238786701 BCX0\">Cmd+B<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW238786701 BCX0\">\u00a0and ensure the build process completes successfully without any errors. After that, right-click on the\u00a0<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW238786701 BCX0\">.app<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW238786701 BCX0\">\u00a0file under the \u201cProducts\u201d section of\u00a0<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW238786701 BCX0\">Xcode<\/span><\/span><span class=\"TextRun SCXW238786701 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW238786701 BCX0\">\u00a0project navigator and select\u00a0 &#8220;Show in Finder&#8221;.<\/span><\/span><span class=\"EOP SCXW238786701 BCX0\">\u00a0<\/span><\/li>\n<li><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">Change the build scheme to\u00a0<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">release<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">\u00a0and build your app again. Do the same as before and inside the\u00a0<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">.app<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">\u00a0file make sure\u00a0<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"SpellingError SCXW101756703 BCX0\">GoogleService-Info.plist<\/span><\/span><span class=\"TextRun SCXW101756703 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW101756703 BCX0\">\u00a0<\/span><span class=\"NormalTextRun SCXW101756703 BCX0\">file is there.<\/span><\/span><span class=\"EOP SCXW101756703 BCX0\">\u00a0<\/span><\/li>\n<\/ol>\n<p><strong>You can also read our Blogs on Firebase:<\/strong><\/p>\n<p><strong><a href=\"https:\/\/www.innovationm.com\/blog\/firebase-crashlytics-integration-in-ios-swift-dsym-file-required-problem-resolved\/\">1-<\/a> Firebase Crashlytics Integration In iOS Swift (dSYM File Required Problem Resolved).<\/strong><\/p>\n<p><strong>2-\u00a0Firebase Authentication in iOS<\/strong><\/p>\n<h2><span style=\"text-decoration: underline;\"><span class=\"TextRun MacChromeBold Underlined SCXW145597684 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW145597684 BCX0\">Conclusion:<\/span><\/span><\/span><\/h2>\n<p><span class=\"TextRun SCXW83933087 BCX0\" lang=\"EN-US\" xml:lang=\"EN-US\"><span class=\"NormalTextRun SCXW83933087 BCX0\">You now are able to use different Firebase projects for your application environments, so that data generated by each version does not get mixed with the others.<\/span><\/span><\/p>\n<p>InnovationM is a globally renowned\u00a0Mobile application development company in India\u00a0that caters to a strong &amp; secure Android app development, iOS app development, hybrid app development services. Our commitment &amp; engagement towards our target gives us brighter in the world of technology and has led us to establish success stories consecutively which makes us the best\u00a0iOS application development company in India.<\/p>\n<p>Thanks for giving your valuable time. Keep reading and keep learning.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A common scenario in application development is to have different\u00a0environments, such as Debug,\u00a0QA, Production\u2026 can be resolve via\u00a0Multiple Firebase Environments. Requirement of having\u00a0Multiple Firebase Environments : While your app is in development mode, or while it is being tested by the\u00a0QA\u00a0department, some \u201cdata pollution\u201d could reach Firebase servers. Imagine your application is going to use\u00a0Firebase [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":5782,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,71],"tags":[],"class_list":["post-5766","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","category-mobile"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog\" \/>\n<meta property=\"og:description\" content=\"A common scenario in application development is to have different\u00a0environments, such as Debug,\u00a0QA, Production\u2026 can be resolve via\u00a0Multiple Firebase Environments. Requirement of having\u00a0Multiple Firebase Environments : While your app is in development mode, or while it is being tested by the\u00a0QA\u00a0department, some \u201cdata pollution\u201d could reach Firebase servers. Imagine your application is going to use\u00a0Firebase [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/\" \/>\n<meta property=\"og:site_name\" content=\"InnovationM - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-17T10:27:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-01-14T06:24:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1141\" \/>\n\t<meta property=\"og:image:height\" content=\"634\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"InnovationM Admin\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"InnovationM Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/\"},\"author\":{\"name\":\"InnovationM Admin\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"headline\":\"Multiple Firebase Environments(GoogleService-Info.plist) in iOS\",\"datePublished\":\"2020-01-17T10:27:00+00:00\",\"dateModified\":\"2026-01-14T06:24:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/\"},\"wordCount\":727,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/Blog-IOS.png\",\"articleSection\":[\"iOS\",\"Mobile\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/\",\"name\":\"Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/Blog-IOS.png\",\"datePublished\":\"2020-01-17T10:27:00+00:00\",\"dateModified\":\"2026-01-14T06:24:30+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/Blog-IOS.png\",\"contentUrl\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/Blog-IOS.png\",\"width\":1141,\"height\":634,\"caption\":\"Fire base Environment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Multiple Firebase Environments(GoogleService-Info.plist) in iOS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/\",\"name\":\"InnovationM - Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/#\\\/schema\\\/person\\\/a831bf4602d69d1fa452e3de0c8862ed\",\"name\":\"InnovationM Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g\",\"caption\":\"InnovationM Admin\"},\"sameAs\":[\"http:\\\/\\\/www.innovationm.com\\\/\"],\"url\":\"https:\\\/\\\/www.innovationm.com\\\/blog\\\/author\\\/innovationmadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/","og_locale":"en_US","og_type":"article","og_title":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog","og_description":"A common scenario in application development is to have different\u00a0environments, such as Debug,\u00a0QA, Production\u2026 can be resolve via\u00a0Multiple Firebase Environments. Requirement of having\u00a0Multiple Firebase Environments : While your app is in development mode, or while it is being tested by the\u00a0QA\u00a0department, some \u201cdata pollution\u201d could reach Firebase servers. Imagine your application is going to use\u00a0Firebase [&hellip;]","og_url":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/","og_site_name":"InnovationM - Blog","article_published_time":"2020-01-17T10:27:00+00:00","article_modified_time":"2026-01-14T06:24:30+00:00","og_image":[{"width":1141,"height":634,"url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png","type":"image\/png"}],"author":"InnovationM Admin","twitter_misc":{"Written by":"InnovationM Admin","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#article","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/"},"author":{"name":"InnovationM Admin","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"headline":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS","datePublished":"2020-01-17T10:27:00+00:00","dateModified":"2026-01-14T06:24:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/"},"wordCount":727,"commentCount":1,"image":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png","articleSection":["iOS","Mobile"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/","url":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/","name":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS - InnovationM - Blog","isPartOf":{"@id":"https:\/\/www.innovationm.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#primaryimage"},"image":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#primaryimage"},"thumbnailUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png","datePublished":"2020-01-17T10:27:00+00:00","dateModified":"2026-01-14T06:24:30+00:00","author":{"@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed"},"breadcrumb":{"@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#primaryimage","url":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png","contentUrl":"https:\/\/www.innovationm.com\/blog\/wp-content\/uploads\/2020\/01\/Blog-IOS.png","width":1141,"height":634,"caption":"Fire base Environment"},{"@type":"BreadcrumbList","@id":"https:\/\/www.innovationm.com\/blog\/multiple-firebase-environmentsgoogleservice-info-plist-in-ios\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.innovationm.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Multiple Firebase Environments(GoogleService-Info.plist) in iOS"}]},{"@type":"WebSite","@id":"https:\/\/www.innovationm.com\/blog\/#website","url":"https:\/\/www.innovationm.com\/blog\/","name":"InnovationM - Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.innovationm.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.innovationm.com\/blog\/#\/schema\/person\/a831bf4602d69d1fa452e3de0c8862ed","name":"InnovationM Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c99d9eece9dfbc82297cf34ddd58e9fe05bb52fe66c8f6bf6c0a45bfb6d7629?s=96&r=g","caption":"InnovationM Admin"},"sameAs":["http:\/\/www.innovationm.com\/"],"url":"https:\/\/www.innovationm.com\/blog\/author\/innovationmadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/5766","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/comments?post=5766"}],"version-history":[{"count":1,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/5766\/revisions"}],"predecessor-version":[{"id":8930,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/posts\/5766\/revisions\/8930"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media\/5782"}],"wp:attachment":[{"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/media?parent=5766"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/categories?post=5766"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.innovationm.com\/blog\/wp-json\/wp\/v2\/tags?post=5766"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}