最新情報 [Update: 2014-09-19]
Unity 4.5.4f1 にて、iOS 8 (ってか Xcode 6) への対応が済んでいるようです。
全部調べきったわけじゃ無いけど、一応ビルドが通って、普通に起動できるレベルまでは確認しました。
ただし、iOS 8 から Push Notification の仕組みが変わっているため、Unity が提供している NotificationServices.RegisterForRemoteNotificationTypes()
を使っている場合には、APNs への登録は動作しません。
自前で Native Plugin 書くなりしましょう。
# ひょっとしたら、パッチリリースで対応されてるかも? ← まだ調べてない。
以下古い情報
本日 (2014-09-10) に Apple のプレス向け発表会で iPhone6 やら Apple Watch やら Apple Pay やらが発表されましたね!
で、Xcode 6 の GM seed も公開されております!
iPhone 6 やら iPhone 6 Plus やらのシミュレータも入っております!
ってことは、当然「動くかな?」って試すのが人の性ってものです。
先に結論
うごきません。
ビルド出来ません。
環境
- Unity: 4.3.4f1
- Xcode: 6 GM seed
4.5.3 では試してないけど、Trampoline 見る限りでは同じだと思う。
原因
Unity が吐き出すクラスの中に使えなくなった定数を用いている箇所があるため。
具体的には Classes/Unity/CMVideoSampling.mm 内の50行目と63行目。
「GL_BGRA_EXT
なんかないよー」って言われます。
対策
まぁ、代替となる定数に変えるのが手っ取り早いんじゃないかと。
- sampling->cvTextureCacheTexture = CreateTextureFromCVTextureCache(sampling->cvTextureCache, cvImageBuffer, w, h, GL_RGBA, GL_BGRA_EXT, GL_UNSIGNED_BYTE);
+ sampling->cvTextureCacheTexture = CreateTextureFromCVTextureCache(sampling->cvTextureCache, cvImageBuffer, w, h, GL_RGBA, GL_RGBA, GL_UNSIGNED_BYTE);
- GLES_CHK(glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_BGRA_EXT, GL_UNSIGNED_BYTE, texData));
- GLES_CHK(glTexImage2D (GL_TEXTURE_2D, 0, GL_RGBA, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, texData));
これで本当に影響が一切ないのかどうかは調べてません。自己責任でヨロ。
影響あるらしいです。詳しくは追記参照のこと。
おまけ
毎回書き換えるのが面倒だ!って人は PostProcessBuild
で書き換えるか、Trampoline いじっちゃいませう。
Trampoline の場所は以下の通り。
- Unity 4.3.4f1 の場合: /Applications/Unity/Unity.app/Contents/PlaybackEngines/iPhonePlayer/iPhone-Trampoline/Classes/Unity/CMVideoSampling.mm
- Unity 4.5.3f1 の場合: /Applications/Unity/Unity.app/Contents/PlaybackEngines/iOSSupport/Trampoline/Classes/Unity/CMVideoSampling.mm
追記
2014-09-19 10:20
Unity の自動アップデート通知が降ってこなかったので気付かなかったんですが、実は Unity 4.5.4f1 が既にリリースされており、それを使ったところ無事にビルドできました。
この記事は既に陳腐化しておりますw
2014-09-11 12:45
コメント頂戴しまして、どうやら、上記の修正方法は拙い様子。
具体的にどう拙いかはボクの知識が足りず、理解出来ませんでしたが、Unity 本体のアップデートを待ちましょう。
Facebook の Unity ユーザ助け合い所 での情報によると、iOS8 と Xcode 6 への対応が行われた 4.5.4 が近々来るらしいです。