Apakah mungkin untuk mengkompilasi dan menjalankan proyek Xcode pada perangkat yang di-jailbreak tanpa sertifikat pengembang berbayar?

9

Baik untuk iseng dan untuk alasan anggaran, saya ingin mengambil paket yang biasanya memerlukan akun pengembang dan membangun aplikasi untuk berjalan di perangkat iOS yang sudah di-jailbreak.

Saya memiliki iPod Touch gen ke-5, di-jailbreak menggunakan evasi0n, menjalankan iOS 6.1.

Saya menggunakan Xcode 4.6 dengan OS X (10.8.2) Lion.

Joncom
sumber

Jawaban:

6

Langkah-langkah instruksional berikut untuk mencapai tujuan ini diambil dari: http://iphonedevwiki.net/index.php/Xcode

Temuan dan tindakan saya disediakan di bawah setiap langkah.

1. Buat sertifikat penandatanganan kode yang ditandatangani sendiri dengan nama "Pengembang iPhone" pada gantungan kunci "login" (default) menggunakan Akses Keychain.

  • Saya mengambil tangkapan layar saat saya mengikuti instruksi di atas.
  • Saya membiarkan sebagian besar bidang kosong atau pada nilai standarnya.

masukkan deskripsi gambar di sini

2. Buka /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 atau di bawah /Developer/Platforms/iPhoneOS.platform/Info.plist:). Anda mungkin perlu izin root.

  • Saya menggunakan Xcode 4.6, jadi saya membuka .plistfile sebelumnya .

3. Ganti semua kemunculan XCiPhoneOSCodeSignContextoleh XCCodeSignContext. Ada tiga di antaranya (XCode Versi 3.2.4+).

  • Saya membuat tiga modifikasi seperti yang ditunjukkan tangkapan layar.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

4. Simpan file dan mulai ulang Xcode.

  • Menyimpan file.

5. Pastikan Anda memiliki ldid di Mac Anda. Tempatkan salinan di suatu tempat misalnya di /usr/local/bin.

6. Buat skrip Python ldid3.py tepat di sebelah program ldid. Jadikan itu dapat dieksekusi. Isi dengan:

#!/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])
  • Saya membuat file teks biasa baru dan menyalin kode di atas ke dalamnya.
  • Saya menyimpan file ini sebagai ldid3.pydan menyimpannya di /usr/local/bindirektori.
  • Di terminal, lari chmod 777 /usr/local/bin/ldid3.py.

7. Buka iPhoneCodeSign.xcspec. File ini dapat ditemukan di [Untuk Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Ubah entri dalam file dari menelepon codesignke ldid3.py.

  • Sesuai instruksi resmi, konversikan file spesifikasi menjadi teks biasa dengan mengetikkan konsol: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • Saya membuka file dengan TextEdit.
  • Diganti <key>CommandLine</key><string>/usr/bin/codesign</string>dengan <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Simpan file dan mulai ulang Xcode.

  • Saya menyimpan file dan keluar dari TextEdit.

10. Buat file /var/mobile/tdmtanfdi perangkat, untuk mengaktifkan "TDMTANF bypass" Apple di installd (peringatan: melakukannya juga akan menempatkan Anda di GameCenter kotak pasir).

  • Saya membuat file teks kosong di Windows, menamainya tdmtanf, SSH ke iPod saya, mengunggahnya /var/mobile/, dan reboot iPod saya.

Sekarang semua sudah berakhir dengan ...

Saya membuka proyek Xcode saya yang ada dan tekan Run. Ini bekerja di Simulator iOS tanpa masalah.

masukkan deskripsi gambar di sini

Saya memastikan bahwa Penandatanganan Kode diatur untuk menggunakan sertifikat yang diatur pada langkah 1.

masukkan deskripsi gambar di sini

Saya membangun aplikasi (Project> Build). Pesan sukses berikut.

Saya ambil folder app saya TicTacToe.appdari /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/dan transfer ke mesin Windows saya untuk menginstal ke iPod saya.

Dalam upaya untuk menginstal aplikasi ke iPod saya, saya menyeret TicTacToe.appke bagian aplikasi dari iPhone Configuration Utility, tetapi saya menerima pesan kesalahan ini dengan mengatakan bahwa aplikasi saya "bukan aplikasi seluler yang valid."

Saya juga telah mencoba menginstal aplikasi secara manual menggunakan iFunbox dan aplikasi AppCake yang ditemukan di Cydia. Keduanya gagal.

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Sebagai hal yang menarik, karena saya sudah mencari di sekitar Google, saya perhatikan banyak orang menyebutkan pentingnya ini: Saya sudah menginstal AppSync. (Maaf untuk tangkapan layar besar. Jika saya harus mencatatnya, tolong beri tahu saya!)

masukkan deskripsi gambar di sini

Kesimpulan

Jadi meskipun mengikuti instruksi dengan cermat, beberapa kali, aplikasi saya tidak dikenali oleh iPhone Configuration Utility sebagai aplikasi yang valid. Saya tidak dapat menginstal aplikasi secara manual menggunakan program seperti iFunbox, atau aplikasi Cydia seperti AppCake.

Saya menduga aplikasi ini memang tidak valid, tetapi setelah mengikuti instruksi dengan hati-hati, saya tidak yakin mengapa.

Adakah yang bisa memberi tahu saya mengapa aplikasi saya tidak valid, dan apa yang dapat saya lakukan untuk memperbaikinya, selain batuk uang itu?

Joncom
sumber
Tapi itu bacaan yang menarik.
Thecafremo
Tidak - senang telah membacanya dan mungkin akan kembali lagi di masa mendatang. Terima kasih telah membagikannya.
Robert
Ini sangat membantu saya ketika bekerja pada Xcode 4.2 dan iOS 4, saya harap seseorang dapat memperbarui prosedur untuk Xcode 4.6
rraallvv
Setelah mengunduh ldid, Anda perlu mengubah izinnya menjadi 755 dengan chmod 755 ldid. Ini menyebabkan saya keluar 1 kesalahan.
0

Anda dapat menghubungkan perangkat Anda dan memilih Perangkat iOS Anda sebagai target Jalankan. ketika dijalankan, aplikasi secara otomatis diinstal pada perangkat Anda. Atau Anda dapat memilih Perangkat iOS Anda, maka tidak perlu Jalankan saja Bangun dan Arsipkan. Setelah itu, distribusikan ... pilih Save for Enterprise atau Ad-Hoc Deployment. Anda akan mendapatkan file .ipa Anda. Semoga bisa membantu Anda ..

sl33py
sumber
0

melanjutkan jawaban @joncom .. Anda dapat menambahkan file .app ke iPhone secara langsung, hanya dengan beberapa langkah tambahan.

  • salin .appfile ke desktop Anda, dan kemudian zipkan
  • ganti nama [yourappname].zipmenjadi[yourappname].ipa
  • kemudian lanjutkan dan unduh AppSync dari cydia
  • unduh dan instal file .ipa ke perangkat Anda

CATATAN:

Anda juga dapat melakukan ini secara langsung tanpa melalui semua modifikasi kode python yang disebutkan @joncom .. baca lebih lanjut di sini

Leo
sumber