Xcode: Apa itu target dan skema dalam bahasa biasa?
204
Ya judulnya :-) Apa maksudnya dalam bahasa Inggris biasa? Saya benar-benar tidak mengerti penjelasan di situs web Apple dan saya perlu mengganti nama target saya dan saya khawatir tidak ada yang berhasil setelah itu ..
Saya telah menambahkan di Workspace and Project juga!
Ruang Kerja - Berisi satu atau lebih proyek . Proyek-proyek ini biasanya berhubungan satu sama lain
Project - Berisi kode dan sumber daya, dll. (Anda akan terbiasa dengan ini!)
Target - Setiap proyek memiliki satu atau lebih target.
Setiap target mendefinisikan daftar pengaturan build untuk proyek itu
Setiap target juga mendefinisikan daftar kelas, sumber daya, skrip khusus, dll untuk disertakan / digunakan saat membangun.
Target biasanya digunakan untuk distribusi yang berbeda dari proyek yang sama.
Misalnya, proyek saya memiliki dua target, build "normal" dan build "office" yang memiliki fitur pengujian tambahan dan mungkin berisi beberapa trek musik latar belakang dan tombol untuk mengubah trek (seperti yang saat ini dilakukan).
Anda akan terbiasa menambahkan kelas dan sumber daya ke target default Anda saat Anda menambahkannya.
Anda dapat memilih kelas mana yang ditambahkan ke target yang mana.
Dalam contoh saya, saya memiliki kelas "DebugHandler" yang ditambahkan ke gedung kantor saya
Jika Anda menambahkan tes, ini juga menambah target baru.
Skema - Skema menentukan apa yang terjadi ketika Anda menekan "Build", "Test", "Profile", dll.
Biasanya, setiap target memiliki setidaknya satu skema
Anda dapat membuat sendiri skema untuk target Anda dengan masuk ke Skema> Kelola Skema dan menekan "Skema Autocreate Sekarang"
Mari kita coba jika saya mengerti dengan benar ... Saya sedang memprogram aplikasi dan membuat dua target. Yang akan saya unggah ke app store dan yang saya kembangkan sudah versi selanjutnya dari aplikasi yang sama. Dan dalam skema saya membuat misalnya satu skema di kedua target untuk menjalankan dan satu skema untuk debug? Tetapi mengapa saya membutuhkan skema yang berbeda untuk itu? Saya tidak mengerti keuntungan dari BJ Homer ..
MichiZH
FWIW, saya tidak menggunakan skema berbeda untuk rilis dan debug kecuali saya menambahkan fitur debug tambahan seperti yang saya jelaskan dalam jawaban saya.
James Webster
2
Penjelasan hebat! ! !
Sagar Kalathil
6
apa maksud Anda bahwa gedung kantor Anda memiliki tombol musik di bagian bawah. Apakah aplikasi Anda yang sebenarnya memiliki kode tambahan yang hanya diaktifkan di kantor atau musik dijalankan di mac Anda. Maaf saya bingung
3366784
Jenis ini mendefinisikan hal-hal apa yang membentuk setiap konsep, tetapi bukan tujuan dari setiap item. Bagi saya, itulah yang ditanyakan OP.
O'Rooney
66
Sebuah target yang merupakan produk akhir yang diciptakan dengan menjalankan "membangun" di Xcode. Mungkin aplikasi, atau kerangka kerja, atau perpustakaan statis, atau bundel uji unit. Apa pun itu, umumnya terkait dengan satu item dalam folder "produk yang dibangun".
Sebuah skema merupakan koleksi target yang Anda bekerja dengan bersama-sama. Ini mendefinisikan target mana yang digunakan ketika Anda memilih berbagai tindakan dalam Xcode (Jalankan, Uji, Profil, dll.) Sering kali, Anda hanya akan memiliki satu skema, yang menggunakan target aplikasi utama untuk tindakan Jalankan, Arsip, dan Profil, dan target uji unit untuk aksi Tes. Jika Anda membuat dua aplikasi terkait, Anda mungkin memiliki dua skema yang menggunakan bundel pengujian unit yang sama tetapi target aplikasi yang berbeda.
Manfaat utama skema (diperkenalkan dalam Xcode 4) adalah skema memungkinkan Anda beralih antara menjalankan aplikasi dan pengujian unit tanpa harus mengaktifkan target yang dipilih.
Saya orang yang visual, maka untuk menjelaskan konsep saya akan menggunakan diagram.
Ketika Anda memiliki banyak target, mereka dapat dicocokkan dengan Xcode's Run, Test, Profile tindakan, konsep ini mendefinisikan skema
Sebuah Target adalah versi Anda Project , target yaitu sedikit berbeda di kelas & sumber daya untuk digunakan selama waktu dibangun. Suatu proyek dapat memiliki beberapa pengaturan waktu dibangun untuk persyaratan distribusi yang terpisah.
Diagram ini sepertinya salah. Skema harus dikaitkan dengan target tertentu, saya tidak melihat di mana dalam skema Anda dapat memiliki beberapa target.
Boon
6
@Boon Tidak, sembronoChoosy benar. Di editor skema, klik item 'bangun' di sebelah kiri. Di area sebelah kanan, klik '+' dan Anda dapat menambahkan lebih banyak target ke skema ini. Centang kotak yang diinginkan. Eksekusi target ini kemudian tersedia di tindakan lain (Jalankan, Profil, dll) di drop-down yang dapat dieksekusi.
occulus
Ini bagus tetapi tidak ada bagian konfigurasi build dari skema. Saya pikir skema sebagai kumpulan bagaimana tindakan (Jalankan, Uji, Profil) cocok dengan kombinasi target dan membangun konfigurasi (debug, rilis, qa, prod, dll).
Steve Moser
3
Workspace( .xcworkspace) - adalah wadah berganda projects. Itu dibuat sebagai langkah selanjutnya dari cross-project references[Tentang]
Workspaceberisi semua schemesdari yang disertakanprojects
Workspacemenangani semua implicit dependencies[Tentang]
Pengamatan:
Aman untuk bekerja dengan berbagai proyek di dalam yang sama workspacedan tidak menangkapCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods[Tentang] bekerja denganworkspacetempat membuat Podsproyek
Project( .xcodeproj) - Ini adalah wadah untuk targetsdan scheme. Ini mendefinisikan file kode, sumber daya ...
Target- PBXNativeTargetbagian. Menentukan serangkaian pengaturan bangunan tertentu yang menghasilkan:
Application target
Library and framework targets
Test
Aggregate[Tentang] . Misalnya digunakan untuk membuatUniversal frameworkatauUmbrella framework
Scheme- Project'skonfigurasi untuk tindakan dalam Xcode: menjalankan , menguji , profil , menganalisis dan mengarsipkan . Schemadapat dibagikan yang membantu Anda dalam CI, Carthage... dan berlokasi:
Dependency- Targetsbisa punya dependencies. Ketergantungan adalah tautan sumber terhadap. Ketergantungan ini dapat dihubungkan secara statis atau dinamis [Tentang] Ada dua jenis:
Explicit Dependency[Tentang] - Kode sumber ketergantungan yang terletak di proyek yang sama atau proyek bersarang
Implicit Dependency[Tentang] - Sumber / kode tertutup dari ketergantungan yang terletak di proyek yang merupakan bagian dari ruang kerja yang sama.
Jawaban:
Saya telah menambahkan di Workspace and Project juga!
sumber
Sebuah target yang merupakan produk akhir yang diciptakan dengan menjalankan "membangun" di Xcode. Mungkin aplikasi, atau kerangka kerja, atau perpustakaan statis, atau bundel uji unit. Apa pun itu, umumnya terkait dengan satu item dalam folder "produk yang dibangun".
Sebuah skema merupakan koleksi target yang Anda bekerja dengan bersama-sama. Ini mendefinisikan target mana yang digunakan ketika Anda memilih berbagai tindakan dalam Xcode (Jalankan, Uji, Profil, dll.) Sering kali, Anda hanya akan memiliki satu skema, yang menggunakan target aplikasi utama untuk tindakan Jalankan, Arsip, dan Profil, dan target uji unit untuk aksi Tes. Jika Anda membuat dua aplikasi terkait, Anda mungkin memiliki dua skema yang menggunakan bundel pengujian unit yang sama tetapi target aplikasi yang berbeda.
Manfaat utama skema (diperkenalkan dalam Xcode 4) adalah skema memungkinkan Anda beralih antara menjalankan aplikasi dan pengujian unit tanpa harus mengaktifkan target yang dipilih.
sumber
Saya orang yang visual, maka untuk menjelaskan konsep saya akan menggunakan diagram.
Ketika Anda memiliki banyak target, mereka dapat dicocokkan dengan Xcode's Run, Test, Profile tindakan, konsep ini mendefinisikan skema
Sebuah Target adalah versi Anda Project , target yaitu sedikit berbeda di kelas & sumber daya untuk digunakan selama waktu dibangun. Suatu proyek dapat memiliki beberapa pengaturan waktu dibangun untuk persyaratan distribusi yang terpisah.
sumber
Workspace
(.xcworkspace
) - adalah wadah bergandaprojects
. Itu dibuat sebagai langkah selanjutnya daricross-project references
[Tentang]Workspace
berisi semuaschemes
dari yang disertakanprojects
Workspace
menangani semuaimplicit dependencies
[Tentang]Pengamatan:
workspace
dan tidak menangkapCouldn't load Project.xcodeproj because it is already opened from another project or workspace
Cocoapods
[Tentang] bekerja denganworkspace
tempat membuatPods
proyekProject
(.xcodeproj
) - Ini adalah wadah untuktargets
danscheme
. Ini mendefinisikan file kode, sumber daya ...Target
-PBXNativeTarget
bagian. Menentukan serangkaian pengaturan bangunan tertentu yang menghasilkan:Application target
Library and framework targets
Test
Aggregate
[Tentang] . Misalnya digunakan untuk membuatUniversal framework
atauUmbrella framework
Scheme
-Project's
konfigurasi untuk tindakan dalam Xcode: menjalankan , menguji , profil , menganalisis dan mengarsipkan .Schema
dapat dibagikan yang membantu Anda dalam CI,Carthage
... dan berlokasi:Dependency
-Targets
bisa punyadependencies
. Ketergantungan adalah tautan sumber terhadap. Ketergantungan ini dapat dihubungkan secara statis atau dinamis [Tentang] Ada dua jenis:Explicit Dependency
[Tentang] - Kode sumber ketergantungan yang terletak di proyek yang sama atau proyek bersarangImplicit Dependency
[Tentang] - Sumber / kode tertutup dari ketergantungan yang terletak di proyek yang merupakan bagian dari ruang kerja yang sama.[Kosa kata]
sumber