Flutter: อัปเกรดรหัสเวอร์ชันสำหรับ play store


108

ฉันได้เผยแพร่แอปพลิเคชันบน play store พร้อมกับกระพือปีกตอนนี้ฉันต้องการอัปโหลดแอปพลิเคชันเวอร์ชันใหม่ ฉันกำลังพยายามเปลี่ยนรหัสเวอร์ชันด้วย:

flutter build apk --build-name = 1.0.2 --build-number = 3

หรือเปลี่ยน local.properties เช่นนี้

 flutter.versionName=2.0.0
 flutter.versionCode=2
 flutter.buildMode=release

แต่ทุกครั้งที่ฉันได้รับข้อผิดพลาดใน playstore

คุณต้องใช้รหัสเวอร์ชันอื่นสำหรับ APK หรือ Android App Bundle เนื่องจากรหัส 1 ถูกกำหนดให้กับ APK หรือ Android App Bundle อื่นแล้ว

คำตอบ:


239

เวอร์ชันในไฟล์ pubspec.yaml

อัปเดตversion:A.B.C+Xในpubspec.yaml.

สำหรับ Android:

A.B.CแสดงถึงversionNameเช่น1.0.0.

X(หมายเลขหลังจากที่+) หมายถึงversionCodeเช่น1, 2, 3ฯลฯ

อย่าลืมที่จะดำเนินการflutter packages get, flutter buildหรือflutter runหลังจากขั้นตอนนี้เพราะ: เมื่อคุณเรียกflutter packages getหลังจากการปรับปรุงนี้versionในpubspecแฟ้มversionNameและversionCodeในlocal.propertiesที่มีการปรับปรุงซึ่งจะเลือกในภายหลังขึ้นมาในbuild.gradle (app)เมื่อคุณสร้างโครงการกระพือของคุณโดยใช้flutter buildหรือflutter runซึ่งเป็นผู้รับผิดชอบสำหรับการตั้งค่าversionNameและversionCodeสำหรับ apk

สำหรับ iOS:

A.B.CแสดงถึงCFBundleShortVersionStringเช่น1.0.0.

X(หมายเลขหลังจากที่+) หมายถึงCFBundleVersionเช่น1, 2, 3ฯลฯ

อย่าลืมที่จะดำเนินการflutter packages get, flutter buildหรือflutter runหลังจากขั้นตอนนี้


5
นี่คือคำตอบที่ถูกต้องและควรเป็นคำตอบที่ยอมรับได้
Daniel Allen

16
ขอขอบคุณ! สำหรับ Android ประเด็นสำคัญคือการรันflutter runหลังจากเปลี่ยน pubspec.yaml มิฉะนั้น android studio จะสร้าง apk / aab ด้วยรหัสเวอร์ชันเก่าตาม local.properties
Dika

4
ดังนั้นในเวลาต่อมาแอปจะมีลักษณะเหมือนกัน5.1.3+201ใช่ไหม
Chuck K

สำหรับทุกรุ่นจะต้องมีการเปลี่ยนรหัสเวอร์ชันด้วย ตัวอย่างเช่นคุณไม่สามารถเปลี่ยนชื่อเวอร์ชันเพียงอย่างเดียวจาก 1.0.0 + 1 เป็น 1.1.0 + 1 จะต้องเปลี่ยนเป็น 1.1.0 + 2
akfaisel

@ChuckK ถูกต้อง.
Rohan Taneja

141

คิดเรื่องนี้ออก เอกสารไม่ตรงไปตรงมา

ในpubspec.yamlการเปลี่ยนแปลงเวอร์ชันเช่นนี้

version: 1.0.2+2

โดยที่ของคือVER_NAME +VER_CODE


17
ฉันไม่สามารถเชื่อนี้ไม่ได้ระบุไว้ในเอกสาร delpoyment อย่างเป็นทางการ มันน่าผิดหวังมากที่พบคำตอบที่นี่ ...
Tokenyet

8
กลยุทธ์ที่นี่ถูกต้อง แต่จำนวนเต็มหลัง + คือ versionCode ไม่ใช่ versionName
Daniel Allen

@Tokenyet ตอนนี้ :)
Rohan Taneja

ในฐานะที่เป็น @DanielAllen กล่าวก่อน: versionNameคือก่อน+และversionCodeคือหลังจาก+
อเล็กซ์ Semeniuk

2
1.0.2 คือ versionName และ +2 คือ versionCode ขอบคุณคุณ! สิ่งนี้ช่วยฉันได้มาก!
Renan Coelho

18

วิธีการแก้:

ภายใน pubspec.yaml เพิ่มสิ่งนี้ (อาจอยู่หลังคำอธิบายการเยื้องเดียวกันกับคำอธิบายชื่อ ฯลฯ ... ):

version: 2.0.0+2

จากนั้นให้แพ็คเกจเข้าไปในไดเร็กทอรีท้องถิ่นที่กระพือปีก (อย่าลืมทำสิ่งนี้)

คำอธิบาย:

ทุกอย่างก่อนบวกคือชื่อเวอร์ชันและหลังคือรหัสเวอร์ชัน ดังนั้นที่นี่รหัสเวอร์ชันคือ 2 และชื่อคือ 2.0.0 เมื่อใดก็ตามที่คุณอัปเดตแอปพลิเคชัน Flutter อย่าลืมเปลี่ยนรหัสเวอร์ชันอย่างบังคับ!

ข้อมูลเพิ่มเติม:

เมื่อใดก็ตามที่มีการสร้างแอพ android ให้ build.gradle ภายใน android / app / ค้นหารหัสเวอร์ชันและชื่อ โดยปกติจะอยู่ใน local.properties ซึ่งจะเปลี่ยนแปลงทุกครั้งที่คุณเปลี่ยน flutter pubspec.yaml


6

การอัปเดตหมายเลขเวอร์ชันของแอป เวอร์ชันเริ่มต้นของแอปคือ 1.0.0 ในการอัปเดตให้ไปที่ไฟล์ pubspec.yaml และอัปเดตบรรทัดต่อไปนี้:

เวอร์ชัน: 1.0.0 + 1

หมายเลขเวอร์ชันคือตัวเลขสามตัวที่คั่นด้วยจุดเช่น 1.0.0 ในตัวอย่างด้านบนตามด้วยหมายเลขรุ่นที่เป็นทางเลือกเช่น 1 ในตัวอย่างด้านบนคั่นด้วย +

ทั้งเวอร์ชันและหมายเลขบิลด์อาจถูกแทนที่ในบิลด์ของ Flutter โดยระบุ - build-name และ --build-number ตามลำดับ

ใน Android จะใช้ชื่อรุ่นเป็น versionName ในขณะที่หมายเลขรุ่นที่ใช้เป็น versionCode สำหรับข้อมูลเพิ่มเติมโปรดดูเวอร์ชันแอปของคุณในเอกสาร Android


นี่คือลิงค์ไปยังเอกสารการปรับใช้อย่างเป็นทางการ: การอัปเดตหมายเลขเวอร์ชันของแอป
Ahmad Payan

6

หมายเลขเวอร์ชันเริ่มต้นของแอปคือ 1.0.0 ในการอัปเดตให้ไปที่pubspec.yamlไฟล์และอัปเดตบรรทัดต่อไปนี้:

version: 1.0.0+1

เพียงแค่เปลี่ยนเวอร์ชันนั้นเป็น (ตามความต้องการของคุณ)

version: 1.0.1+2

หมายเลขเวอร์ชันคือตัวเลขสามตัวที่คั่นด้วยจุดเช่น 1.0.0 ในตัวอย่างด้านบนตามด้วยหมายเลขรุ่นที่เป็นทางเลือกเช่น 1 ในตัวอย่างด้านบนคั่นด้วย +

ทั้งเวอร์ชันและหมายเลขบิลด์อาจถูกแทนที่ในบิลด์ของ Flutter โดยระบุ - build-name และ --build-number ตามลำดับ

ใน Android จะใช้ชื่อรุ่นเป็น versionName ในขณะที่หมายเลขรุ่นที่ใช้เป็น versionCode สำหรับข้อมูลเพิ่มเติมโปรดดูเวอร์ชันแอปของคุณ

หลังจากอัปเดตหมายเลขเวอร์ชันในpubspec fileแล้วให้เรียกใช้flutter pubget จากด้านบนสุดของโปรเจ็กต์หรือใช้ปุ่ม Pub get ใน IDE ของคุณ สิ่งนี้จะอัปเดตversionNameและversionCodeในlocal.propertiesไฟล์ซึ่งจะอัปเดตในbuild.gradleไฟล์ในภายหลังเมื่อคุณสร้างแอปพลิเคชัน Flutter ใหม่


3

สำหรับ Android

"XYZ + n" ที่นี่ "xyz" หมายถึงชื่อเวอร์ชั่นและ "n" หมายถึงหมายเลขรุ่น การเปลี่ยนแปลงต่อไปนี้จะทำ -

  1. ในpubspec.yamlการเปลี่ยนหมายเลขเวอร์ชันของคุณ
  2. อัปเดตของคุณlocal.propertiesโดยเรียกใช้flutter pub getคำสั่ง
  3. ตอนนี้สร้าง apk หรือ app Bundle ของคุณโดยการเรียกใช้flutter build apkหรือflutter build appbundleคำสั่ง

1

อย่างแรกเปลี่ยนรุ่น flutter ใน pubspec.yaml ตัวอย่าง `เวอร์ชัน 1.0.3 + 4

ในกรณีของ Android ไปที่ local.properties กว่าเปลี่ยนชื่อรุ่นและรหัสเหมือนกันเช่นรหัสและชื่อรุ่นกระพือ

ในกรณีของ Ios ให้ไปที่ created.xcconfig กว่า chnage FLUTTER_BUILD_NAME = 1.0.3 FLUTTER_BUILD_NUMBER = 4`


ไม่จำเป็นต้องเปลี่ยนใน local.properties และ created.config
Marcel Hofgesang


1

ตรวจสอบ

android{
//....
  defaultConfig {
  //....
  version code:2
  }
}

บน android> app> Build.gradle จากโฟลเดอร์รูทของโปรเจ็กต์ของคุณ



1

คุณยังสามารถทำสิ่งต่างๆของคุณเองได้อย่างสมบูรณ์โดยการเขียนทับใน android / app / build.gradle:

  • def flutterVersionCode
  • def flutterVersionName

กับคุณค่าของคุณเอง


0
  • ใน pubspec.yml version: 1.0.0+1
  • เปลี่ยนไป version: 1.0.0+2
  • flutter build ios --release-name --release-number จะอัปเดตเวอร์ชันใน ios
  • flutter pub get && flutter run จะอัปเดตเวอร์ชันสำหรับ Android (android / local.properties)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.