🧠 AndroidビルドでPlayFabのSecretKeyが丸見えだった話と、ビルド時に自動変換する対策
📌 この記事は Zenn に投稿した内容のアーカイブです。 はじめに PlayFab を使ったプロジェクトで、 TitleId や DeveloperSecretKey をどう管理するかは、最初に一度は悩むポイントだと思います。 自分も最初は深く考えずに、 const string TitleId = "XXXX"; const string DeveloperSecretKey = "YYYY"; のようにコードに直接書いていました。 ところが Android ビルド後に apk を確認してみると、 strings コマンドで 平文のままキーが抜ける ことに気づき、 「これはさすがにまずいな……」となったのが今回のきっかけです。 問題点:apk 内に平文で残る C# のコードに直接書いた文字列は、 IL2CPP でも 難読化をしていても 最終的に 文字列リテラルとして apk 内に残ります 。 つまり、 strings app.apk を叩くだけで、TitleId や SecretKey が見えてしまう状態でした。 もちろん「完全に隠す」ことは不可能ですが、 平文で置いておくのはリスクが高すぎる と判断しました。 方針:コードには平文を置かない 今回の方針はシンプルです。 ソースコード内に 平文のキーを一切書かない ビルド時に Editor 側で変換・生成する ランタイムでは最小限の復号処理だけ行う いわゆる「秘匿」というより、 apk を覗かれたときに即バレしない状態を作る のが目的です。 実装概要 実装は以下の流れにしました。 Editor フォルダ内 ...