yukiarrr開発月誌

日誌になれなかった月誌(怠け)

UnityのライセンスでPersonal・Proなどプラン問わずシリアルコードを取得する

すごく裏技みたいです。

目次

はじめに

UnityをCLIで実行する際、手始めに認証する必要がありますが、その認証方法として、

  • ユーザー名、パスワード、シリアルコードでの認証
  • ライセンスファイルでの認証

の2つがあります。(Unity HubなどGUI経由だと、知らず知らずのうちにライセンスファイルが生成されています)

このうち、ライセンスファイル形式はファイルを作成したマシン上でしか認証することができず(コンテナ上なら共有できる)、CI/CDで適当なVMが割り当てられる場合だと認証が通らなかったりするので注意が必要です。

「なら、作成もそのVMでやってやればいいんじゃ」となりますが、この生成にはブラウザを経由する必要があり、無理をすればできないこともありませんが、ブラウザ側のUIが変わる可能性もあるので、お勧めできません。

ので、適当なVMが割り当てられるCI/CDの場合、ユーザー名、パスワード、シリアルコードでの認証を選択することになります。
そこで問題になるのが、Personalライセンスでのシリアルコードの取得です。

PersonalライセンスはProライセンスのようにメールでシリアルコードが送られてきたり、ブラウザで確認することもできないので、取得する術がありません。

ただ、Personalライセンスでも存在することだけは分かっていたので、どうにかこうにか弄って見つけた裏技ような取得方法を共有します。
(Proライセンスでも使える方法です)

取得手順

ライセンスファイルを取得する

シリアルコードを取得するために、まずはライセンスファイルを取得する必要があります。

そのため、まずはライセンス認証そのものをする必要がありますが、こちらも2種類の方法があります。

このうち、前者の場合は、最後の手順でダウンロードするulfファイルがライセンスファイルです。

後者の場合、すでにライセンスファイルが生成されています。以下のディレクトリを漁ってみてください。

OS パス
Mac /Library/Application Support/Unity/xxx.ulf
Windows C:\ProgramData\Unity\xxx.ulf

ライセンスファイルからDeveloperDataを探す

ライセンスファイルは拡張子がulfでxml形式となっています。
この中から、DeveloperDataを探してください。

<DeveloperData Value="WFgtWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYCg=="/>

このような記述が見つかると思います。
(このすぐ下にSerialMaskedというそれっぽい値があると思いますが、これはマスクされているので無視してください)

DeveloperDataをデコードすると…

このDeveloperDataの値はbase64エンコードされているので、デコードします。

$ echo "WFgtWFhYWC1YWFhYLVhYWFgtWFhYWC1YWFhYCg==" | base64 --decode
XX-XXXX-XXXX-XXXX-XXXX-XXXX

こちらのコマンドを実行するか、Base64のデコード - オンラインBase64のデコーダなどのサイトでデコードしてください。

上記は適当な文字列にしていますが、実際の環境で試してみると、ちゃんとしたシリアルコードが取得できているかと思います🎉
(先ほどのSerialMaskedの、マスクされてない値が取得できているはず)

まとめ

お疲れ様でした。
これでシリアルコードの取得は完了です。

この方法は、前述通りPersonal・Proなどプラン問わず適応可能なので、シリアルコードが必要になった場合には、お試しください。

では皆さま、体にはお気を付けて。
お読みいただき、ありがとうございました。