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.
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
.plist
file sebelumnya .
3. Ganti semua kemunculan XCiPhoneOSCodeSignContext
oleh XCCodeSignContext
. Ada tiga di antaranya (XCode Versi 3.2.4+).
- Saya membuat tiga modifikasi seperti yang ditunjukkan tangkapan layar.
4. Simpan file dan mulai ulang Xcode.
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.py
dan menyimpannya di /usr/local/bin
direktori.
- 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 codesign
ke 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/tdmtanf
di 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.
Saya memastikan bahwa Penandatanganan Kode diatur untuk menggunakan sertifikat yang diatur pada langkah 1.
Saya membangun aplikasi (Project> Build). Pesan sukses berikut.
Saya ambil folder app saya TicTacToe.app
dari /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.app
ke 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.
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!)
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?