Auto Layout Localization の警告が表示されました。

Views without any layout constraints may clip their content or overlap other views.

というメッセージが表示されているので、このメッセージを手がかりにググってみたところ、私の場合は、ストーリーボードファイルのローカリゼーションを解除すれば良いことがわかりました。

今回対象となったアプリは Enterprise で配布するものでユーザーは日本人のみですから、ローカリゼーションに対応しないようにすれば解消します。

下記のページを参考にしました。

Can I suppress localization issue … | Apple Developer Forums

このページの中から stackoverflow のサイトへのリンクがありそこにも詳しい説明が書かれていますが、ストーリーボードファイルが Base.lproj というようなローカリゼーション用フォルダの中にあることが原因なので、このフォルダの外に移動させます。

ios – Xcode 9 – Localization Issue Warning Storyboard – Stack Overflow

やり方としてはストーリーボードファイルをプロジェクトからいったん削除して、ローカライズ用のフォルダの外に移動し、再度プロジェクトに追加するという感じです。

詳しくは下記のようにします。

前提として、ストーリーボードファイルがローカリゼーション用フォルダの中に入っていることを確認します。

私の場合は、古くからメンテナンスしているアプリなので、en.lproj というフォルダに入っていました。

1.Xcodeのプロジェクト管理ツリーから、ストーリーボードファイルの参照を削除します。

対象となるストーリーボードファイルを右クリックして「Delete」をクリックします。

2.確認ダイアログが表示されますので、「Remove Reference」をクリックします。(ファイル本体は消されずにプロジェクトへの登録だけが解除されます)

3.ファインダーのウインドウのほうで、ストーリーボードファイルを一つへのフォルダへ移動させます。(en.lproj フォルダの外へ移動させます)

4.移動させたストーリーボードファイルをドラッグドロップでXcodeのプロジェクトの元あった場所に登録します。

以上で、ストーリーボードファイルがローカリゼーションの対象ではなくなりましたので、Auto Layout Localization の警告が表示されなくなりました。

以前にもこの警告について調査したことがあったのですが、制約(constraints)がないための警告なので制約を追加すれば良いという情報を得て制約を追加してみたものの、意図しない制約が追加されてしまったりして大混乱になってしまい、たいへん苦労して元に戻したということもありました。

考えてみれば、後日追加したストーリーボードファイルのほうは Auto Layout に関する警告は表示されていなかったのですが、これは en.lproj フォルダ外に保存されていたためチェックされなかったということのようです。


0件のコメント

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください