Open1

Unity2020.xからiOSアプリのProductNameの扱いが変わってそうな話

sukedonsukedon

別に大した影響は無さそうだけど、気になったのでメモ

Unity2019まではプロジェクトをUnity上でビルドした後、Xcodeプロジェクトの中のProductNameを見ると、bundleIdの.区切りの最後の単語になっていた。
例えば、自分のアプリで「大喜利オンライン」というものがあるんですが、そのbundleIdは
「com.staminatech.oogiri」

なんですね。

なのでProductNameは「oogiri」になっていて、パッケージ化されたappファイルを見てみると、

oogiri.app

という表示になってたんですね。

で、Unity2020からはこのProductNameの付け方がちょっと変わったようで、Unity上の「ProudctName」っていう項目をそのまま使うようになったみたいです。
ここのProductNameに入れた数値が端末のアプリ一覧の画面で表示されるので、「大喜利オンライン」って入れてます。

大喜利オンライン.app

という名前になるのかなと思いきや、日本語名を使っている場合は

ProductName.app

という表示になるようです。

ちなみに例えば「2048パズル」とProductNameに入れていた場合は、パズルの部分だけが消えて

2048.app

という名前になります。

だから何

まあ別にだから何って話なんですが、例えばUnity2019で作った大喜利オンラインをアップデートでUnity2020を使うってなったときに、生成されるアプリ名が
oogiri.app から ProductName.app
に変更になっちゃうわけですよ。

これなんか怖くないですか?
データ消えちゃいそう

ということで一応確認、、

  • PlayerPrefsの保存先

    • /Library/Preferences/[bundle identifier].plist[1]
      bundle identifierに紐付いているので問題なさそうですね。
  • Application.dataPathの保存先

    • <path to player app bundle>/<AppName.app>/Data[2]
      AppName.appが出てきました\(^o^)/
      まあでもApplication.dataPathはReadOnlyなので、動的に変更するデータを入れるわけじゃないので、問題なさそうです。
  • Application.persistentDataPath

    • /var/mobile/Containers/Data/Application/<guid>/Documents.[3]
      guidはアプリ名に関わらず一意なので、問題なさそうです。

結論

きっと大丈夫!
もしやばい何かがあるならきっともう誰かが見つけてる!
誰も言ってないから平気なはず!

(でも自分は2019→2020へのアップデートはちょっと控えておきます

脚注
  1. https://docs.unity3d.com/2020.1/Documentation/ScriptReference/PlayerPrefs.html#:~:text=On iOS%2C PlayerPrefs are stored,%2FPreferences%2F[bundle identifier]. ↩︎

  2. https://docs.unity3d.com/2020.1/Documentation/ScriptReference/Application-dataPath.html ↩︎

  3. https://docs.unity3d.com/2020.1/Documentation/ScriptReference/Application-persistentDataPath.html ↩︎