cocos2dでUIInterfaceOrientationMaskPortraitを指定しないとエラーがでた


cocos2dのプロジェクトをつくって画面を縦方向にしようとしたときのエラーです。ちなみにプロジェクト名はOmikujiです。

TARGETSのSupported Interface Orientationsから縦方向にしようと選択しました。
cocos2d-supported-interface-orientations

ビルドしようとしたら落ちました。

Omikuji[57461:15203] Retina Display Not supported
2013-03-30 16:06:00.568 Omikuji[57461:15203] *** Terminating app due to uncaught exception ‘UIApplicationInvalidInterfaceOrientation’, reason: ‘Supported orientations has no common orientation with the application, and shouldAutorotate is returning YES’
*** First throw call stack:
(0x2501012 0x1edee7e 0x2500deb 0xba1702 0xb9c046 0xb9c246 0xae501f 0xdc792 0xab17b7 0xab1da7 0xab2fab 0xac4315 0xac524b 0xab6cf8 0x3209df9 0x3209ad0 0x2476bf5 0x2476962 0x24a7bb6 0x24a6f44 0x24a6e1b 0xab27da 0xab465c 0xdbff6 0x2625)
libc++abi.dylib: terminate called throwing an exception

これはAppDelegateに指定しているOrientationの方向が悪いみたいです。
-(NSUInteger)supportedInterfaceOrientations {
// iPhone only
if( [[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone )
return UIInterfaceOrientationMaskPortrait;
// iPad only
return UIInterfaceOrientationMaskPortrait;
}

UIInterfaceOrientationMaskLandscapeをUIInterfaceOrientationMaskPortraitに書き換えます。

エラーが消えてシミュレータが起動できるようになりました(☝ ՞ਊ ՞)☝

cocos2dの画面を縦方向にするなら画面を縦方向に変更するに従ったほういいのかもしれないです。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です