すごく裏技みたいです。
目次
はじめに
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などプラン問わず適応可能なので、シリアルコードが必要になった場合には、お試しください。
では皆さま、体にはお気を付けて。
お読みいただき、ありがとうございました。