自分で作成したiOSアプリを実機で動かすにはAppleのDeveloperプログラムにお金を払うのが一般的ですが,ここでは無料で実機でアプリを動かす方法を紹介します.ただしiOSデバイスを脱獄する必要があります.
以前の記事が古くなったのでiOS7用に新たに書き直しました.
環境
みーがこの記事を書くのに使用したものとそのバージョンは以下のとおりです.これ以外のバージョンでもディレクトリなどを適切に読みかえればうまくいくと思います.
Mac
- OS X Mavericks 10.9.1
- Xcode 5.0.2
iPad 2
- iOS 7.0.4 (evasi0nにて脱獄)
初回の設定
もしも初めてこの作業をする場合は,以下の作業を予め行っておく必要があります.
- Certificateの作成
- Xcodeの設定変更
- 脱獄したiOSデバイスにOpenSSHをインストール
これらの方法はこちらに書いてありますので,設定をしてください.OpenSSHのインストール方法はこちら[cydia.saurik.com].
Xcodeでアプリをビルド
Xcodeを起動します.
ここではMaster-Detail Applicationを選択し,Nextをクリックします.(このチュートリアルではこれを選択していますが,各自適切なものを選択してください.)
Product Nameをios7testとし,Company Identifierをnet.atsuhiro-meとしました.それぞれの環境に合わせて設定してください.
この状態でアプリケーションはエミュレータにて動作することを確認します.そしてiOSデバイスをUSBでMacに接続して,Xcodeのターゲットを実機に設定します(下図左上の赤矢印).
次にBuild Settings(下図中央の赤矢印) をクリックして,Code SigningのCode Signing IdentityをDon"t Code Signに設定します(下図中央下の赤矢印).
メニューバーからProduct > Build For > Runnning とするか,Shift+Cmd+Rを押してビルドします.すると左サイドバーのProductsフォルダーにappがビルドされ赤字から黒字になるのか確認されます.これを右クリックしてShow in Finderをクリックします.するとFinderでappのフォルダーが開かれます.
codesignをする
次にappのcodesignをします.これをしないとiOSデバイスでのアプリの認証が失敗し起動しません.
まずターミナルにて先ほどのアプリのフォルダーへcdで移動します.そして以下のコマンドを実行します.
$ export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate"
$ codesign -fs "iOSdev" ios7test.app/
以前のXcodeからcodesign_allocateのパスが変更になったようです.注意してください.(OHO"s Blog の Codesign Useful Info in XCode 5.0.1 より)
"iOSdev"というのは最初に作成したCertificateの名前で,ios7test.app/というのはアプリの名前です.自分の環境に合わせて読み替えて下さい.
ダイアローグが表示されるので,Allowをクリックして完了です.
iOSデバイスにアプリを転送しchmodする
Cyberduckというフリーソフトをダウンロードし,インストールします.SFTPクライアントならなんでも良いのですが,みーはこのソフトがオススメです.
iOSデバイスにてSSHサーバーが動いているのを確認し,iOSデバイスがMacと同じWiFiネットワーク上にあることを確認し,iOSデバイスのIPアドレスを設定から確認して,以下の情報を指定します.
- SFTP
- Server:iOSデバイスのIPアドレス
- Username: root
- Password: 各自設定したパスワード
パスワードって何?という場合はalpineと入力してください.後でこちらの方法にしたがってSSHのパスワードを変更することを強く推奨します.
すると以下のようにiOSデバイスのディレクトリが表示されるので,/Applicationsに移動し,ここに先ほどcodesignしたアプリ(ios7test.app)をアップロードします.
その後,アプリ(ios7test.app)を右クリックして,Infoを開き,PermissionタブからPermissionを775に変更し,アプリの本体(ios7test.app/ios7test)のPermissionを775にします.
iOSデバイスを再起動すると,下のスクリーンショットのようにアプリが表示されます.
起動するとじゃじゃーんと自分のアプリが動きます.
こんな感じ.
以上です,お疲れ様でした.
なお,この作業を行う上でよく出てくるエラーを,こちらにまとめているので,合わせて参照ください.