器用貧乏研究所

Unityでゲーム制作したりいろいろなことに入門していこうと思います

UnityのBundle Identifierには何を入力するのが妥当なの?

ことはじめ

Unityではじめてビルドして「Bundle Identifier has not been set up correctory 」と表示されてもにょもにょしてる人向けの記事です
自分も初心者なので突っ込んだ話はわかりませんが、初心者として困らない程度にはわかってるような気がしますん
リリースするときに「com.hogehoge.アプリ名」ではまずいんじゃないのか?とか悩んだ結果の記事です

f:id:tkhsken:20160522161828j:plain

結局何を入力するもんなの?

任意の文字を入力することになるので、最終的には自分で考えるしかないのですが、「com.開発者名.アプリ名」というのが妥当な答えかと思います
開発者名のところは普通は企業名をアルファベット表記するのでしょうけど、個人なので開発者としての名前を記入すれば問題はないでしょう。自分は自分で決めたブランド名を入力しましたが、リリースする際に本名との相違を指摘されたりはしませんでした。「com.YourCompanyName.YourProductName」の誰が作ったものかわかり、一連の文字列が世の中のアプリと区別できるモノであることが重要みたいです。
なので、いくつもアプリを作る場合は「この人が作った」という一貫性があるといいのだと思います
com.についてはwikipediaによると「comは商用を表すcommercialを省略したもの」らしいです。なので無料アプリでも広告などを表示する場合はcom.で違和感はないんじゃないですかね・・・ちなみにhoge.とかでもビルドは成功したと思います
広告も表示しない完全無料のアプリの場合でも「com.」で問題ないみたいですが本当は何が妥当なんですかね・・・?あえてドメインぽいのにするなら「mobi(モバイル)」「name(個人)」とかそんなところでしょうか?
それとAndroidでは「-(ハイフン)」が使えないので注意です

f:id:tkhsken:20160522171017p:plain

よもやま1

「com.YourCompanyName.YourProductName」はリバースドメイン(逆ドメイン記法)という記法で、プログラマーの間では割とメジャーな用語みたいです。逆になってるとソートするときに便利なのかな?
「リバースドメイン」で検索するとMySQLJavaなんかの解説がヒットしたりしますから、たぶんきっとそれ関連なのでしょう
ちなみにこの記事に辿り着くのは「Unity Bundle Identifier」とかで検索した人かと思いますが「Bundle Identifier」だけで検索すればxcodeなども含めたもう少し詳しい「Bundle Identifier」に関する記事がでてきます

f:id:tkhsken:20160523074705p:plain

よもやま2
ついでにエラーメッセージをgoogle翻訳してみました
■原文■

Please set the Bundle Identifier in the Player Settings.
The value must follow the convention
'com.YourCompanyName.YourProductName' and can
contain alphanumeric characters and underscore.
Each segment must not start with a numeric character or underscore.

google翻訳

Playerの設定でバンドル識別子を設定してください。
値は、規則に従わなければなりません
「 com.YourCompanyName.YourProductName 」とすることができます。
文字の英数字を使用し、強調しています。
各セグメントは、数字、文字またはアンダースコアで始めることはできません。

おわりに

場合によっては少しの間違いでインストールできなかったりするらしいので、「こうすれば絶対に大丈夫」とは言えないですが、とりあえず自分が設定したものでリリースまでたどり着けたのでまとめてみました。
ただし、2016年5月22日時点での話になります