Command Line Developer Toolsのインストール方法

mac port の更新を行おうとして以下のエラーメッセージが出力された。
調べたところ、Command Line Developer Toolsをインストールする方法が変更されていることが問題の原因らしい。
Command Line Developer Toolsインストール後、再度、port のアップデータを行ったところ、正常に処理が行えた。

【port 更新時にエラーが発生】

1
2
3
4
5
6
7
8
9
$ sudo port selfupdate
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.3 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
 
Error: /opt/local/bin/port: port selfupdate failed: Error installing new MacPorts base: command execution failed

【Command Line Developer Toolsインストール後、portの更新が正常に行えた】

1
2
3
4
5
6
7
8
9
10
11
$ sudo port selfupdate
Password:
--->  Updating MacPorts base sources using rsync
MacPorts base version 2.1.3 installed,
MacPorts base version 2.2.1 downloaded.
--->  Updating the ports tree
--->  MacPorts base is outdated, installing new version 2.2.1
Installing new MacPorts release in /opt/local as root:admin; permissions 0755; Tcl-Package in /Library/Tcl
 
The ports tree has been updated. To upgrade your installed ports, you should run
  port upgrade outdated

xcodeからCommand Line Developer Toolsをダウンロードするには、[xcode] – [Open Developer Tool] – [More Developer Tools…]メニューを選択し、ダウンロード サイトへ移動する。

Command Line Developer Toolsのインストール方法

Command Line Developer Toolsのインストール方法

コマンドラインからは以下のようにインストールできる。

1
$ xcode-select --install

実機での自動実行を行う xcodebuildコマンドのパラメータ設定

iOS 開発でもテスト自動化が流行っているようですね。
というわけで、テストコードを実機で動かすためのコマンドを調べました。
シミュレータ上で自動実行するパラメータ設定はいろいろ紹介されているようですが、
実機での自動実行を行うパラメータ設定を見つけることが出来ず、少し苦労したのでメモ。

最初からxcodebuild(1) Mac OS X Developer Tools Manual Pageを参照しろとの話もありますが…

以下のシェルスクリプトで実機でのテストコード自動実行ができます。

1
2
3
4
5
6
7
8
9
10
11
#! /bin/sh
 
# iPhone (iOS 実機)
PROJECT="(プロジェクト名).xcodeproj"
SCHEME="(スキーマ名)"
DESTINATION="platform=iOS,name=(実機の名前。省略可。),id=(識別子 UDID)"
 
xcodebuild -project ${PROJECT} \
     -scheme ${SCHEME} \
     -destination "${DESTINATION}" \
     test

また、パラメータで指定されている”スキーマ名”、”Destination”は以下の画面で確認できる。

xcodeでのスキーマ名、Destination の確認方法

xcodeでのスキーマ名、Destination の確認方法

OS X 10.8.4 アップデート後 xcode シミュレータ実行時エラーの対処方法

OS X 10.8.4 にしてから、xcode からシミュレータ実行した際にエラーが出力されて困っていたが、一時的な対処方法が紹介されていた。
再実行 (⌘+R) でエラーでまくりで困ってたんですよ。(^^)

とりあえず、以下の記事の内容の通り、デバッガを LLDB から GDB に変更。

参照:OS X 10.8.4でXcodeでiOS Simulatorを実行したときにSIGABRTでアプリがクラッシュすることがある問題の暫定的な対処

追記: 6/14 Xcode 4.6.3 がリリースされており、問題も対処されているようです。

cupertino のインストールに失敗した際の対処方法

(nokogiri のインストールに失敗した際の対処方法)

https://github.com/mattt/cupertino
cupertino を利用するとコマンドラインから apple のデベロッパーセンターへアクセスすることができます。
というわけで、早速、cupertino をインストールを試みたが失敗したので、対処した際のメモ。

1. (問題) cupertino のインストールに失敗

$ sudo gem install cupertino

以下のメッセージが出力されて失敗していた。
---------------------------------------------
$ sudo gem install cupertino

Building native extensions.  This could take a while...
ERROR:  Error installing cupertino:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for libxml/parser.h... yes
checking for libxslt/xslt.h... yes
checking for libexslt/exslt.h... yes
checking for iconv_open() in iconv.h... no
checking for iconv_open() in -liconv... no
checking for iconv_open() in -liconv... no
checking for libiconv_open() in iconv.h... no
checking for libiconv_open() in -liconv... no
checking for libiconv_open() in -liconv... no
-----
libiconv is missing.  please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dependencies.
-----
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
	--with-zlib-dir
	--without-zlib-dir
	--with-zlib-include
	--without-zlib-include=${zlib-dir}/include
	--with-zlib-lib
	--without-zlib-lib=${zlib-dir}/lib
	--with-iconv-dir
	--without-iconv-dir
	--with-iconv-include
	--without-iconv-include=${iconv-dir}/include
	--with-iconv-lib
	--without-iconv-lib=${iconv-dir}/lib
	--with-xml2-dir
	--without-xml2-dir
	--with-xml2-include
	--without-xml2-include=${xml2-dir}/include
	--with-xml2-lib
	--without-xml2-lib=${xml2-dir}/lib
	--with-xslt-dir
	--without-xslt-dir
	--with-xslt-include
	--without-xslt-include=${xslt-dir}/include
	--with-xslt-lib
	--without-xslt-lib=${xslt-dir}/lib
	--with-libxslt-config
	--without-libxslt-config
	--with-pkg-config
	--without-pkg-config
	--with-libxml-2.0-config
	--without-libxml-2.0-config
	--with-libiconv-config
	--without-libiconv-config
	--with-iconvlib
	--without-iconvlib
	--with-iconvlib
	--without-iconvlib
	--with-iconvlib
	--without-iconvlib
	--with-iconvlib
	--without-iconvlib

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/nokogiri-1.5.9 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/nokogiri-1.5.9/ext/nokogiri/gem_make.out

2. (対処方法)

  1. cupertino インストール中に上記のエラーが出力されていたので、以下の URL で対処方法を調べたところ、nokogiri をインストールするには、libxml2, libxslt をインストールしておく必要があるとのこと。
    これらをインストールしてから、再度、cupertino のインストールを試みたがエラーが出力されたので、
    その他の方法を探した。
  2. http://nokogiri.org/tutorials/installing_nokogiri.html

    $ sudo port install libxml2 libxslt
    $ sudo gem install nokogiri
  3. 以下のコマンドを実行してから、cupertino をインストールすると成功した。
    $ sudo gem install nokogiri -- \
    	--with-xslt-dir=/usr/local/Cellar/libxslt/1.1.26 \
    	--with-xml2-include=/usr/local/Cellar/libxml2/2.7.7/include/libxml2 \
    	--with-xml2-lib=/usr/local/Cellar/libxml2/2.7.7/lib \
    	--with-iconv-dir=/usr

CocoaPods の利用方法

1. インストール方法
$ sudo gem install cocoapods

– CocoaPods で利用可能なライブラリ情報を取得する
$ pod setup

(メモ) gem のバージョンが古い場合は、アップデートする
$ sudo gem update –system

2. 新規プロジェクトを作成する方法
– 任意のディレクトリに xcode プロジェクトを作成する
(プロジェクト名).xcodeproj と同じディレクトリに Podfile を作成する

– Podfile の書式:pod ライブラリ名 バージョン指定

platform :ios, "5.0"
pod 'JSONKit', '~> 1.4'
pod 'BlocksKit'
pod 'FTUtils'
workspace '(アプリ名).xcworkspace'
xcodeproj '(アプリ名).xcodeproj'

参照: cocoapods.org

– podfile に記述されたライブラリのインストール
$ pod install

– 自分で作成したプロジェクトと Podfile で指定したライブラリを格納した workspace ファイルが作成される
– CocoaPods が、ライブラリのリンク設定を行ってくれるので助かる。(^^)

ビルド時にエラーが出力されるようなら以下の点を確認する。
・ライブラリが利用している framework の設定

– CocoaPods がサポートしているライブラリは以下を参照のこと。
参照: CocoaPods/Specs

xcode のエディタでカレント行に色を付けるプラグイン

xcode のエディタでカレント行をハイライトさせるプラグインが紹介されていたので、早速使ってみた。

参考:xcode-4-Fixins | Cocoaの日々情報局

設定手順
1. https://github.com/davekeck/Xcode-4-Fixins より、xcode-4-fixins を取得する
2. XCFixin_CurrentLineHighlighter プロジェクトをビルドする
3. xcode を再起動すると以下のメニューが表示されているので選択する
4. カレント行に付ける色を選択すると以下の様にエディタでカレント行に色を付加することができる

プラグインがインストールされる場所:
/Library/Application Support/Developer/Shared/Xcode/Plug-ins

– プラグインがインストールされると xcode にメニューが追加される
current_line_highlight_color1

– コード エディタのカレント行に選択した色が表示される
current_line_highlight_color2

Block 構文について

BlocksKit を利用し始めたので、少々 Block 構文を復習しておく。
Block を利用したライブラリを使える知識と構文に慣れるということを目的とする。

とりあえず、以下の事柄がわかってればいいかな?
関数ポインタと Block が同じように使えると気づいておくことが重要で、”関数の返値に Block を使う”表記はなるほどって感じ。

C++/CLI やって以来のハットを使った。(^^)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Blocks 構文
^ 返値の型 (引数リスト) {}
 
^ (引数リスト) {}		// 返値の型を省略
^ {}				// 引数リストを省略
 
// C言語 関数ポインタ
int (*funcptr)(int) = &func;
int result = (*funcptr)(10);
 
// Block 型変数に代入
int (^blk)(int) = ^(int val){return val + 1;};
 
// Block 型変数から Block 型変数への代入
int (^blk1)(int) = blk;
 
int (^blk2)(int);
blk2 = blk1;
 
// 関数の引数に Block 型変数を渡す
void func(int (^blk)(int)) {
}
 
typedef int (^blk_t)(int);
void func(blk_t blk) {		// 関数の引数に Block を指定する
}
 
// 関数の返値に Block を使う
int (^func()(int)) {
}
 
typedef int (^blk_t)(int);
blk_t func() {			// 関数の返値に Block を使う
}

参考: エキスパートObjective-Cプログラミング に詳しく説明があります。

補足:
通常ブロック外の変数はブロック内で変更することができない。
変数に「__block」修飾子をつけることでブロック内での変更が可能になる。

Safari でエクステンションがインストールできない場合の対処方法

Evernote とか 1Password のエクステンションが利用できなくて困っていたが、
対処方法がわかったので、記しておく。

以下のフォルダを再生成させることで、エクステンションがインストールできるようになった。
/Users/(ユーザ名)/Library/Safari/Extensions
原因はわからないが、エクステンションを保持しているフォルダを再生成させることで、問題対処できたと言うことですね。

Safari エクステンションを再生成させる手順
1. safari を終了する
2. 上記のフォルダを削除する
3. safari を起動し、エクステンションをインストールする

もし、上記フォルダへの移動方法がわからなければ、以下の方法で移動する。
・Finder 移動-フォルダへ移動(shift + command + g) で移動できる

Evernote Web Clipper を利用していると Google Adsense の広告が表示されないと書き込みを行っている方がいるようですが、広告も表示できているようです。
(OS X 10.8.2, Safari 6.0.2, Evernote Web Clipper 5.7 で確認)

OS X アップデート 時の問題解決方法

先日、Apple、OS X Mountain Lion v10.8.2追加アップデート1.0 (10/5) が公開されていたので、
早速、適用して問題に見舞われたのでその際の解決方法をメモしておく。

OS X Mountain Lion v10.8.2追加アップデート手順は、以下の通り。
1. App Store より追加アップデートを適用した
2. 再起動時に処理が遅くなり、起動後、時々処理を行うが、処理が止まっている状態となった

同じような問題を解決する方法を検索し、以下の手順で確認した。

トラブルシューティング for Mac (ソフトウェア編)
https://discussionsjapan.apple.com/docs/DOC-1032

ようするに、ハードに起因した問題なのか?システムに起因した問題なのか?ユーザ固有の問題なのか?(ユーザが起動しているプロセスに問題があるのか?)を切り分けていく。
当然といえば当然ですが。。。
結構、労力いりますよね。

結果、起動時のプロセスが影響していないか確認したところ、以下の様に Dropbox がログイン時に2重に起動しているようだったので、アイコンがない Dropbox を削除した。

この対処が良かったようでシステムが起動しても処理が遅くなる症状が改善された。

前回のアップデート時にも処理が止まる症状がでて、iPhone の再セットアップなども行い余計な作業を行ったり(案の定 先日、iPhoto のアップデートもでてたしなぁ~)、メールの文字化けがでたり、アップデートには関係ないが、自宅のネット接続ができなくなったり、最近はトラブル続きだなぁー。
(ネット接続は自宅マンションのモジューラ ジャックの錆が原因だったみたい。週末に業者の方が3時間くらい頑張ってくれて、調べてくれた。感謝です。)

しばらく様子みます。(ノД`)