最初に
アプリ作ってて原因がわからずはまったことがありました。それがネットで調べても見つけることができず、結局自力で解決したので他の人のためになれば、とまとめてみます。
困った困った
AutoLayoutを使っていて、上のキャプチャのように「Unable to simultaneously satisfy constraints.」というエラーが出ることは皆さんも経験があると思います。これは単純に、同時に満たすことのできない制約をAutoLayoutで設定してしまっていることが原因なのもご存知だと思います。
AutoLayoutを使ってないのに、このエラーが出ることがありその解消にとても時間がかかってしまいました。ネットで調べてもAutoLayoutに絡んだ話しか出てこず(-_-;)
これは僕のようなひよっこiOSエンジニアにはつらい。。
原因
原因を結論から言うと、Macをテザリングでネットに繋げてることが原因。
iPhone実機の画面上部に表示されてる青いバーが原因です。
テザリングをやめると「Unable to simultaneously satisfy constraints」のエラーが出てきません。シミュレーターでも出ません。なんかときたまこのエラー出てるな、AutoLayout使ってないのに変だな、まぁ後で直そっか。で放置しちゃってたのですが、今日調べてみたらこの原因を発見しました。
詳しくは見てないですが、青いバーの下からアプリの表示が始まってるので、上か下のバーが本来ある位置に陣取れなくてエラー出してるんでしょうね。
対応方法
単純に、テザリングの時はエラーが出ても気にしないようにすればいいですね(^O^)
時間があったら調べたいこと
テザリングを使っていて、アプリの構造がどういう時にはこのエラーが出てしまうのか。今回使ってるアプリは、Tabbed ApplicationとNavigation Controllerを使ってるのでその辺に関係がありそうなので、ここは要調査です。