有料の開発者証明書なしでジェイルブレイクされたデバイスでXcodeプロジェクトをコンパイルして実行することは可能ですか?


9

キックと予算上の理由の両方で、通常は開発者アカウントを必要とするパッケージを取得して、ジェイルブレイクされたiOSデバイスで実行するアプリをビルドしたいと思います。

第5世代のiPod Touchを持っています。evasi0nを使用して脱獄し、iOS 6.1を実行しています。

Xcode 4.6とOS X(10.8.2)Lionを使用しています。

回答:


6

この目的を達成するための次の手順は、http//iphonedevwiki.net/index.php/Xcodeから取得され ます。

私の調査結果とアクションは、各ステップで提供されます。

1.キーチェーンアクセスを使用して、「ログイン」(デフォルト)キーチェーンに「iPhone Developer」という名前の自己署名コード署名証明書を作成します。

  • 上記の指示に従って、スクリーンショットを撮りました。
  • ほとんどのフィールドを空白またはデフォルト値のままにしました。

ここに画像の説明を入力してください

2.開く/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2以下:)/Developer/Platforms/iPhoneOS.platform/Info.plist。root権限が必要な場合があります。

  • Xcode 4.6を使用しているため、前の.plistファイルを開きました。

すべての出現を交換して3. XCiPhoneOSCodeSignContextによりますXCCodeSignContext。それらは3つあります(XCodeバージョン3.2.4以降)。

  • スクリーンショットが示すように、3つの変更を加えました。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

4.ファイルを保存し、Xcodeを再起動します。

  • ファイルを保存しました。

5. Macにldidがあることを確認します。コピーを、たとえばのどこかに配置します/usr/local/bin

6. ldidプログラムのすぐ隣にPythonスクリプトldid3.pyを作成します。実行可能にします。以下を入力してください:

#!/usr/bin/env python

from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile

app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])

if '-gta' not in argv:
    check_call([ldid_path, '-S', obj_path])
else:
    with NamedTemporaryFile('w+b', 0) as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call([ldid_path, '-S' + f.name, obj_path])
  • 新しいプレーンテキストファイルを作成し、上記のコードをコピーして貼り付けました。
  • このファイルをとしてldid3.py保存し、/usr/local/binディレクトリに保存しました。
  • ターミナルで、を実行しましたchmod 777 /usr/local/bin/ldid3.py

7.を開きiPhoneCodeSign.xcspecます。このファイルは、[Xcode 4.6の場合/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]にあります。

8.変更の呼び出しからファイルのエントリcodesignldid3.py

  • 命令の公式指示に従って、コンソールに入力してスペックファイルをプレーンテキストに変換しました。 sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • TextEditでファイルを開きました。
  • 交換し<key>CommandLine</key><string>/usr/bin/codesign</string><key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>

9.ファイルを保存して、Xcodeを再起動します。

  • ファイルを保存して、TextEditを終了しました。

10. /var/mobile/tdmtanfデバイス上にファイルを作成し、installdでAppleの「TDMTANFバイパス」を有効にします(警告:サンドボックス化されたGameCenterにも配置されます)。

  • Windowsで空のテキストファイルを作成し、という名前を付けtdmtanf、SSHでiPodにアップロードし、にアップロードして/var/mobile/、iPodを再起動します。

これですべてが終わりました...

既存のXcodeプロジェクトを開き、[実行]をクリックします。iOSシミュレータで問題なく動作します。

ここに画像の説明を入力してください

手順1で設定した証明書を使用するようにコード署名が設定されていることを確認します。

ここに画像の説明を入力してください

アプリをビルドします([プロジェクト]> [ビルド])。成功メッセージが続きます。

私は私のアプリのフォルダをつかむTicTacToe.appから/Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/、私のiPodにインストールするには、私のWindowsマシンに転送します。

アプリをiPodにインストールしようとしてTicTacToe.app、iPhone構成ユーティリティのアプリケーションセクションにドラッグしましたが、アプリが「有効なモバイルアプリケーションではありません」というエラーメッセージが表示されました。

私はまた、手動で使用してアプリケーションのインストールしようとしているiFunboxAppCakeの Cydiaの中に見出さアプリ。どちらも失敗します。

ここに画像の説明を入力してください ここに画像の説明を入力してください

興味深いことに、私がグーグルで検索してきたので、多くの人がこれの重要性に言及していることに気づきました。AppSyncがインストールされています。(スクリーンショットが大きいため申し訳ありません。削除する必要がある場合は、お知らせください!)

ここに画像の説明を入力してください

結論

そのため、指示に厳密に従っているにもかかわらず、私のアプリはiPhone構成ユーティリティによって有効なアプリとして認識されません。iFunboxなどのプログラムやAppCakeなどのCydiaアプリを使用してアプリを手動でインストールできません。

アプリは確かに無効だと思いますが、注意深く手順を実行したので、その理由はわかりません。

私のアプリが有効ではない理由、そしてそれを修正するために私ができることは、お金を咳払いする以外に誰かに教えてもらえますか?


しかし、それは興味深い読み物でした。
Thecafremo 2013

いいえ。読んだことをうれしく思います。将来的には戻ってくるでしょう。共有していただきありがとうございます。
ロバート

これは、Xcode 4.2とiOS 4で作業するときに非常に役立ちました。誰かがXcode 4.6に手順を更新できることを願っています
rraallvv

ldidをダウンロードした後、chmod 755 ldidを使用してその権限を755に変更する必要があります。これにより、exit 1エラーが発生しました。

0

デバイスを接続して、iOSデバイスを実行ターゲットとして選択できます。実行すると、アプリケーションがデバイスに自動的にインストールされます。または、iOSデバイスを選択して、ビルドしてアーカイブするだけで実行する必要はありません。その後、配布...エンタープライズまたはアドホック展開用に保存を選択します。.ipaファイルを取得します。お役に立てれば幸いです。


0

@joncomの回答を続けます..いくつかの追加手順を実行するだけで、.appファイルをiPhoneに直接追加できます。

  • .appファイルをデスクトップにコピーしてから、圧縮します
  • の名前[yourappname].zip[yourappname].ipa
  • 次に先に進み、cydiaからAppSyncをダウンロードします
  • .ipaファイルをダウンロードしてデバイスにインストールします

注意:

あなたも直接@joncom述べた。..続きを読むすべてのPythonコードの変更を経由せずにこれを行うことができ、ここで

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.