Bagaimana saya bisa menggunakan aplikasi iPhone dari Xcode ke perangkat iPhone asli?

157

Bagaimana saya bisa menggunakan aplikasi iPhone dari Xcode ke perangkat iPhone asli tanpa memiliki sertifikat Apple US $ 99?

DFG
sumber
Lihat jawaban ini untuk pertanyaan yang saya tanyakan sebelumnya untuk panduan yang sangat baik tentang bagaimana cara meletakkannya di iPhone Anda yang sudah di-jailbreak.
Dan Walker
2
Xcode 7 memiliki ketentuan gratis sekarang sehingga tidak perlu mendaftar untuk Akun Pengembang Apple untuk menguji aplikasi pada perangkat nyata. Lihat jawaban ini untuk lebih jelasnya.
Suragch

Jawaban:

56

Sepertinya aplikasi tidak ditandatangani. Unduh ldid dari Cydia dan gunakan seperti ini:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

Juga pastikan bahwa biner ditandai sebagai executable: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph

rpetrich
sumber
3
Ya, Anda harus melakukan jailbreak perangkat Anda agar metode ini berfungsi. (jelas)
esqew
bagaimana Anda menjalankan perintah ldid -S ...? apakah Anda memerlukan konsol SSH untuk itu? apakah ada cara gratis untuk mendapatkan klien SSH pada iPhone yang sudah di-jailbreak?
Dan Leahu
tanderson: ada paket ldid di Cydia dan Anda dapat mengkompilasinya untuk OS X
rpetrich
rpetrich Saya percaya pertanyaannya adalah bagaimana mengetik dan menggunakan perintah, bukan bagaimana mendapatkan paket. @tanderson Anda dapat melewati Open SSH (dan kemudian terhubung ke ponsel dari desktop Anda) atau Terminal di dalam iPhone itu sendiri. Kedua aplikasi tersebut merupakan unduhan gratis dari Cydia . Dengan SSH Anda memiliki keuntungan, Anda juga dapat menggunakannya untuk hanya menyalin aplikasi Anda ke ponsel dengannya. Jika Anda sering melakukan ini, pastikan untuk memeriksa jawaban lain - Anda dapat membuat XCode melakukan semua pekerjaan untuk Anda, tetapi itu merupakan prosedur yang merepotkan untuk mengelabui melakukan hal itu.
cregox
92

Saya telah menggunakan campuran dua howtos: Jason dan alex . Dengan yang kedua kita memiliki keuntungan bisa melakukan debug. Saya sebagian besar hanya akan menyalin keduanya di bawah ini (dan menyederhanakan alex):

Pembaruan Jan 2012: ini masih berfungsi pada SDK 4.2.1 dan iOS 5.0.1 - Saya baru saja menguji semuanya pada komputer dan perangkat baru!


1. Buat Sertifikat yang Ditandatangani Sendiri

Patch iPhone SDK Anda untuk memungkinkan penggunaan sertifikat ini:

  1. Luncurkan Keychain Access.app. Tanpa item yang dipilih, dari menu Keychain pilih Asisten Sertifikat, lalu Buat Sertifikat.

    • Nama: Pengembang iPhone
    • Jenis Sertifikat: Penandatanganan Kode
    • Biarkan saya menimpa default: Ya
  2. Klik Lanjutkan

    • Validitas: 3650 hari
  3. Klik Lanjutkan

  4. Kosong keluar yang Email field alamat.

  5. Klik Lanjutkan sampai selesai .

    Anda akan melihat "Sertifikat root ini tidak tepercaya" . Ini diharapkan.

  6. Atur iPhone SDK untuk memungkinkan sertifikat yang ditandatangani sendiri digunakan:

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist

    Jika Xcode Anda terbuka, mulai ulang agar perubahan ini berlaku.

Dan jika Anda menggunakan iOS 5, itu saja! Coba sekarang! Mungkin tidak memungkinkan debugging, tetapi aplikasi akan ada di sana!

Saya sangat terkejut dengan hal ini karena, seperti yang seharusnya Anda ketahui , saya tidak tahu apa arti semua peretasan itu! Yang saya lakukan adalah meningkatkan sedikit apa yang saya temukan di tempat lain, seperti yang saya tunjukkan.

Jadi ya, seluruh metode tidak bekerja dengan cara yang sama lagi dan saya tidak bisa repot-repot menemukan yang baru ... Kecuali untuk ini, yang menggunakan alat yang disebut Theos tapi saya tidak bisa melalui seluruh proses.

Terakhir, jika Anda perlu menghapus instalannya untuk alasan apa pun, periksa bagian akhir posting ini. Dalam kasus saya, saya harus melakukannya karena saya tidak tahu mengapa semua metode ini berhenti bekerja, dan saya tidak peduli lagi karena kami sudah mendapatkan lisensi lama. (Nomor DUNS Freaking begitu lama ...)

.

.


.

.

.

2. Aktifkan Xcode untuk Membangun di Perangkat Jailbroken

  1. Di iPhone yang sudah di-jailbreak, instal aplikasi AppSync dengan menambahkan sumber ** http://repo.hackyouriphone.org **

  2. Hapus persyaratan SDK untuk tanda kode dan hak (Aku suka sed !):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
  3. Perhatikan keiPhoneOS5.0.sdkbagian. Jika Anda, misalnya, menggunakan iOS 4.2 SDK, cukup ganti sesuai:

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
  4. Akhiri penghapusan persyaratan melalui tambalan Xcode. Ini berarti pengeditan biner:

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
    dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
    printf "\xc3\x26\x00\x00" >> working
    /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
    /bin/mv working iPhoneOS\ Build\ System\ Support
    chmod a+x iPhoneOS\ Build\ System\ Support
    

    Jika Anda memiliki Xcode terbuka, mulai ulang untuk perubahan ini (dan yang terakhir) untuk berlaku.

  5. Buka "Proyek> Edit Pengaturan Proyek" (dari menu). Klik pada tab "Bangun" . Temukan "Identitas Penandatanganan Kode" dan anaknya "Perangkat iPhoneOS" di daftar, dan atur keduanya ke entri "Jangan Tanda Kode" :

    teks alternatif

    Setelah ini jangan ragu untuk membatalkan langkah 3. Setidaknya dalam kasus saya itu berjalan dengan baik.

  6. Mengatur Xcode ke tanda kode dengan sertifikat yang ditandatangani sendiri dibuat khusus kami (cara pertama). Langkah ini mungkin dapat dilewati jika Anda tidak ingin dapat melakukan debug:

    mkdir /Developer/iphoneentitlements401
    cd /Developer/iphoneentitlements401
    curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
    mv gen_entitlements.txt gen_entitlements.py
    chmod 777 gen_entitlements.py
    

    Hubungkan iPhone Anda dan buka Xcode. Buka Window> Organizer. Pilih perangkat dari daftar di sebelah kiri, dan klik "Gunakan untuk pengembangan." Anda akan diminta untuk memasukkan situs web penyediaan, klik batal. Itu ada untuk membuat ketentuan yang lebih mudah lebih mudah, tetapi tidak membuat ketentuan yang tidak sah menjadi lebih sulit.

    Sekarang Anda harus melakukan bagian terakhir ini untuk setiap proyek baru yang Anda buat . Buka menu Project> New Build Phase> New Run Script Build Phase. Di jendela, salin / tempel ini:

    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
    codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
    fi
    

.

.


.

.

Menghapus instalasi

Untuk bagian 1:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist

Untuk bagian ke-2:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support

jika Anda melakukan langkah 3 dan bukan 2, cukup modifikasi sesuai juga:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist

sisanya, hanya mengembalikan apa yang Anda lakukan pada XCode dan menghapus /Developer/iphoneentitlements401/gen_entitlements.pyjika Anda mau:

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
cregox
sumber
Sudah mencoba mengikuti petunjuk ini, tetapi sekarang 'Skema' adalah tipe My Mac 64 bit, dan saya tidak memiliki opsi untuk menjalankan simulator atau iPhone asli lagi, jadi saya bahkan tidak dapat menguji kodenya. Saya menggunakan SDK 4.3, tidak yakin apakah itu penting
nosatalian
1
Sebenarnya, perbarui: setelah mengubah SDK dasar dalam pengaturan proyek dari iphoneos ke iOS 4.3, semuanya berfungsi. Meskipun xcode mengatakan 'Kesalahan meluncurkan program jarak jauh: gagal mendapatkan tugas untuk proses' Saya dapat meluncurkan aplikasi dengan mengkliknya.
nosatalian
1
Saya mendapatkan kesalahan ini: The identity used to sign the executable is no longer valid. ... (0xE8008018) Bahkan ketika saya menempatkan 3650 hari untuk kedaluwarsa. Sepertinya ponsel itu sendiri sedang melakukan pemeriksaan.
Stephen
apakah trik "menambal XCode" ini bekerja untuk 4.3.2 atau ini akan rem itu
Gabor
1
Butir 6. Dalam kasus saya, saya harus mengubah izin file /Developer/iphoneentitlements401/gen_entitlements.py untuk membuat pengguna normal menjalankannya. Dengan ini prosedur ini bekerja dengan sempurna.
abidibo
43

Provisioning Gratis setelah Xcode 7

Untuk menguji aplikasi Anda pada perangkat nyata daripada membayar biaya Pengembang Apple (atau jailbreak perangkat Anda), Anda dapat menggunakan ketentuan gratis baru yang didukung Xcode 7 dan iOS 9.

Berikut langkah-langkah yang diambil kurang lebih dari dokumentasi (yang cukup bagus, jadi bacalah):

1. Tambahkan ID Apple Anda di Xcode

Buka XCode> Preferensi> tab Akun> tombol Tambah (+)> Tambahkan ID Apple. Lihat dokumen untuk bantuan lebih lanjut.

masukkan deskripsi gambar di sini

2. Klik tab Umum di Navigator Proyek

masukkan deskripsi gambar di sini

3. Pilih ID Apple Anda dari menu popup Tim.

masukkan deskripsi gambar di sini

4. Hubungkan perangkat Anda dan pilih di menu skema.

masukkan deskripsi gambar di sini

5. Klik tombol Perbaiki Masalah

masukkan deskripsi gambar di sini

Jika Anda mendapatkan kesalahan tentang nama bundel yang tidak valid, ubah itu menjadi sesuatu yang unik.

6. Jalankan aplikasi Anda

Di Xcode, klik tombol Bangun dan jalankan.

masukkan deskripsi gambar di sini

7. Percayai pengembang aplikasi dalam pengaturan perangkat

Setelah menjalankan aplikasi Anda, Anda akan mendapatkan kesalahan keamanan karena aplikasi yang ingin Anda jalankan bukan dari App Store.

masukkan deskripsi gambar di sini

Pada perangkat Anda , buka Pengaturan> Umum> Profil> nama -Apple-ID-Anda > Percayai nama -Apple-ID-Anda > Percaya.

8. Jalankan aplikasi Anda di perangkat Anda lagi.

Itu dia. Sekarang Anda dapat menjalankan sendiri (atau aplikasi lain yang memiliki kode sumbernya) tanpa harus mengeluarkan $ 99 dolar. Terima kasih, Apple, untuk akhirnya mengizinkan ini.

Suragch
sumber
1
Terima kasih banyak. ini bekerja dengan sempurna tanpa Lisensi Pengembang Apple berbayar.
kishorer747
Namun ada beberapa masalah - Anda hanya dapat menginstal hingga 3 aplikasi sekaligus, dan Anda perlu memperbarui sertifikat setiap minggu.
SilverWolf - Reinstate Monica
@seaturtle, terima kasih atas pembaruannya. Saya akhirnya membayar uang untuk lisensi pengembang jadi saya belum memperbarui informasi ini. Itu terlalu buruk tentang batasannya. Ada beberapa hal tentang Android yang jauh lebih bagus daripada Apple.
Suragch
9

Anda tidak bisa, tidak jika Anda berbicara tentang aplikasi yang dibangun dengan SDK resmi dan menggunakan langsung dari xcode.

micmcg
sumber
8

Anda harus melakukan jailbreak pada perangkat Anda.

Bisa Berk Güder
sumber
1
Ikuti metode @ rpetrich dan SSH yang dapat dieksekusi ke folder Perangkat / aplikasi, seharusnya berfungsi setelah reboot / respring.
esqew
6

Ada cara untuk menyebarkan aplikasi iPhone tanpa membayar ke apel. Anda harus melakukan jailbreak perangkat Anda dan ikuti instruksi di http://www.alexwhittemore.com/?p=398

Leo
sumber
juga panduan yang sempurna, dengan pendekatan yang berbeda dari @Dan ... Saya menggunakan keduanya, tho.
cregox
5

Tidak ada yang saya lihat di mana pun yang menunjukkan bahwa Anda dapat menggunakan ad-hoc ke iPhone asli tanpa sertifikat (berbayar).

Matthew Phillips
sumber
4

Saya akan melalui Pengembang Apple tadi malam dan di sana dalam Provisioning Certificate saya menemukan sesuatu seperti - "Anggota Tim Penandatanganan". Saya pikir ada cara untuk menambahkan anggota tim ke profil berbayar. Anda bisa meminta kepada Pemilik Id Aplikasi (berbayar) untuk menambahkan Anda sebagai anggota tim. Saya tidak yakin. Masih mencari itu.

Akshay
sumber
Ya, Anda dapat menambahkan anggota tim. Ada batas 200 perangkat per tahun.
cregox
Cawas - Apakah Anda tahu cara menambahkan anggota ke id apel Anda?
Akshay
kami hanya mendapatkan notifikasi jika Anda menambahkan @ sebelum nama. Seperti yang Anda katakan sendiri, Anda harus terlebih dahulu mendapatkan Akun Pembayaran. Maka itu harus sangat sederhana karena saya tidak dapat menemukan tutorial tentang cara melakukannya. Saya tidak pernah melakukannya sendiri, tho.
cregox
3

Tidak, ini mudah dilakukan. Di Xcode, atur Konfigurasi Aktif ke Rilis. Ubah perangkat dari Simulator ke Perangkat - SDK apa pun. Jika Anda ingin mengekspor langsung ke iPhone Anda, sambungkan ke komputer Anda. Tekan Bangun dan Buka. Jika iPhone Anda tidak terhubung ke komputer Anda, sebuah pesan akan muncul mengatakan bahwa iPhone Anda tidak terhubung.

Jika ini berlaku untuk Anda: (iPhone tidak terhubung)

Buka folder proyek Anda dan kemudian ke folder build di dalamnya. Buka folder Release-iphoneos dan bawa aplikasi ke dalamnya, seret dan lepas di ikon iTunes. Ketika Anda menyinkronkan perangkat iTouch Anda, itu akan menyalinnya ke perangkat Anda. Itu juga akan muncul di iTunes sebagai aplikasi untuk iPhone.

Semoga ini membantu!

PS: Jika mengatakan sesuatu tentang sertifikat yang tidak valid, cukup klik proyek dalam Xcode, ikon proyek kecil di tumpukan file ke kiri, dan tekan Apple + I, atau lakukan Dapatkan Info dari bilah menu. Klik Build di bagian atas. Di bawah Penandatanganan Kode, ubah Identitas Penandatanganan Kode - Semua Perangkat OS iPhone menjadi Jangan Masuk.

cdespinosa
sumber
7
OP tidak memiliki sertifikat penandatanganan atau profil penyediaan. Instruksi ini diperuntukkan bagi anggota jika Program Pengembang iPhone $ 99 tetapi tidak menjawab pertanyaan tentang cara menjalankan perangkat tanpa mendaftar untuk program tersebut.
cdespinosa
2

Ini benar-benar semua tergantung pada versi Xcode apa yang Anda gunakan karena versi yang berbeda menggunakan metode yang berbeda untuk digunakan ke iPhone Anda tanpa profil bawaan.

Xcode 3.2.1 adalah versi yang bagus dan mudah untuk disortir, tetapi kami perlu tahu versi apa yang Anda gunakan.

Magnatek
sumber
2

Solusi yang diposting oleh Cawas juga berfungsi sempurna dengan XCode4. Namun, ada beberapa perubahan pada UI IDE, jadi Anda perlu melakukan riset untuk menemukan Run Script :)

Pada tampilan Project Navigator klik item root dari proyek, kemudian di jendela tengah pilih Target, lalu klik tab Build Phases dan di bagian bawah Anda akan melihat tombol Add Build Phase, klik dan pilih Add Run Script, lalu tempelkan "codesign "skrip diposting oleh Cawas.

Gobol
sumber
1

Tidak ada solusi. Anda hanya dapat menggunakan aplikasi ad hoc jika terdaftar dengan perangkat Anda. Ini mencegah Anda membangun toko aplikasi sendiri ..


sumber