おいしい健康 開発者ブログ

株式会社おいしい健康で働くエンジニア・デザイナーが社内の様子をお伝えします。

あれっ。 Xcode9(beta5) が遅すぎる... と思ったときにありがちな問題

こんばんは! 関口@tanukiti1987 です。

おいしい健康にも新たな動きがあり、今は iOS 開発に取り組み始めています。

いきなり余談ですが、新卒で入った会社では iPhone OS 3, iOS 4 までは iPhoneアプリの開発に携わっていました。 今はもう Swift でのアプリ開発が主流になってきていますが、当初はまだ Swift の影もなく、 Objective-C が現役を勤めているころでした。

あれから5年。

久しぶりの iPhone アプリ開発に心踊らせ、弊社のプロジェクトは Swift 4.0 と Xcode9 beta5 で開発を進めています。 このまま、開発を続けていってもアプリをリリースするころには、iOS11もXcode9 も出ているだろうし、それを見越した開発です。

余談が長くなりましたが、久々に起動したXcodeは時折鬼のように遅く、マシンをフリーズさせることもしばしば。。 仕事進めさせてくれよ。。と思っていろいろ調べていると、2つ気をつけなければならないところがあったようでした。

1. IBDesignablesAgentCocoaTouch のCPU食い過ぎ問題

Xcode がフリーズしたときにアクティビティモニターを見ていて気になったこのプロセス。

どうやらプロジェクト内で @IBDesignable を定義していると動くプロセスみたいで。

今週から開発し始めた僕は、 @IBDesignable を意気揚々と定義して、ストーリーボードで開発しやすくするぞ!と思っていたのが仇となっていたようです。

PCのスペックの問題もあるかと思いますが、僕のPCでは苦痛なほど作業効率を悪くするものだったので、スッと消して置きました。

ちなみに Editor -> Automatically Refresh Views をオフにすることでこの手の事象を回避することもできるようです。

stackoverflow.com

2. XcodeまわりのプロセスがCPU食いすぎてマシン応答が劣化していく問題

開発を続けていくと、これと言って何か重い処理をしているわけではないのに、Xcode周りのプロセスがどんどんCPUを使っていき、しまいにはフリーズすることもしばしば。

しばらく困り果てていましたが、 Xcode のウィンドウを開いた状態で Product -> Clean またはオプションキーを押しながら Product -> Clean Build Folder をしてみました。

すると、少なくともCPUが張り付くことがなくなり、ビルド途中でフリーズするとこともなくなりました。

この手の不具合は、5年前にもあったようなきがするけど、すっかり忘れていました。

ときどきクリーンしよう。

終わりに

久々に Xcode を開いてみましたが、 beta を使っていることもあってか、それ以外の不具合にも多数遭遇します。 若干チャレンジングだと思ってはいますが、Swiftもだいぶ書きごこちよく、楽しく開発していますヨ :)