2016年2月10日水曜日

macを軽くする3つの方法とセーフブートの弊害

enter image description here

iOSアプリの開発もしているのですが、結構古い型のMacBookAirを使って作業をしています。

横には常にアクティビティモニタを常駐させつつ、
メモリプレッシャーなどを眺め開発をしている状態です。

根本的に軽くなったらいいなと思い、いくつか試したことを今日はまとめていきます。

再起動する

macって閉じたらすぐスリープモードになるのがデフォルトなので、意外と電源を落としていない人は多いんじゃないでしょうか。

たまに電源不足やOSのアップデートで再起動はかかりますが、一週間に一回は再起動した方が良い とのことです。

不要アプリの削除

過去にダウンロードして使っていないアプリは削除してしまった方が動作は多少軽くなります。
削除はアプリケーションフォルダからアプリを削除すれば大概のアプリケーションは消えます。

しかし、

稀に他のアプリが使っているかも知れないという理由でファイルを残していくアプリもあります。
そんなときにはAppCleanerなどを利用すると関連ファイルも選んで削除することが出来ます。

セーフブートする

実はmacのセーフブート(障害が起きた時とかに最低限の機能のみで立ち上げるモード)で立ち上げると溜まったキャッシュを破棄してくれます。

これは個人的には効果がありました、、、良くも悪くも。

以下に方法を示しますが、自己責任でお願い致します!

セーフブートの方法

「shift」キーを押しながら、再起動するだけです。
Appleのロゴが表示されるまで「shift」を押し続ければ、画面右上にセーフブートという文字が出た状態でデスクトップが表示されます。


さて、このセーフブート時に軽く困った事になったので、その事例も紹介します。

セーフブートによる弊害

私のMacBookAirの主な利用目的はXCodeを用いた開発です。
このXCodeのPreCompileしたキャッシュを削除したみたいです。

warning: Could not resolve external type c:objc(cs)NSObject
warning: Could not resolve external type c:objc(cs)NSDate
warning: Could not resolve external type c:objc(cs)NSString
...
...

こんな感じのエラーメッセージが大量に出てくるようになりました。
そのまま訳すと「objective-Cの外部クラス(type)NSObjectなどが解決出来ません」とのこと。

AppleDeveloperForum
Github issue
でも取り上げられているので、たまに発生するんでしょうね。

外部クラスって言っているのは、自前のプロジェクト内で利用している他のFrameworkから参照しようとしたら出来ないということなのでしょう。

私が解決した方法はAppleDeveloperForumでも紹介されているウチの一つを実行しただけです。

  1. Targets → Build Settings → Build Options → Debug Information Format に移動。
  2. Debug Information Formatの”DWARF with dSYM File” を “DWARF” に変更する。

sample1

これだけで直りました。

AppleDeveloperForumで紹介されている他にも必要であると言われている内容は

  • Project → Build Settings → Apple LLVM *.* - Language
    ここにある「Precompile Prefix Header」を「NO」にする。

  • Project → Build Settings → Apple LLVM *.* - Language - Modules
    ここにある「Enable Modules (C and Objective-C)」を「NO」にする。

です。

これである程度快適に作業が出来るようになりました。

良いインプットと良いプログラミングを。

0 件のコメント:

コメントを投稿