iPhoneでJailbreak時の正規開発環境
Jailbrokenな端末で正規のiPhone Developer Programの証明書で開発ができるのかよくわからない。
http://www.iphonedevsdk.com/forum/iphone-sdk-development/19444-developing-codesigned-apps-jailbroken-device.html
この辺にCode Signのエラーについて色々書かれてたり。
一応証明書偽造?してAppleの認証を回避するような方法でXcodeからDeviceを登録して正規環境と同じように開発する方法はある。以下2chからの引用
【JailBreak】非公式アプリ開発スレ【ToolChain】
http://pc11.2ch.net/test/read.cgi/iPhone/1218719962/
73 名前: 名無しさん@お腹いっぱい。  Mail: sage 投稿日: 2008/08/27(水) 00:08:49 ID: GSoiggbU0 みんな、開発の手順はどんな感じですか? 俺はiPhone SDK 2.0で開発しているんだけど、実行ファイルを[app]とすると 1:MacBookのXcodeを使って正規の環境で開発 2:iPhoneのsshで"ps aux; kill [app]"(前のインスタンスが動いていたら) 3:iPhoneのsshで"rm [app]" 4:MacBookからscpでiphoneの/Applications/に丸ごとコピー 5:iPhoneのsshで"ldid -S [app]" 6:SpringBoardから起動 という手順で開発してます(MacOS上でエミュレータ使う時は別ね)。 手順2〜3を省くと、5のldidがKilledしてしまうのでこんな感じになりました。 jailbreakしてからopensshとrespring程度しかインストールしてないのに 同期していたオーディオとビデオが全部「その他」扱いになってしまったので もしかしたら手順が悪かったのかもしれないと思ったんだけど、どうでしょう? 196 名前: iPhone774G  Mail: sage 投稿日: 2009/04/13(月) 16:00:24 ID: 7LTxew2I0 うーん。やっぱわからん >>73はどうやってビルドしてるの? 2.2.1でもwikiに載ってる証明書の作成とかが必要なんですかね? もうリンク先消されてるけど・・・ 197 名前: iPhone774G  Mail: sage 投稿日: 2009/04/13(月) 18:18:15 ID: ID9rQfvm0 >>196 多分必要ない ただビルドするときにプラットフォームをシミュレータではなくて 実機OSにすればいいだけだったはず 198 名前: iPhone774G  Mail: sage 投稿日: 2009/04/14(火) 13:54:03 ID: pBLpGO3m0 >>197 そうなんですか。でもデバイスでビルドするとCode sign error ってのが出て署名が無くてビルドできずに終わってしまうんですよ あ、もちろん開発者プログラムは入ってないですけど それでも>>73とかの方法でいけるって事なんですかね? 202 名前: iPhone774G  Mail: sage 投稿日: 2009/04/15(水) 16:24:44 ID: CWz5WblO0 >>201ですが できました!どうもありがとうございます。 Wikiにのってる証明書の作成のリンクは消えてるんですが ttp://sassandroid.blogspot.com/2009/03/how-to-building-apps-on-jailbroken.html ここのとおりにやったらできました。たぶん2.2.1限定 オーガナイザにデバイスを登録してビルドすると自動的にインストールされ、 ブレークポイントを使用してのデバッグもできました。 正規の開発方法と同じ用にできるっぽいです。その時点でスレチっぽいですが。 一応あとでWikiに書いてみます。ここの住人には不要かもしれませんが・・・
ここまでは2.2.1の話。
SDK3.0以降
228 名前: iPhone774G  Mail: sage 投稿日: 2009/06/28(日) 13:40:44 ID: JWj73e+o0 >>225 XCode3.1.3が問題みたい。 SDK2.2.1を/Developer/Oldとかにインストールして、SDK3.0から必要なものを 参照できるようにシンボリックリンク張ればいけるみたい。 http://iphonesdkdev.blogspot.com/2009/06/use-xcode-312-to-build-sdk-30-app-to-30.html iPhoneRemoteDevice.xcodepluginだけ古いので置き換えてもいけるみたい。 こっちはXCodeがクラッシュして無理って報告もある。 229 名前: iPhone774G  Mail: sage 投稿日: 2009/06/28(日) 15:58:52 ID: JWj73e+o0 できた。 SDK3.0をインストール、SDK2.2.1を/Developer/221にインストール sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk \ /Developer/221/Platforms/iPhoneOS.platform/Developer/SDKs sudo ln -s "/Developer/Platforms/iPhoneOS.platform/DeviceSupport/3.0 (7A341)" \ /Developer/221/Platforms/iPhoneOS.platform/DeviceSupport sudo mv /Developer/221/Platforms/iPhoneOS.platform/Developer/usr \ /Developer/221/Platforms/iPhoneOS.platform/Developer/_usr sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr \ /Developer/221/Platforms/iPhoneOS.platform/Developer /Developer/221/Platforms/iPhoneOS.platform/Info.plist、プロジェクトのInfo.plistを以前のように編集。 iPhone Pwned Developerの証明書を作成。 プロジェクトのコード署名IDをiPhone Pwned Developerに設定。 ユーザ定義の設定にPROVISIONING NOを追加。 CydiaからInstalld Patch for OS 3.0をインストール。http://iphone.org.hk/apt/ iPhoneを再起動。 オーガナイザに登録し直し。 シミュレータはXcode3.1.3でテスト。 実機はXcode3.1.2でテスト。 232 名前: iPhone774G  Mail: sage 投稿日: 2009/07/04(土) 14:44:22 ID: s5FgSssp0 >>229 参考にさせてもらった、thx。 んでいざやってみると Code Sign error: a valid provisioning profile matching the application's Identifier(r ってなったけど http://www.iphonedevsdk.com/forum/iphone-sdk-tools-utilities/20983-sdk-3-0-xcode-3-1-3-build-go-jailbroken-device-2.html#post98724 これしたら動いた。 楽しくなってきたわー。
というように、どうも公式のSDKを使わないCydiaアプリ(Arm用にビルドしただけの何かとか)ならともかく、公式SDKを使ってXcodeから実機での実行のあたりで、認証っぽい何かが入るっぽい。その為にパッチをあてて回避すればいいようなのだけども、どうもこのパッチが怪しい。
OS3.0から「MobileInstllation Patch」が「Installd Patch」と名前が変わっている。
他にもAppSync3.0というパッチもあるようだけども(ともにCydiaから入る。リポジトリの追加が必要だったかも)、このパッチの適用すると海賊的なアプリも動いてしまうらしいので、ロジックもよくわからないし、なんだか不安です。
(Jailbreakしてる時点で、Apple的には違法らしいからなにをいまさらともいえますが、そもそもBlogに書いておいていいような話なのだろうか)
ま、ともかく、色々面倒だったので、SSHで接続できたりRubyが動いたりBackgroundでの実行は魅力的でしたが、元に戻しました。
とことでほとんど引用させてもらっただけですが、またいつかJailbreak環境での開発に興味を持ったときのためにメモ残しておきます。
参考:
iphone "UNOFFICIAL" dev @ 2ch - アットウィキ
http://www.iphonedevsdk.com/forum/iphone-sdk-development/19444-developing-codesigned-apps-jailbroken-device.html
iPhone Software Development: Use XCode 3.1.2 to build SDK 3.0 app to 3.0 Device without provisioning profile
http://sassandroid.blogspot.com/2009/03/how-to-building-apps-on-jailbroken.html
【JailBreak】非公式アプリ開発スレ【ToolChain】