みーのぺーじ

みーが趣味でやっているPCやソフトウェアについて.Python, Javascript, Processing, Unityなど.

iOSアプリを無料で実機テストする(要脱獄)

(Update)iOS7用に書きなおした記事はこちら

自分で作ったiOSアプリを自分のデバイスだけで無料で楽しみたいと思い、調べた結果をまとめました。ここの方法を実行するのに、iOS Developer Programに登録する必要はありません。つまりタダです。ただし、脱獄する必要があります。

J-Style Blog 自作iPhoneアプリをDevelopper登録せずに実機で動かす方法iOS5,XCode4.2対応 を参考にしました。XCode4.4になってディレクトリが多少変更になったようです。

環境

  • XCode 4.4 - 4.6
  • iPad 2
    • iOS 6.1 (evasi0nにて脱獄したもので確認済)
  • iPod touch 4G
    • iOS 5.1.1 まで確認済 6もいけるはず
  • Mac OS X Lion or Mountain Lion(10.8.3)

(2013.5.16 update)

現在のところ、iOS 7 の脱獄が不可能なので、このサイトの情報はiOS 6 の情報となっています。(2013.10.22 update)

もちろん上記の環境でなくても適宜読み替えればうまくいくはずです。赤字のバージョンでみーが実際に自作アプリを実行することに成功しています。

方法

Create a CertificateをOS Xのインストール後、一度だけ実行する必要があります。以下の操作の前に実行したことがあるかを確認してください。

XCodeにて

File > New > ProjectでiOS Applicationを作成する。今回はぱぱっとテストするためにMaster-Detail Applicationを作成し、そのまま実行することを目標とする。

f:id:atsuhiro-me:20151101232506p:plain:w300

Product Nameなどを適宜入力する。

ProjectのBuild SettingsのCode SigningでCode Signing IdentityをDon"t Code Signに変更する。(下図の紫)

SchemeをiOS Deviceに設定(シミュレーターではない)し、iOSデバイスを繋ぐ。

Product>Build for>Runningとして、ビルドするとTest.appが作成され、左側のProductsの赤字が黒字になる。ここを右クリックしてShow in Finderすると、appファイルにアクセスできる。(下図の赤) しかし、これがうまくいかないことが多く、その場合は、\~/Library/Developer/Xcode/DerivedData/Unity-iPhone-xxxxxxxxx/Build/Products にアクセスすればよい。Finderで\~/Libraryにアクセスするには、メニューバーのGo > (Optionキーを押しながら)Libraryとすれば一発で行ける。

f:id:atsuhiro-me:20151101232512p:plain:w300

Terminalにて

Mountain Lionの場合は

export CODESIGN_ALLOCATE="/Applications/Xcode.app/Contents/Developer/usr/bin/codesign_allocate"

Terminalで実行すること。これをしないと、

object file format unrecognized, invalid, or unsuitable

というエラーが出る。このコマンドは1度実行すればよい。

http://stackoverflow.com/questions/4842717/iphone-codesign-object-file-format-invalid-or-unsuitableより(2012.9.3 追記)

Terminalを起動して、

codesign -fs "<Certificate name>" <appファイルのディレクトリ.app>

を実行する。

appファイルのディレクトリは、以下のダイアローグが表示されるので、Deny以外を選択する。

[adsense:block:myad]

f:id:atsuhiro-me:20151101232520p:plain:w300

iExplorer 3にて

iExplorerはUSB接続したiOSデバイスのファイルシステムにアクセスするためのソフトである。有料の機能もあるが、この記事の内容を実行するには、無料で使用できる範囲で十分事足りる。

Download : http://www.macroplant.com/iexplorer/

f:id:atsuhiro-me:20151101232523p:plain:w300

/Applicationsにアクセスする。(このディレクトリはシンボリックリンクになっている)

ここに先ほどの.appファイルをコピーする。

iPod touchにて

あらかじめ脱獄しておく。.appファイルに実行権を与えるために脱獄する必要があるのだ。脱獄はAbsintheがおすすめ。詳しい方法はこちら。脱獄したら、iFileとMobileTerminalをインストールする。

iFileを開いて、/Applicationsを開き、先ほどコピーした.appファイルがあることを確認する。

MobileTerminalにて以下のコマンドを実行する。

# su
password : alpine
root# cd /Applications
root# 
chmod 0775 –R <Test>.app

sshでももちろん可能。CydiaにてOpenSSHをインストールした上で、

my-iMac:~ atsuhiro$ ssh root@192.168.xx.xx
The authenticity of host "192.168.xx.xx (192.168.xx.xx)" can"t be established.
RSA key fingerprint is xxxxx
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added "192.168.xx.xx" (RSA) to the list of known hosts.
root@192.168.xx.xx"s password: 
my-iPod-touch:~ root# cd /Applications
my-iPod-touch:/Applications root# ls
Activator.app/            MobileSMS.app/        Terminal.app/
AdSheet.app/              MobileSafari.app/     TrustMe.app/
...(省略)
my-iPod-touch:/Applications root# chmod 0775 -R test.app/

としてもよい。やっていることは同じ。でも、OpenSSHの方がキーボードで入力できるので楽だと思う。

ここで一度Respringするか再起動する。すると自分のアプリのアイコンが現れるはず。自分の作ったアプリを実行してみて、うまく動くことを確認する。ちなみにみーのiPod touchで動かしたスクリーンショットはこんな感じ。

f:id:atsuhiro-me:20151101232528p:plain:w300

2012.8.3

2012.12.5 update