Google Flutter

Google Flutter: วิธีแก้ไขปัญหา อัพ APK ขึ้น Play Store แล้วเจอปัญหา 64 bit และ 32 bit

เรื่องที่เกี่ยวข้อง - ,

ช่วงนี้ทั้งพล และพวกเราที่ใช้ Flutter เวลาอัพโหลดแอพขึ้น Google Play Store ก็จะเจอคำเตือนเด่นๆ มาว่า

The 64-bit requirement: what it means for developers

Starting August 1, 2019:
All new apps and app updates that include native code are required to provide 64-bit versions in addition to 32-bit versions when publishing to Google Play.
Extension: Google Play will continue to accept 32-bit only updates to existing games that use Unity 5.6.6 or older until August 2021.

Starting August 1, 2021:
Google Play will stop serving apps without 64-bit versions on 64-bit capable devices, meaning they will no longer be available in the Play Store on those devices.
This will include games built with Unity 5.6.6 or older.

ที่มา – https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html

มาจากการที่ Google จะพยายามให้นักพัฒนาแอพหันมารองรับการทำงานแบบ 64 bit แทน 32 bit ครับ

ซึ่งเราก็ไม่มีปัญหาอะไรหรอก… แต่คนใช้ Flutter ตอนนี้โดนกันทุกคนหน่ะสิ!? แก้ยังไงดี?

ปัจจุบัน สถาการณ์ และสาเหตุมาจากอะไร มาดูกัน

ทีม Flutter รับเรื่องแล้ว

ตอนนี้ สมาชิกของทีม Flutter ออกจากรับทราบแล้ว โดยชี้แจงว่าเกิดจากกลไกของ Play Store ที่เริ่มแจ้งเตือนกับแอพที่ build จากขั้นตอนที่แนะนำในเว็บของ Flutter เอง

Flutter build apk warning 64 bit acknowledged

ซึ่งก็ได้แนะนำว่าให้ใช้วิธี build APK แบบ แยก เวอร์ชั่น 64 bit และ 32 bit ไปก่อน

และทีมงานกำลังหาวิธีแก้ไขโดยการอัพเดตเครื่องมือรวมถึงเทมเพลตต่างๆ เพื่อหลีกเลี่ยงปัญหานี้

หวังว่าจะออกมาเร็วๆ ครับ

วิธีแก้ไขไปพลางๆ: แยก APK สำหรับ 32 bit และ 64 bit

หากพวกเราจำเป็นต้องรีบส่งงานที่สร้างด้วย Flutter ขึ้น Play Store จริงๆ ให้ลองทำตามขั้นตอนนี้ไปพลางๆ ก่อนได้ครับ พลลองก็ชัวร์แล้ว ลองทำกันดูครับ

  1. เพิ่มโค้ดด้านล่างนี้ เข้าไปในไฟล์ android/app/build.gradle
android { 
    ...
    splits {
        // Configures multiple APKs based on ABI.
        abi {
            // Enables building multiple APKs per ABI.
            enable true
            // By default all ABIs are included, so use reset() and include to specify that we only
            // want APKs for armeabi-v7a and arm64-v8a.

            // Resets the list of ABIs that Gradle should create APKs for to none.
            reset()

            // Specifies a list of ABIs that Gradle should create APKs for.
            include "armeabi-v7a", "arm64-v8a"

            // Specifies that we do not want to also generate a universal APK that includes all ABIs.
            universalApk false
        }
    }
}

2. รันคำสั่งต่อไปนี้

flutter build apk --release --target-platform=android-arm

เราจะได้ไฟล์ build/app/output/apk/release/app-armabi-v7a-release.apk

3. อัพโหลดไฟล์​ app-armeabi-v7a-release.apk ขี้น Play Store

4. ปรับเพิ่มเลข versionCode

4. รันคำสั่ง

flutter build apk --release --target-platform=android-arm64

5. อัพโหลดไฟล์ app-arm64-v8a-release.apk ไปที่ Play Store

ด้วยวิธีการนี้ จะทำให้ Play Store เลือกจ่ายแอพเวอร์ชั่นที่เหมาะสมกับอุปกรณ์พกพาที่จะดาวน์โหลดแอพเราไปใช้ ทั้งรุ่น 64 bit และ 32 bit ครับ

หนำซ้ำยังไฟล์มีขนาดใกล้เคียงกับของเดิมด้วย ถ้าไปใช้วิธีที่ทำให้ไฟล์เดียวรองรับทั้ง 64 bit และ 32 bit ขนาดไฟล์จะเพิ่มขึ้น 10 กว่าเมกเลยทีเดียว

เอาว่าเป็นทางเลือกแล้วกัน

อันนี้มีอัพเดตในกลุ่มเรียนรู้ Google Flutter Developer ของคอร์สที่พลจัดอบรมเล็กๆ อยู่ด้วย สนใจคลิกดูรายละเอียดได้นะครับ

คอร์สออนไลน์เริ่มต้นสร้าง Mobile App ด้วย Google Flutter

เหมาะผู้เริ่มต้น และนักพัฒนาเว็บ, เข้าใจง่าย, ใช้ได้จริง

สอบถาม หรือติดต่อจัดอบรมโทร 083-071-3373

อ้างอิง – StackOverflow 1, 2

Loading Facebook Comments ...
Menu