[Pelajaran Malam Tadi] MediaPipe
Emang karena saya orang visual atau lebih suka liat video tutorial dari pada baca tutorial textual sehingga dalam seminggu ini masih belum paham mengenai MediaPipe atau sebenernya saya yang malas baca …ENTAH LAH.
Yang jelas malam tadi akhirnya menemukan cara untuk build MediaPipe yang independent nggak tergantung sama Tulsi.proj yang ada di github MediaPipe.
Walapun sebenernya perjalanan masih agak panjang untuk membangun Liveness framework. But its Oke …paling tidak ada progress.
Oke dari pada lama-lama mending kita bahas bagaimana saya mengimplementasikan MediaPipe pada project saya.
- Pertama temen2 harus tau dulu apa itu bazel dan rules nya (bisa dibaca https://bazel.build & https://github.com/bazelbuild/rules_apple)
- Setelah mengerti kita bisa lanjut ke step selanjutnya yaitu membuat project baru dengan Xcode (saya sarankan pake xcode 12 jangan yang 13 karena Info.plist nya berbeda)
- Setelah itu sesuai dengan contoh nya pada HelloWorld di MediaPipe, copy file2 yang dibutuhkan (bisa dibaca https://google.github.io/mediapipe/getting_started/hello_world_ios.html)
- Pindahkan file2 yang dibutuhkan ke dalam folder MediaPipe (contoh: MediaPipe/mediapipe/example/ios/Liveness)
- Buat BUILD file untuk mendeklarasikan ios_application kita
- Setelah itu kita buat .tulsiproj dengan menggunakan Tulsi (bisa dibaca di doc nya https://tulsi.bazel.build) dengan cara masukan WORKSPACE MediaPipe dan BUILD yang sudah kita buat tadi
Selanjutnya pada tab config buat config baru
Selanjutnya klik save dan generate, Setelah proses generate akan tampil project kita pada xcode.
Proses pertama selesai, selanjutnya tinggal ngoding nya, dengan BUILD file yang sudah include
deps = ["//mediapipe/objc:mediapipe_framework_ios","//mediapipe/objc:mediapipe_input_sources_ios","//mediapipe/objc:mediapipe_layer_renderer",]
Kita bisa import
#import "mediapipe/objc/MPPCameraInputSource.h"
Dan autocompletion nya jalan dengan baik (Kita bisa ngoding di Xcode dengan nyaman)
Untuk step selanjutnya tinggal ngoding dan ikuti tutorial di MediaPipe saja, untuk lebih jelasnya.
Usefull Sources
Issue
- Bazel version harus 3.7.2 sesuai MediaPipe
- Kalo terjadi issue is Numpy installed biasanya ada error di .mobileprovision
- Untuk Apple M1 chip simulator nggak bekerja di Bazel 3.7.2 dari info support di Bazel 4.2.1 atau 5 keatas (PreReleased)
- Untuk error CFBundlePackageType biasanya terjadi di xcode 13.1 karena $(PRODUCT_BUNDLE_PACKAGE_TYPE) nggak ketemu kalo terjadi isi aja dengan string APPL seperti di website Apple