Rumah  >  Artikel  >  hujung hadapan web  >  Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

青灯夜游
青灯夜游ke hadapan
2022-03-17 11:41:165452semak imbas

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!

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

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

Menurut

Demo yang dimuat turun dari laman web rasmi uni, anda boleh membiasakan diri dengan struktur projek.

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

1. Projek utama HBuilder-uniPlugin

Ia sebenarnya boleh difahami secara kasar sebagai kompilasi awan masa

Seluruh persekitaran kompilasi Xcode, mengapa anda berkata demikian? Anda boleh melihat semua kebergantungan projek ini.

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

Kebergantungan tempatan semata-mata adalah sebanyak

120, 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 pada

https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/dependentLibrary

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

Oleh 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 pustaka

IJKMediaFramework Stesen B (kira-kira 160M, yang benar-benar besar, kemudian, semak dahulu sama ada kompilasi awan mempunyai pustaka ini).

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

didapati sudah wujud. Kemudian, pada masa ini, tidak perlu menyerahkan pustaka

IJKMediaFramework anda hanya perlu menyerahkannya dalam HBuilderX's manifest.json Cuma semak VideoPlayer di bawah konfigurasi.

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

Dengan cara ini, konfigurasi

manifest.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 bawah

Tetapan Binaan -> Seni Bina

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

dan perhatikan semasa menyusun, Pilih

Mana-mana Peranti iOS

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

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 persekitaran

APP, 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

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

DCTestUniPlugin Projek perpustakaan statikLaluan Carian Didengar

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

2. Konfigurasikan pemalam asli iOS package.json

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:

Mari kita bincangkan tentang cara pemalam asli uniAPP pada iOS dibungkus? (Perkongsian proses pembungkusan)

. 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).

3. Direktori package.json

{
    "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!

Kenyataan:
Artikel ini dikembalikan pada:juejin.cn. Jika ada pelanggaran, sila hubungi admin@php.cn Padam