Androidにてアプリを開発されている方々では常識だと思いますが、デフォルトで、debug/releaseとビルドを分けることができるようになっています。また、Flavorを使って、さらに細かくビルドを分けることができ、これらを使って複数のビルドを作成されている開発者の方も多くいらっしゃると思います。
これらのバリアントごとにNew Relicのキーを分けるための実装方法はいくつもあると思いますが、1つの例をこちらのブログで紹介します。
なお、本ブログは、こちらに記載の方法をわかりやすく解説したブログになります。
また、Android Agentの組み込みに関して、基本的にはドキュメントやUI上にて表示されるインストールガイドに従ってください。それらを行ったうえで、追加でご対応いただくこととなります。
まず、アプリレベルのbuild.gradleと同じフォルダに、newrelic-util.gradle
というファイルを作成し、以下のコードをそのまま貼り付けて保存してください。
なお、本コードで行われていることは、主に以下のとおりです。
- リソースフォルダにあるapi.xmlからnew_relic_key名前に格納されている値(APIキー)を取得する
- ビルド時に
newrelic.properties
を作成し、APIキーの内容を保存する - clean時に
newrelic.properties
を削除する
続いて、上記gradleスクリプトを実行するため、アプリレベルのbuild.gradle.ktsに以下のようにapplyを追加します。
なお、上記はgradleにKotlin DSLを利用した場合となります。Groovyを利用されている場合は、以下をコピーしてください。
続いて、APIキーの内容をリソースファイルに保存します。対象のプロジェクトの各ビルドバリアント用のフォルダのres/values配下にapi.xmlを作成してください。
続いて、api.xmlを以下のように編集して、対象のビルドバリアントで利用するAPIキーを設定してください。
続いて、Agentの初期化も上記リソースから読み込むように修正します。Agentの初期化するコードをLaunch activityに設定されていると思いますが、そちらを以下のように修正してください。
これで、終了です。APIキーがビルド時及び、起動時の両方にて、api.xmlに保存したキーが利用されるようになりました。アプリをビルドして、期待通りに動作する確認してみてください。
注意事項
複数のバリアントのビルドを並行して実行しないようにしてください。
newrelic-util.gradleにて設定されたスクリプトを理解された方はわかると思いますが、ビルド時にnewrelic.propertiesのファイルを作成しています。そのため、複数のバリアントのビルドを同時に実行した場合、異なるバリアントのキーが適用されることになり、Mapファイルのアップロードで利用されるキーが想定していたキーとは異なるキーが利用される可能性があります。
なお、mapファイルのアップロードはデフォルトではReleaseビルドのみとなっています。Debugビルドでもmapファイルをアップロードされる場合は、こちらのドキュメントに従い、設定を変更してください。
Les opinions exprimées sur ce blog sont celles de l'auteur et ne reflètent pas nécessairement celles de New Relic. Toutes les solutions proposées par l'auteur sont spécifiques à l'environnement et ne font pas partie des solutions commerciales ou du support proposés par New Relic. Veuillez nous rejoindre exclusivement sur l'Explorers Hub (discuss.newrelic.com) pour toute question et assistance concernant cet article de blog. Ce blog peut contenir des liens vers du contenu de sites tiers. En fournissant de tels liens, New Relic n'adopte, ne garantit, n'approuve ou n'approuve pas les informations, vues ou produits disponibles sur ces sites.