Saya akan menambahkan 2 sen saya di sini (dengan cara yang kurang menakutkan :-). Saya telah menemukan cukup banyak perpustakaan gemuk dari Vendor yang (karena alasan tertentu) tidak berfungsi seperti biasa dengan menambahkannya ke Frameworksdirektori seperti yang didokumentasikan oleh Apple. Satu-satunya cara kita telah mampu membuat pekerjaan mereka adalah dengan menarik .framekworktepat ke direktori proyek dan menghubungkan Embedded Frameworksdan Link Binary with Librariesmanual di Settings Build. Ini tampaknya telah bekerja tanpa masalah, karena dengan perpustakaan gemuk mereka datang dengan Simulator Arsitektur asing i386 dan x86_64bersama denganarm arsitektur.
Cara cepat untuk memeriksa arsitektur di perpustakaan gemuk adalah
$ cd 'Project_dir/Project'
$ lipo -info 'YourLibrary.framework/YourLibExec`
Yang mana harus mengeluarkan output seperti ini
Architectures in the fat file: YourLibrary.framework/YourLibExec are: i386 x86_64 armv7 arm64
Ini menegaskan bahwa Anda perlu "memotong lemak" (yaitu i386&x86_64 ) dari kerangka kerja Anda sebelum mengunggah iTunesConnect Archival, yang tidak mengizinkan arsitektur ini (karena tidak didukung untuk iOS).
Sekarang, semua jawaban (atau paling tidak beberapa jawaban) di sini memberikan Run Script yang luar biasa yang saya yakin berfungsi dengan sangat baik, tetapi hanya jika Kerangka Anda berada di Frameworksdirektori. Sekarang kecuali Anda pecandu skrip shell, skrip tanpa modifikasi, tidak akan berfungsi untuk skenario yang saya jelaskan di atas. Namun, ada cara yang sangat sederhana untuk menyingkirkan i386& x86_64arsitektur dari framework.
Buka terminal di direktori proyek Anda.
Ubah direktori langsung menjadi .framekwork, seperti
cd YourProjectDir/YourProject/YourLibrary.framework
Jalankan serangkaian perintah seperti yang ditunjukkan di bawah ini-
$ mv YourLibrary YourLibrary_all_archs
$ lipo -remove x86_64 YourLibrary_all_archs -o YourLibrary_some_archs
$ lipo -remove i386 YourLibrary_some_archs -o YourLibrary
$ rm YourLibrary_all_archs YourLibrary_some_archs
Beberapa hal yang perlu diperhatikan di sini - lipo -removeharus dilakukan sekali agar setiap arsitektur dihapus. lipotidak memodifikasi file input, itu hanya menghasilkan file sehingga Anda harus menjalankan lipo -removesatu kali untuk x86_64dani386 . Perintah di atas hanya melakukan itu dengan terlebih dahulu mengubah nama executable dan kemudian akhirnya menghapus lengkungan yang diinginkan, dan kemudian membersihkan sisa file. Dan itu saja, Anda seharusnya sekarang melihat tanda centang hijau di unggah Application Loader Archival ke iTunesConnect.
Hal-hal yang perlu diingat : Langkah-langkah di atas hanya boleh dilakukan saat produksi membangun, karena .frameworkakan dilucuti dari arsitektur simulator, membangun di atas simulator akan berhenti bekerja (yang diharapkan). Dalam lingkungan pengembangan, seharusnya tidak perlu menghapus arsitektur dari .frameworkfile karena Anda ingin dapat menguji pada Simulator dan perangkat fisik. Jika pustaka Anda berada di Frameworksfolder dalam proyek maka silakan lihat jawaban yang diterima.