Rumah > Artikel > hujung hadapan web > Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)
Bagaimanakah pemalam asli uniAPP dibungkus pada iOS? Artikel berikut akan bercakap dengan anda tentang proses pembungkusan pemalam asli uniAPP pada iOS. Saya harap ia akan membantu anda!
Permulaan karut: uniAPP dibungkus menggunakan kompilasi awan, iaitu, apl seterusnyaiOS Bahagian asal kod perlu diserahkan ke latar belakang uni untuk penyusunan Dapat difahami bahawa terdapat Xcode persekitaran berjalan pada <.>uni pelayan Sudah tentu, awan harus dilengkapkan menggunakan perintah Xcode Apabila HBuilderX melakukan penyusunan awan, semua perpustakaan asli tempatan akan dimampatkan dan dibungkus ke dalam. awan. Akhir sekali, ipa yang dikompilasi Muat turun pakej secara setempat supaya ia boleh dipasang.
1. Tetapan perpustakaan statik MenurutDemo yang dimuat turun dari laman web rasmi uni, anda boleh membiasakan diri dengan struktur projek.
1. Projek utama HBuilder-uniPlugin
Ia sebenarnya boleh difahami secara kasar sebagai kompilasi awan masaSeluruh persekitaran kompilasi Xcode, mengapa anda berkata demikian? Anda boleh melihat semua kebergantungan projek ini.
Kebergantungan tempatan semata-mata adalah sebanyak120, kerana uni telah mempertimbangkan kos penyusunan awan, jika semua Perpustakaan dimuat naik oleh pembangun, jadi sejumlah besar sumber kompilasi akan diduduki, jadi kaedah storan perpustakaan pihak ketiga jauh diguna pakai, yang juga boleh dipelajari dalam latar belakang uni.
Penerangan versi pustaka pihak ketiga yang iOS bergantung padahttps://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/dependentLibraryOleh itu, apabila membangunkan
uni pemalam asli, anda boleh merujuk terlebih dahulu sama ada terdapat pihak ketiga yang disokong pada hujung jauh untuk mengelakkan konflik simbol kompilasi yang disebabkan oleh import berulang .
Contoh: Contohnya, pemalam memerlukan pustakaIJKMediaFramework Stesen B (kira-kira 160M, yang benar-benar besar, kemudian, semak dahulu sama ada kompilasi awan mempunyai pustaka ini).
didapati sudah wujud. Kemudian, pada masa ini, tidak perlu menyerahkan pustakaIJKMediaFramework anda hanya perlu menyerahkannya dalam HBuilderX's manifest.json Cuma semak VideoPlayer di bawah konfigurasi.
Dengan cara ini, konfigurasimanifest.json daripada HBuilderX akan memberitahu pengkompil awan untuk menambah IJKMediaFramework Datang ke projek.
2. Projek perpustakaan statik DCTestUniPlugin
Apabila membuat perpustakaan statik, anda perlu menyediakan sokongan untuk seni bina perpustakaan statik. Tetapkan di bawahTetapan Binaan -> Seni Bina
dan perhatikan semasa menyusun, PilihMana-mana Peranti iOS
Apakah yang perlu saya lakukan jika pustaka statik memerlukan pustaka pihak ketiga?
Semasa pembangunan, anda pasti akan menghadapi situasi yang memerlukan sokongan perpustakaan pihak ketiga, seperti:AFNetWorking, di sini saya mula-mula menyemak uni jauh Sama ada pelanggan menyokongnya dan didapati perpustakaan statik yang sepadan tidak diperbaiki, maka ia perlu dimuat naik secara tempatan.
Oleh kerana perpustakaan statik buatan sendiri akhirnya akan dimuatkan ke dalam persekitaranAPP, jadi strategi untuk perpustakaan statik buatan sendiri bergantung pada pihak ketiga ialah menambah pihak ketiga perpustakaan .a Fail ditambahkan pada projek utama HBuilder-uniPlugin Kerana perpustakaan statik buatan sendiri perlu mengimport fail pengepala, maka ia berada dalam Heard. Laluan Carian di bawah projek perpustakaan statik DCTestUniPlugin Tambah pengenalan fail pengepala.
HBuilder-uniPlugin Projek utama
DCTestUniPlugin Projek perpustakaan statikLaluan Carian Didengar
Semua fungsi telah dibangunkan, langkah seterusnya ialah lokal Konfigurasi pakej pemalam
Untuk langkah pembungkusan khusus, sila rujuk pautan di atas Struktur direktori fail akhir adalah seperti berikut:
. 1, WSLUniPlugin Ia ialah keseluruhan fail, yang boleh mengandungi android dan ios (di tapak web rasmi, ia ditandakan ios sebaliknya daripada iOS)
2 Fail ios mengandungi semua perpustakaan pihak ketiga yang diperlukan dan perpustakaan statik buatan sendiri.
3. package.json ialah konfigurasi yang berkaitan package.json akan memberitahu kompilasi jauh perpustakaan yang hendak dimuatkan dan lokasi folder. perpustakaan. Sudah tentu Ia juga termasuk beberapa konfigurasi, seperti perpustakaan dinamik yang perlu ditandatangani (walaupun anda boleh membuat perpustakaan dinamik anda sendiri, ia perlu ditandatangani).
{ "name": "WSLUniPlugin",//插件名称 "id": "WSLUniPlugin",//插件ID "version": "1.0", "description": "功能描述",//功能描述这里进行功能描述,添加后会在HBuilder下展示 "_dp_type":"nativeplugin",//原生组件类型 "_dp_nativeplugin":{ "ios": { "plugins": [ { "type": "component",//插件类型,是功能组件(module)还是视图组件(component) "name": "wsl-component",//在nvue文件内的标签tag "class": "WSLComponent" //iOS 原生对象class,继承自 DCUniComponent }, ], "integrateType": "framework",//自制库类型 "hooksClass": "",这里声明 app 生命周期勾子对象,它会同时响应appDelegate 事件 "frameworks": [ "libAFNetworking.a",//uni远端非储备库,需要标注声明 "Masonry.framework",//Masonry 为uni远端储备库,ios 文件夹里不需要再添加,否则编译出现符号重复错误 ], "embedFrameworks": [ "IDLFaceSDK.framework",//动态库 ], "capabilities": { "entitlements": { }, "plists": { } }, "plists": { }, "assets": [ "WSLUniPlugin.xcassets"//图片资源文件,这里填写的是与 ios 文件夹的相对路径,因为 WSLUniPlugin.xcassets 就在 ios 文件里,所以直接写。 ], "privacies": [ ], "embedSwift": false, "deploymentTarget": "8.0",//支持iOS版本 "validArchitectures": [ "arm64"//架构 ], "parameters": { }, "resources": [ "WSLUniPlugin.bundle",//这里是一些资源文件,比如 bundle,这里填写的是与 ios 文件夹的相对路径,因为 WSLUniPlugin.bundle 就在 ios 文件里,所以直接写。 ] } } }
Di atas ialah tetapan konfigurasi asas. Oleh kerana bilangan kompilasi awan uni setiap hari adalah terhad (kira-kira 10 kali), dan saiz pakej mestilah kurang daripada 40M, bilangan lebihan ialah 2 yuan setiap kali, dan lebihan volum ialah 10 yuan setiap 100M. Adakah terdapat sedikit perangkap? Dengan cara ini, kos percubaan dan kesilapan harian adalah sangat tinggi, jadi saya akan merekodkannya di sini.
Disyorkan: "tutorial uniapp"
Atas ialah kandungan terperinci Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!