本記事内の Unity サンプルプロジェクトを起動した際のスクショ

📔 Unity で iOS/Android アプリの設定値をセキュアに扱う方法

はじめに iOS/Android でユーザーの情報をセキュアに扱う必要があったので、調査したところ Android には EncryptedSharedPreferences が存在することを知りました。iOS には Keychain Services が存在します。 今回は Unity の iOS/Android プラットフォーム上で設定値を保存するための実装を行う必要があったので、Unity から扱えるようネイティブプラグインを作成しました。今後もこういった要望はありそうでしたので、記事として手順や内容を書き記しておくことにしました。 本記事内で紹介しているコードは下記にアップ済みです。 https://github.com/nikaera/Unity-iOS-Android-SecretManager-Sample 動作環境 MacBook Air (M1, 2020) Unity 2020.3.15f2 Android 6.0 以上 EncryptedSharedPreferences が使用可能なバージョン Android のネイティブプラグインを作成する Android 環境ではまず External Dependency Manager for Unity を利用して、Unity の Android ネイティブプラグインで EncryptedSharedPreferences 利用可能にします。 (追記) Gradle を利用したライブラリのインストール方法 shiena さんにご教授いただいたのですが、こちらの記事のように Gradle を利用することでも簡易にライブラリの取り込みが可能なようでした。 手順は上記の記事をご参照いただくとして、Gradle を利用する方法で外部ライブラリを取り込む際の Assets/Plugins/Android/mainTemplate.gradle および Assets/Plugins/Android/gradleTemplate.properties は下記になります。 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.security:security-crypto:1.1.0-alpha03' **DEPS**} android { org.gradle.jvmargs=-Xmx**JVM_HEAP_SIZE**M org.gradle.parallel=true android.enableR8=**MINIFY_WITH_R_EIGHT** + android.useAndroidX=true unityStreamingAssets=.unity3d**STREAMING_ASSETS** **ADDITIONAL_PROPERTIES** Gradle を利用した方法でライブラリを利用される際は、次の External Dependency Manager for Unity で必要なパッケージをインストールする の手順はスキップ可能です。EncryptedSharedPreferences を利用するためのネイティブコードを追加する のステップから進めてください。 ...

8月 15, 2021 · 7 分 · Me
[GameCI](https://game.ci) のトップ画面 (カッコいい)

📔 GameCI で Unity の CI 環境を GitHub Actions で構築する

はじめに 先日同僚が Unity の CI 環境を構築するためのライブラリである GameCI について教えてくれました。早速 GameCI の GitHub Actions を利用して、サンプルプロジェクトで色々動作検証してみたところ、Unity の CI 環境を楽に構築できることが分かりました。 もちろん、Unity Cloud Build を利用すれば CI 環境の構築は以前から楽にできました。しかし、選択肢の 1 つとして GameCI を持っておくことで、サクッと GitHub Actions に統合する形で Unity の CI 環境を導入できるのは他には無いメリットを感じました。 本記事で紹介しているソースコード、及び検証時に利用したプロジェクトは GitHub にアップ済みですので、手っ取り早く内容を把握されたい方は下記をご参照くださいませ。 https://github.com/nikaera/Unity-GameCI-Sample 業務でも利用できそうなので、GameCI を利用して CI 環境を構築する手順を記事でまとめました。 GameCI に備わっている機能紹介 GameCI には現状下記の GitHub Actions が用意されているようです。 機能 概要 Activation Unity ライセンスを任意の Unity バージョンで発行する Test runner Unity の PlayMode 及び EditMode のテストを実行する (テスト結果の出力にも対応) Builder 任意の Platform ビルドを実行する (アーティファクト 利用でダウンロードも可能) Returning a license Unity ライセンスの返却ができる (Professional License のみ対応) Remote builder GitHub Actions のスペックでは満足のいくビルドができない際に AWS 環境でハイスペックなマシンを用意してビルドできる。ビルドのためのインフラ構築には AWS CloudFormation を使用している (現在は AWS のみ対応。今後 GCP, Azure にも対応予定とのこと) Deployment Unity ビルドを各種 Platform 向けにデプロイする (iOS 及び Android のみ記載あり。厳密に言うと Builder でビルド出力した内容を fastlane を用いてデプロイするためのワークフロー紹介になっている) 上記を見ると既に GameCI には開発者として Unity CI に欲しい機能は最低限揃っているように見受けられました。 また本記事では、今後機会があれば試してみたいと考えていますが Remote builder 及び Deployment については言及していません。 ...

5月 29, 2021 · 5 分 · Me