Heim > Web-Frontend > uni-app > Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

青灯夜游
Freigeben: 2022-04-06 15:29:32
nach vorne
5507 Leute haben es durchsucht

Wie ist das native uniAPP-Plug-in auf iOS verpackt? Im folgenden Artikel erfahren Sie mehr über den nativen Plug-in-Paketierungsprozess von uniAPP unter iOS. Ich hoffe, er ist hilfreich für Sie!

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Der Anfang des Unsinns: uniAPP wird mit der Cloud-Kompilierungsmethode gepackt, das heißt, der Code des nativen Teils von app unter iOS muss an den Hintergrund übermittelt werden uni für die Kompilierung, was so verstanden werden kann: Es gibt eine Xcode-Laufumgebung auf dem uni-Server. Natürlich sollte die Cloud mit dem Xcode-Befehl vervollständigt werden, wenn HBuilderX die Cloud-Kompilierung durchführt Lokale native Bibliotheken werden komprimiert und in die Cloud gepackt. Anschließend wird das kompilierte ipa-Paket in die lokale Bibliothek heruntergeladen, damit es installiert werden kann.

1. Statische Bibliothekseinstellungen

Laut der von der offiziellen uni-Website heruntergeladenen Demo können Sie sich einfach mit der Projektstruktur vertraut machen.

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

1. HBuilder-uniPlugin-Hauptprojekt

Es kann tatsächlich grob als die gesamte Kompilierungsumgebung der Cloud Xcode während der Cloud-Kompilierung verstanden werden. Sie können sich alle Abhängigkeiten dieses Projekts ansehen.

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Die Anzahl der rein lokalen Abhängigkeiten beträgt bis zu 120+, da uni die Kosten für die Cloud-Kompilierung berücksichtigt, werden die Kompilierungsressourcen stark beansprucht Es wurde die Remote-Speichermethode für Bibliotheken von Drittanbietern übernommen, die auch im Hintergrund von uni erlernt werden kann.

Die Versionsbeschreibung der Drittanbieter-Bibliothek, auf die sich die iOS-Seite verlässt

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

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Also in Bearbeitung uni native Plug-in-Entwicklung Zu diesem Zeitpunkt können Sie zunächst prüfen, ob das Remote-Ende über einen unterstützten Drittanbieter verfügt, um Kompilierungssymbolkonflikte durch wiederholte Importe zu vermeiden.

Beispiel: Wenn das Plug-in beispielsweise die IJKMediaFramework-Bibliothek von Station B erfordert (ca. 160 MB, was wirklich groß ist), prüfen Sie zunächst, ob die Cloud-Kompilierung über diese Bibliothek verfügt,

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

und finden Sie sie Es ist bereits vorhanden. Zu diesem Zeitpunkt ist es nicht erforderlich, die lokale IJKMediaFramework-Bibliothek einzureichen. Sie müssen lediglich VideoPlayer unter der manifest.json-Konfiguration von HBuilderX überprüfen.

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Auf diese Weise weist die Konfiguration von manifest.json von HBuilderX den Cloud-Compiler an, IJKMediaFramework zum Projekt hinzuzufügen.

2. Statisches DCTestUniPlugin-Bibliotheksprojekt

Beim Erstellen einer statischen Bibliothek müssen Sie die Unterstützung für die statische Bibliotheksarchitektur einrichten.

Se -up unter build Setting -& gt; -Parteibibliothek?

Während der Entwicklung werden Sie auf jeden Fall auf Situationen stoßen, die eine Bibliotheksunterstützung von Drittanbietern erfordern, wie zum Beispiel: Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)AFNetWorking

Hier haben wir zunächst überprüft, ob

uni remote unterstützt wird, und festgestellt, dass die entsprechende statische Bibliothek nicht verbessert wurde . Also muss es nur lokal hochgeladen werden.

Da die selbst erstellte statische Bibliothek schließlich in die

APPLassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)-Umgebung geladen wird, besteht die Strategie für selbst erstellte statische Bibliotheken, die sich auf Dritte verlassen, darin, die Datei

.a

der Drittanbieterbibliothek zur hinzuzufügen Da die selbst erstellte statische Bibliothek die Header-Datei importieren muss, fügen Sie die Header-Datei zu den „Heard Search Paths“ unter dem statischen Bibliotheksprojekt „DCTestUniPlugin“ hinzu. HBuilder-uniPlugin

Hauptprojekt

DCTestUniPlugin

Statisches Bibliotheksprojekt Heard Search Paths

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

Zweitens konfigurieren Sie das native iOS-Plug-in package.json

Alle Funktionen wurden entwickelt, der nächste Schritt ist lokale Plug-in-Paketkonfiguration

Spezifische Verpackungsschritte finden Sie unter dem Link oben und das endgültige Dateiverzeichnis Die Struktur ist wie folgt:

Lassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses)

1, WSLUniPlugin ist eine Gesamtdatei, die android und ios enthalten kann (die offizielle Website trägt die Bezeichnung ios statt ). iOS)

2, ios in der Datei Enthält alle erforderlichen Bibliotheken von Drittanbietern und selbst erstellte statische Bibliotheken.

3, package.json sind verwandte Konfigurationen, die der Remote-Kompilierung mitteilen, welche Bibliotheken geladen werden und welche Ordnerspeicherorte die Bibliotheken enthalten welche dynamischen Bibliotheken signiert werden müssen (Sie können zwar Ihre eigene dynamische Bibliothek erstellen, diese muss jedoch signiert werden).

3. package.json-Verzeichnis

{
    "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 文件里,所以直接写。
            ]
        }
    }
}
Nach dem Login kopieren
Das Obige sind die grundlegenden Konfigurationseinstellungen. Da die Anzahl der Uni-Cloud-Kompilierungen pro Tag begrenzt ist (etwa das Zehnfache) und die Paketgröße weniger als 40 Millionen betragen muss, beträgt die überschüssige Anzahl 2 Yuan pro Zeit und das überschüssige Volumen 10 Yuan pro 100 Millionen. Gibt es eine kleine Gefahr? Da die Kosten für das tägliche Ausprobieren extrem hoch sind, werde ich es hier aufzeichnen.

Empfohlen: „

uniapp-Tutorial

Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie das native uniAPP-Plug-in auf iOS verpackt ist. (Teilung des Verpackungsprozesses). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage