2012-04-18 11 views
9

私は質問hereを尋ねましたが、新しいトピックを開くために私が答えてくれました。まもなく、私はアプリケーションからAppstoreで無料のアプリを起動したいが、起動したいアプリにはURL Schemeがありません。私の他の質問のコメントは、SBSLaunchApplicationWithIdentifierや、UIDocumentInteractionControllerのようなクラスを使用することで可能になると言っています。誰も私のappicationからアプリケーションを起動する方法を助けてくれますか?事前に感謝私のアプリケーションからアプリを起動するための特別なAPI

答えて

15

は私が最初にこの方法が唯一の脱獄であることを言ってみましょう!これは、Appleができるは、いつでも将来のバージョンでをサポートすることを停止するプライベートAPIを使用しています!どうやら踏み台(またはLaunchServices、私は根は無用であるとして実行されていないアプリケーションからこのメソッドを呼び出してテストしてみたところでは

[[UIApplication sharedApplication] launchApplicationWithIdentifier:@"com.apple.Preferences" suspended:NO]; 

のは、それを取得しましょう、この方法は[UIApplication launchApplicationWithIdentifier:suspended:]プライベートメソッドを使用しています)このメソッドを使用すると、ルートアプリケーションだけが他のアプリケーションを起動することができます。

まずiPhoneを脱獄する必要があります。その後、アプリケーションをrootで実行する必要があります。

あなたのアプリをrootとして実行させるには、通常の/ User/Applications/UUID /YourApp.appではなく、/Applications/YourApp.appに配置する必要があります。

Cydiaを使用してOpenSSHをインストールし、SSHを使用して携帯電話のシェルにアクセスできます。

そして、例えば、あなたが権限を設定する必要が適切な場所にあなたのアプリを持った後:

enter image description here

私はCydiaのと同じものを使用します。

chown -R root:wheel /Applications/YourApp.app 

次に、少しトリック。バイナリはsetuid bitが必要になります。

chmod 4755 /Applications/YourApp.app/YourApp 

そして、最後のステップのために、踏み台は、setuidビットとオープンしていないアプリケーションを行いますが、それは(別のアプリを開くことができます)スクリプトを開きます!アプリがあります(ただrespring、今

#!/bin/bash 
CrrDir=$(dirname "$0") 
exec "${CrrDir}"/YourApp_ 

mv /Applications/YourApp.app/YourApp /Applications/YourApp.app/YourApp_ 

を、次のスクリプトを使用して、アプリケーションフォルダにYourAppという名前の新しいファイルを作成します:ちょうどYourApp_のようなものにバイナリの名前を変更しますCydiaのそれのために)あなたは行く準備ができている。

申し訳ありませんこれは難しいと思われる場合は、私はそれを学んだ場所を覚えていませんが、それはずっと前です。この方法はすべてのiOSバージョンで正常に動作し、iOS 5.1でテストしました。

もう一度、を実行すると、あなたのAPPはアップルによって承認されません。

+0

ありがとうございます。私はそれを読んで、今私はそれについて勉強します。それは難しいかどうかは関係ありません:) – ilhnctn

+0

Np、私はこの答えがより多くの人々に役立つことを願って、私はこの質問を何度も見ました。 – fbernardo

+0

2番目の質問ですが、私のデバイスを脱獄してこれらを行う必要がありますか(Cydiaを使ってOpenSSHをインストールし、SSHを使って携帯電話のシェルにアクセスしてください) – ilhnctn

関連する問題