#Bundle Identifierと独自ドメイン
初心者がUnityでアプリを出そうと思うと
Androidでもiphone(iOS)向けでも
「Bundle Identifier(iOSではiPhoneBundleIdentifier)を独自のものにしなさい」
という指示を受ける。
私のようなプログラミング初心者からすれば「職業プログラマーじゃないし趣味レベルだから知ったことではない」と言いたくなるが
よそ様に迷惑をかける可能性があると聞けば、流石にそういうわけにもいかない。
そういうわけで、独自のidentifierを用意する必要がある。
通常これは、自分の所有しているドメインを使う。
たとえば、www.dokuzi-domain.comというドメインを所有しているなら
com.dokuzi-domain.wwwという名前で設定する。
しかし、企業ならともかく趣味プログラマーが独自ドメインなど持っているわけがない。
そういう人には、以下の素晴らしい善意のサービスを感謝して利用する。
http://www.java-conf.gr.jp/
http://www.java-conf.gr.jp/Package/naming/index.html
jp.gr.java_conf.yourname
というドメインを使わせていただくことが可能になる。
#Unity上でのトラブル
ところが、このサービスを利用するとUnityで1つだけ問題に陥る。
それは、Android/iOSで以下のルールが異なるということだ。
Android : bundle identifierに ‐(ハイフン) を認めていない
iOS : iphonebundleidentifierに _(アンダーバー) を認めていない
つまり、
Android向けに作るならばjp.gr.java_conf.yourname
iOS向けに作るならばjp.gr.java-conf.yourname
と書き分ける必要がある。
Android向けを作った後にiOS向けとして移植すると
iphonebundleidentifier has not been setup correctly
といったエラーメッセージを受ける。
私はコレを知らなかったので
「com.example.wwwなら通るぞ。iOS版だとjp.grがダメなのかな?」と勘違いしてしまった。
実は単にハイフンとアンダーバーではじかれていただけ・・・。
#追記
ちなみに初歩的な質問として「bundle identifier ってどこで設定するの?」という質問がありそうなので書いておくと
(1)Unity上側メニュー File -> Project SettingsでBuild Settingsを開く
(2)下側の小さなボタンPlayer Settingsを押してInspecterビュー(画面右側にある情報画面)を切り替える
(3)Android/iOSのタブを押して、Other Settingsという項目を見たら、設定場所がある
(Android/iOSタブがないという人はUnityインストール時に、Android向け/iOS向けの追加パッケージをインストールしてないかも?)