Xcode4.5でiOS 6未満もターゲットにした新規プロジェクトを作る場合の注意点(エラーの対処法)

Xcode4.5

新規プロジェクト作成 → iOS Deployment Target を6.0未満に設定 → Interface Builder(IB)を使って適当にボタンを配置 → iOS 6未満のデバイスでテスト、といった一見何の変哲もない流れ。

Xcode4.5では、エラーを出してクラッシュしました。

これは、作成されたIB用 .xibファイルの初期設定に問題があるようです。

iOS 6のAutolayout機能

Xcode4.5では、新規に作成された.xibファイルの初期設定で、Autolayoutが有効になっていました。

この状態でIBを使いView上にボタン等を配置すると、Autolayoutの設定を管理するConstraintsが作成されてしまうため、非対応OSでは落ちてしまうようです。

出力されたエラー内容

Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: 'Could not instantiate class named NSLayoutConstraint'

設定を無効にするには、IB画面上からFile inspectorを選択し、Interface Builder Document 項目の設定にある use Autolayout のチェックを外せば解決です。

File Inspector

後から追加した .xibファイルでもなるので、このちょっとした手間が気になるところ。...(デフォルトの設定は変えられないのかな?)

タグ: Autlayout エラー クラッシュ

プロフィール
Daisuke Suzuki
ウェブサイトの制作から運営管理、アプリ開発など、様々な挑戦をして試行錯誤の日々を送っているフリーランスです。対外業務をするお仕事生活から抜け、現在は個人制作でご飯を食べています。 最近はアプリ攻略サイト AppGames を制作・公開し、そちらも手がけています。詳しいプロフィール
サイト内検索
facebook
このブログについて1
一から制作したお手製ブログ ver1.23
2012年9月11日に開始。自分で見て触って動かして、日々コツコツと調整しています。