2011-09-18 11 views
5

私はCydiaアプリを開発しています。それはしばらくの間開発されていましたが、私は数ヶ月後に開発を再開した最近まで、問題は一度もありませんでした。私はそれに取り組んで最後の時間以降に変更されたものがいくつかあります:ライオン ビルドフェーズスクリプトを使用して、/アプリケーションにXcodeからiOSアプリケーションをデプロイしますか? (Jailbroken)

  • にアップグレード

    1. は、Xcodeの4 5.0
    2. に自分のiPad、iPhone上の4.3.5に更新
    3. に移動します

    私が行った研究から、私は古い設定について「珍しい」何かがあったという結論に達しました。プロビジョニングされたアプリケーションが「サンドボックスディレクトリ」/private/var/mobile/Applicationsに配置され、ファイルシステム全体への読み取りアクセス権を持つシステムアプリケーションが/Applicationsになることが判明しました。私はアップデートされたツールとLionを使用していると思いますが、私はシステム全体に読まれる特権を与えてくれました。だから、Xcodeをサンドボックス化されていないシステムディレクトリに直接デプロイする方法についての情報が必要です。

    ただし、いくつかの注意点があります。私はインストーラを使用する必要はありません。ビルドと実行後に自動的にXcodeを実行したいのです。また、コンソールを表示できるようにデバッガをアタッチできるようにしたいと考えています。

    ビルドフェーズスクリプトを使用して、署名付きバイナリを作成し、ビルド後に自動的に配布するために必要な魔法を使う方法を教えてもらえますか?私はこれが本当に可能であると思っています。コンソールの出力はとても価値のあるツールなので、Cydia自体のようなアプリケーションを開発するのは難しいでしょう。

    ありがとうございました!

  • +0

    これは助けるかもしれない - http://stackoverflow.com/questions/4127147/objective-c-nsfileposixpermissions-to-human-readable-nsstring – Coffee

    答えて

    2

    カスタムビルドフェーズとしてスクリプトを追加しました。スクリプトはアプリに署名し、パッケージを作成し、電話にコピーしてインストールします。 (下記である -

    ビルドフェーズは、/ binに/ shをして "スクリプトの実行" であると私は、スクリプト(なしエラーハンドリングは非常に基本的な)は、 "$ {} PROJECT_DIR /MyApp/install.sh"

    を追加しました)適切な値に置き換えます。

    (LatestBuildは、ビルドディレクトリへのリンクです) (ldidがiosopendevプロジェクトにインストールされている)

    cd $HOME/Projects/iPhone/MyProject/MyApp 
    cp -r ../LatestBuild/MyApp.app com.test.MyApp/Applications/ 
    ldid -S com.test.MyApp/Applications/MyApp.app/MyApp 
    rm com.test.MyApp.deb 2>&1 
    /opt/local/bin/dpkg-deb -b com.test.MyApp 
    scp com.test.MyApp.deb [email protected]:/var/root 
    ssh [email protected] "dpkg -r com.test.MyApp" 
    ssh [email protected] "dpkg -i com.test.MyApp.deb" 
    ssh [email protected] "killall -9 MyApp" 
    #ssh [email protected] "killall -HUP SpringBoard" 
    cd - 
    

    それは多くのことを改善することができる - それはちょうど私のニーズに合わせて動作します

    4

    コミュニティ間の一般的な合意は、これが望ましくないということです。 Theosのようなビルドシステムと、デバイスGDBとsyslogパッケージまたはdeviceconsoleのいずれかが結合されています。

    +0

    頭のおかげでありがとう。あなたは脱獄のコミュニティでよく知られている名前なので、私はあなたの答えを信頼しています。これはあなたの仕事をする方法ですか? – Justin

    +0

    私は自分の仕事をどのように行うのですか。さらに、私はcycriptを使っていくつかの実験を行います。 – rpetrich

    0

    私はxcodeについてよく知っているわけではありませんが、ほとんどのIDEのimのように、scpコマンドのような単純なものを理解することができれば、ポストビルドスクリプトを実行することができます。そこからアップロードすると、アプリケーションがアップロードされているディレクトリ内のldid -S nameofappを使用できます。

    あなたのアプリが/アプリケーションに存在することを許可したいのであれば、4.3.5へのアップグレードはあなたに拘束力のある脱獄を強要しますが、私は縛られていないJBを4.3.5に認識していません。再起動する必要があります。

    デバッガがgdbを提供する限り(あなたはcydiaからそれを得ることができます)、本当に便利です:)。あなたが開発者ideviceへのアクセス権を持っていない限り、私が考えることができる最も簡単な方法は、ldid thatsで手作業で署名するためにscpを使用するポストビルドスクリプトをxcodeで実行するだけです。

    私にスクリプトを書いて、それがどのように機能するか説明しようとしています。 :)

    簡単なアップロードスクリプト

    #!/bin/bash 
    scp -r $1 [email protected]$3:$4 
    
    $1 is lets say your app folder ill use my dpatcher as an example 
    
    $2 is user name either mobile or root(if you upload as root you need to chmod permissions to 755) 
    
    $3 is your idevices local ip(ie your routers ip for it) 
    

    あなたはsbsettingsまたは次のあなたのAPへの青い矢印をタップすると、それはあなたを教えてくれるの設定に行くことによって、あなたのIPアドレスを見つけることができます。

    $4 is where you want it to be most likely /Applications or /var/mobile/Applications 
    

    私はそれをアップロードと命名しました。SHしかし、あなたは何

    upload.sh dpatcher.app [email protected] /Applications 
    

    次にあなたが行うすべてはあなたが単一のファイルをアップロードする場合として、-r削除にsshのですldid -S nameofapp

    でそれに署名し、それに名前を付けることができます再帰的なアップロード(つまりフォルダ)のためのもの

    ファイルをアップロードするためにscpまたはsftpを使用する必要がある理由は、通常のftp AFAIKはサードパーティのアプリケーションを使用することでサポートされていないからです。

    私はXcodeと統合する方法がわかりません。私はvi、emacs、またはnano(そして私はMacを所有していません)のいずれかを使ってあらゆることを行います。

    関連する問題