0

所以,我從一個代碼庫構建了一組應用程序,並且使用productFlavors來定製每個應用程序。我是否需要爲每個productFlavor添加一個新的google-services.json?

每種口味都需要對谷歌分析自身的跟蹤ID,所以我就開始生成新的谷歌,services.json針對每種口味,而且我發現有在谷歌開發者控制檯的限制。

的問題是,我怎麼可以使用所有的味道一樣JSON文件? (每種風格都有自己的applicationID)

或者我有什麼辦法?我只需要讓Google Analytics跟蹤工作,這就是爲什麼我甚至開始使用該文件的原因。

我想到了手動編輯每個文件,以改變其程序包和TRACKING_ID,但我不知道這是生產一種可行的選擇......

回答

2

所以我一直在尋找到它,並證明你真的需要爲每個味道一個新google-services.json

它似乎並沒有在第一次那麼多直觀的,但是當你正在創建的JSON文件,你需要設置相同的應用名稱:所有的口味,只是不同包名

例如:當您在this step中時,應用程序名稱爲MyApp,包名稱爲my.app.free

繼續,直到那裏你得到你下載的文件步驟結束。然後,只要到這一步了一遍,現在設置了相同的應用程序名稱(本例中MyApp),但隨着新包的名字(例如:my.app.pro)。

當您下載新的google-services.json時,它將針對這兩個軟件包以及不同的分析進行設置。

0

如果每個味道都有自己的applicationID和你想有一個不同的跟蹤Google Analytics的ID,那麼您需要爲每種口味生成google-services.json。

請小心,因爲谷歌-services.json必須在應用程序文件夾下放置,你需要時,你變了味道手動複製的味道谷歌,services.json到app文件夾。

這裏是我的方式做到這一點:

比方說,我們有兩種口味,開發和生產。然後在src/development/google-services文件夾中放置用於開發的google-services.json。並在src/production/google-services文件夾中進行生產。

enter image description here

這時我們就需要配置這些谷歌 - service.json文件的複製任務。把這個腳本放在app文件夾下的build.gradle中。對我而言,我把這個腳本放在android {...}之下。

android { 
    ... 
} 

task switchToDevelopment(type: Copy) { 
    description = 'Switches to DEVELOPMENT google-services.json' 
    from "src/development/google-services" 
    include "google-services.json" 
    into "." 
} 

task switchToProduction(type: Copy) { 
    description = 'Switches to PRODUCTION google-services.json' 
    from "src/production/google-services" 
    include "google-services.json" 
    into "." 
} 

afterEvaluate { 
    processDevelopmentDebugGoogleServices.dependsOn switchToDevelopment 
    processDevelopmentReleaseGoogleServices.dependsOn switchToDevelopment 

    processProductionDebugGoogleServices.dependsOn switchToProduction 
    processProductionReleaseGoogleServices.dependsOn switchToProduction 
} 

無論何時更改風格,都會執行該腳本。在執行process[FlavorBuildtypes]GoogleServices之前,它會將正確的google-services.json文件複製到應用程序文件夾中。希望能幫助到你! :)

相關問題