Xcode9.0+iOS11.0での開発について

エンジニアの徳光です。 とりあえず、iOS11が公開されたので、Xcode9.0でプロジェクトを新規作成した場…

エンジニアの徳光です。

とりあえず、iOS11が公開されたので、Xcode9.0でプロジェクトを新規作成した場合の違いなどをメモ書き程度に書きたいと思います。

◆登録したデバイスにワイヤレス転送ができるようになった

・Xcode9のメニュー「Window」→「Devices and Simulators」を選択し、「Devices」タグを選択する
・開発デバイスを有線で接続した場合、デバイスがiOS11の場合には「Connect via network」というチェック項目が表示される
・チェックを入れると、ケーブルを外してもビルド転送などが可能になる(再起動などしても大丈夫)


 

◆iPhoneXの変態画面への対応

新規作成したStoryboard(や.xib)には、「Safe Area」というものが定義されています。
これまで「Top(Bottom) Layout Guide」だったものがなくなり、「Safe Area」というガイドに変わっています。
これはViewController直下にUIViewを置くと自動的に表れるし、消せないし、最上部に固定表示されているなど特殊です。(表示名だけは変えれた)

ざっくりいうと、時計エリアの上端20px部分が全デバイスで除外エリアとなります。
これがiPhoneXの場合には、時計エリアも含めた上端44pxと、〔ホーム〕ボタン代わりの下端からの上方向スワイプ用に、34pxが除外エリアとなっています。

※なんか、HIG の iPhoneX 記述と一致していない気がしなくもなかったりですけど。
 https://developer.apple.com/ios/human-interface-guidelines/overview/iphone-x/


 

SafeArea は LauoutGuide の一種です。


 

紫色部分が iPhoneX での Safe Area となっている箇所で、青い部分が全面に貼った部分なので推奨されない除外エリアです。


 

◆Swift4.0が標準になった

プロジェクトを新規作成すると、Swift3.2ではなくSwift4.0が選ばれるようになっています。
とりあえず、しばらくはSwift3.2で開発していきたいなーと思ったりした時には、設定を変更しましょう。
「Build Settings」の「Swift Language Version」の値を「Swift 4.0」から「Swift3.2」に変更します。

Xcode9 移行後の「pod install」でエラー発生の件

gitのnimimum_versionに達していないとか怒られてるっぽい。
確認のために「git –version」すると…怒られてるな。
複数Xcodeを併用してたので、昔のやつに結びついたままになってるからだ。
「xcode-select –switch /hoge/Xcode_900.app」として切り替えようとする。
今度はルート権限ないからと怒られるので、sudoさん使うけど…パスワード怒られまくり。
仕方ないので、まずはsuでいろいろ試してみるも、どれもヒットしないんだよな。
もしかして、ルート移行の設定をしていなかったりするのかな?

  1. 「システム環境設定」→「ユーザーとグループ」で変更可能なようにロック解除
  2. 「ログインオプション」を選んで「ネットワークアカウントサーバ」の〔接続…〕ボタンを押す
  3. 表示されたダイアログの〔ディレクトリユーティリティを開く…〕ボタンを押す
  4. 「ディレクトリユーティリティ」で変更可能なようにロック解除
  5. 上部メニュー「編集」→「ルートユーザを有効にする」でルート用のパスワードを登録

っと、ルートユーザが無効になっていたよ。なんでやー。いつの間に解除されたんだよー。

とか、プチハマりしてたのでメモ追加。