เวอร์ชัน / หมายเลขบิลด์ของแอป iOS ใดที่ต้องเพิ่มขึ้นเมื่อเปิดตัว App Store


107

ฟิลด์เวอร์ชัน / สร้างสำหรับแอป iOS ประกอบด้วย:

  • "เวอร์ชัน" CFBundleShortVersionString (String - iOS, OS X) ระบุหมายเลขเวอร์ชันที่วางจำหน่ายของบันเดิลซึ่งระบุการทำซ้ำของแอป หมายเลขเวอร์ชันเผยแพร่คือสตริงที่ประกอบด้วยจำนวนเต็มที่คั่นด้วยจุดสามจุด

  • CFBundleVersion "Build" (String - iOS, OS X) ระบุหมายเลขเวอร์ชันบิวด์ของบันเดิลซึ่งระบุการทำซ้ำ (เปิดตัวหรือยังไม่ได้เผยแพร่) ของบันเดิล หมายเลขเวอร์ชันบิวด์ควรเป็นสตริงที่ประกอบด้วยจำนวนเต็มที่ไม่เป็นลบสามจำนวนที่คั่นด้วยจุดโดยจำนวนเต็มแรกมีค่ามากกว่าศูนย์ สตริงควรมีเฉพาะอักขระตัวเลข (0-9) และจุด (.) เลขศูนย์นำหน้าจะถูกตัดทอนจากแต่ละจำนวนเต็มและจะถูกละเว้น (นั่นคือ 1.02.3 เทียบเท่ากับ 1.2.3) คีย์นี้ไม่สามารถแปลเป็นภาษาท้องถิ่นได้

  • "iTunes Connect Version Number" : หมายเลขเวอร์ชันที่คุณระบุเมื่อสร้างแอปเวอร์ชันใหม่บน iTunes Connect

คำถามของฉันคือ:

ต้องเพิ่มหมายเลขเวอร์ชัน / บิวด์ใดเมื่อมีการอัปโหลดแอปเวอร์ชันใหม่ไปยัง iTunes Connect และ / หรือเผยแพร่ไปยัง App Store

"เวอร์ชัน" CFBundleShortVersionStringหรือ"รุ่น" CFBundleVersionจะยังคงเหมือนเดิมระหว่างการอัปเดตแอปได้หรือไม่

คะแนนพิเศษสำหรับแหล่งที่มาของ Apple หรือข้อความแสดงข้อผิดพลาดที่แน่นอน iTunesConnect จะปรากฏขึ้นเมื่ออัปโหลดเวอร์ชัน / หมายเลขรุ่นที่ไม่ถูกต้อง


หมายเหตุ Android / Google Play:

การสนทนาที่กระตุ้นให้เกิดคำถามนี้คือ "เวอร์ชัน" สาธารณะของแอป Android ใน Google Play Store ไม่จำเป็นต้องเพิ่มขึ้นและไม่มีการตรวจสอบความถูกต้อง android:versionNameสามารถยังคงเหมือนเดิมระหว่างรุ่นอัพเกรดปรับลดหรือเป็นสตริงสุ่มใด ๆ มากกว่าสิ่งที่ดูเหมือนจะเป็นที่ถูกต้อง "หมายเลขรุ่น"

android:versionName - ค่าสตริงที่แสดงถึงเวอร์ชันของโค้ดแอปพลิเคชันตามที่ควรจะแสดงให้ผู้ใช้เห็น

ค่านี้เป็นสตริงเพื่อให้คุณสามารถอธิบายเวอร์ชันของแอปพลิเคชันเป็น<major>.<minor>.<point>สตริงหรือเป็นตัวระบุเวอร์ชันสัมบูรณ์หรือสัมพัทธ์ประเภทอื่น ๆ

ความแตกต่างระหว่าง versionName และ versionNumber ใน Android

ในขณะที่android:versionCodeบังคับให้เป็นจำนวนเต็มเพิ่มขึ้นเมื่อปล่อย


เอกสารของ Apple

ดังที่ระบุไว้ในคำตอบที่เพิ่งได้รับการยอมรับ Apple ได้เผยแพร่หมายเหตุทางเทคนิคเมื่อเร็ว ๆ นี้ซึ่งให้รายละเอียดเกี่ยวกับรุ่นและโครงร่างหมายเลขรุ่น:

หมายเหตุทางเทคนิคของ Apple TN2420 - หมายเลขเวอร์ชันและหมายเลขรุ่น


คำตอบโดยละเอียดพร้อมภาพหน้าจอ: stackoverflow.com/a/31921249/936957
Yunus Nedim Mehel

คำตอบ:


115

หมายเหตุทางเทคนิคของ Apple TN2420 หมายเลขเวอร์ชันและหมายเลขรุ่น

สรุป:

  • คู่ ( Version, Build number) ต้องไม่ซ้ำกัน
    • ลำดับถูกต้อง: (1.0.1, 12) -> (1.0.1, 13) -> (1.0.2, 13) -> (1.0.2, 14) ...
  • Version( CFBundleShortVersionString ) ต้องเรียงตามลำดับจากน้อยไปมาก
  • Build number( CFBundleVersion ) ต้องเรียงตามลำดับจากน้อยไปมาก

รายการตรวจสอบหมายเลขเวอร์ชันและหมายเลขรุ่น

นี่คือบางสิ่งที่คุณสามารถตรวจสอบได้เมื่อส่งบิลด์ใหม่ไปยัง App Store การตรวจสอบให้แน่ใจว่าคุณได้ตั้งค่าหมายเลขเวอร์ชันและหมายเลขรุ่นอย่างถูกต้องจะช่วยคุณได้โดยหลีกเลี่ยงการที่แอปของคุณถูกปฏิเสธโดยอัตโนมัติเนื่องจากมีการกำหนดค่าไม่ถูกต้อง

  1. สำหรับแอปเวอร์ชันใหม่แต่ละเวอร์ชันคุณต้องสร้างหมายเลขเวอร์ชันใหม่ ตัวเลขนี้ควรเป็นค่าที่มากกว่าหมายเลขเวอร์ชันล่าสุดที่คุณใช้ แม้ว่าคุณจะมีหลายรุ่นสำหรับแอปรุ่นใดรุ่นหนึ่ง แต่คุณต้องใช้หมายเลขเวอร์ชันใหม่เพียงหมายเลขเดียวสำหรับแอปใหม่แต่ละรุ่น
  2. คุณไม่สามารถใช้หมายเลขเวอร์ชันซ้ำได้
  3. สำหรับบิลด์ใหม่ทุกครั้งที่คุณส่งคุณจะต้องสร้างหมายเลขบิวด์ใหม่ที่มีค่ามากกว่าหมายเลขบิลด์ล่าสุดที่คุณใช้ (สำหรับเวอร์ชันเดียวกันนั้น)
  4. คุณสามารถใช้หมายเลขบิลด์ซ้ำในรถไฟรุ่นต่างๆได้ แต่คุณไม่สามารถนำหมายเลขบิลด์กลับมาใช้ซ้ำได้ในรถไฟขบวนเดียวกัน สำหรับแอพ macOS คุณไม่สามารถนำหมายเลขบิวด์กลับมาใช้ซ้ำในรถไฟรุ่นใดก็ได้

ตามรายการตรวจสอบ(Version, Build Number)ลำดับต่อไปนี้ก็ใช้ได้เช่นกัน

  • กรณี: นำกลับมาใช้ใหม่Build Numberในรถไฟต่าง ๆ (หมายเหตุ: ไม่ใช่ แอป macOS)

    (1.0.0, 1) -> (1.0.0, 2) -> ... -> (1.0.0, 11) -> ( 1.0.1 , 1 ) -> (1.0.1, 2)


ฉันสับสน. เงื่อนไขประการหนึ่งคือ "คุณไม่สามารถใช้หมายเลขเวอร์ชันซ้ำได้" แต่ในตัวอย่างสุดท้ายหมายเลขเวอร์ชันจะยังคงเหมือนเดิมในขณะที่หมายเลขรุ่นเพิ่มขึ้น ฉันตีความบางอย่างผิดหรือเปล่า?
Emil

@ เอมิลฉันคิดว่ามันไม่สามารถใช้คู่ (Version, Build Number) ซ้ำได้
AechoLiu

6
หมายเลขเวอร์ชัน @EmilParikh สามารถอัปโหลดไปยัง Apple ได้หลายครั้งก่อนวางจำหน่ายโดยแต่ละหมายเลขจะมีหมายเลขรุ่นที่ไม่ซ้ำกัน แต่เมื่อได้รับการเผยแพร่แล้วคุณจะไม่สามารถใช้หมายเลขเวอร์ชันนั้นซ้ำได้
pkamb

1
TN2420 ว่า "หมายเลขรุ่นและหมายเลขสร้างอาจจะมีถึงสามส่วนแยกจากกันโดยระยะเวลา" จากนั้นจะให้ต่อไปนี้ที่ผิดกฎหมายเช่น1.10000.1.5 อย่างไรก็ตามดูเหมือนว่าแอปจำนวนมากรวมถึง chrome จะใช้หมายเลขเวอร์ชันที่มีส่วนประกอบ 4 อย่าง (เช่น68.0.3440.83 ) ฉันเดาว่าสิ่งนี้สามารถอธิบายได้จากข้อเท็จจริงที่ว่าเพจ TN2420 ระบุว่า " สำคัญ: เอกสารนี้ไม่ได้รับการอัปเดตอีกต่อไป " อย่างไรก็ตามฉันไม่พบเอกสารที่อัปเดตซึ่งกำหนดกฎใหม่ มีใครบ้างงง?
catanman

@catanman ฉันชอบเวอร์ชันความหมายนี้ ให้เวอร์ชั่นประกอบ(major, minor, patch)อย่างมีมารยาท และฉันเคยใช้ 4 องค์ประกอบมาก่อน แต่ App store ไม่ยอมรับรูปแบบนั้นด้วยส่วนประกอบ 4 อย่าง
AechoLiu

38

CFBundleShortVersionStringควรจะตรงกับหมายเลขรุ่นที่คุณให้ iTunes Connect นอกจากนี้ยังเป็นหมายเลขเวอร์ชันที่ปรากฏขึ้นเมื่อผู้ใช้ดูแอปของคุณใน App Store

หมายเลขเวอร์ชันจะแสดงในร้านค้าและเวอร์ชันนั้นควรตรงกับหมายเลขเวอร์ชันที่คุณป้อนในภายหลังใน iTunes Connect

ที่มา

CFBundleVersionจะไม่ปรากฏใน App Store แต่จะถูกใช้โดย iTunes เพื่อตรวจสอบเมื่อ App ของคุณได้รับการปรับปรุง

หากคุณอัปเดตสตริงบิวด์ตามที่อธิบายไว้ใน“ การตั้งค่าหมายเลขเวอร์ชันและสตริงบิวด์” iTunes จะรับรู้ว่าสตริงบิวด์มีการเปลี่ยนแปลงและซิงค์แพ็กเกจ iOS App Store ใหม่อย่างถูกต้องเพื่อทดสอบอุปกรณ์

ที่มา

ตอบคำถามของคุณโดยเฉพาะมากขึ้น ...

ต้องเพิ่มหมายเลขเวอร์ชัน / บิวด์ใดเมื่ออัปโหลดแอปเวอร์ชันใหม่ไปยัง App Store

ทั้งสอง. รายการหนึ่งจะปรากฏใน App Store ส่วนอีกรายการหนึ่งใช้โดย iTunes เพื่ออัปเดตแอป

CFBundleShortVersionString หรือ CFBundleVersion จะยังคงเหมือนเดิมระหว่างการอัปเดตแอปได้หรือไม่

ไม่ (คำถามเกี่ยวกับเมตากรณีการใช้งานจะอยู่ที่นี่อย่างไรหากคุณแก้ไขเพย์โหลดไม่ว่าด้วยวิธีใดการสร้างจะแตกต่างกันและผู้ใช้จะต้องการทราบข้อมูลนี้) หากคุณลองคุณจะเห็นข้อความแสดงข้อผิดพลาดดังต่อไปนี้:

ข้อความแสดงข้อผิดพลาด

หรือเปรียบเทียบกับหมายเลขก่อนหน้าเพื่อให้แน่ใจว่ามีการอัปโหลดจำนวนที่มากกว่าตัวเลขด้วยแอปเวอร์ชันใหม่

ใช่. ใช้มาตรฐานsemver.org

CFBundleShortVersionString และ CFBundleVersion มีตัวเลขเปรียบเทียบกันหรือไม่?

ไม่


2
ใช่ฉันรู้ว่าตัวเลขสองตัวนั้นใช้อย่างไร คำถามคือทั้งคู่จำเป็นต้องเพิ่มขึ้นเมื่อปล่อยแอปเวอร์ชันใหม่หรือไม่?
pkamb

2
ใช่หากคุณพยายามดันแอปเข้า App Store โดยไม่อัปเดตทั้งสองอย่างคุณจะเห็นข้อความแสดงข้อผิดพลาดเช่นstackoverflow.com/questions/19367893/…
Andy

ขอบคุณการแก้ไขที่ยอดเยี่ยม โดยเฉพาะอย่างยิ่งสำหรับลิงค์นั้น เครื่องมือตรวจสอบของผู้จัดงานกำลังแสดงข้อผิดพลาด "ต้องมีเวอร์ชันที่สูงกว่า" สำหรับทั้ง CFBundleVersion และ CFBundleShortVersionString
pkamb

1
+1 สำหรับลิงก์ SemVer ... ให้หมายเลขเวอร์ชัน MAJOR.MINOR.PATCH เพิ่มเวอร์ชัน: MAJOR เมื่อคุณทำการเปลี่ยนแปลง API ที่เข้ากันไม่ได้เวอร์ชัน MINOR เมื่อคุณเพิ่มฟังก์ชันในลักษณะที่เข้ากันได้แบบย้อนหลังและเวอร์ชัน PATCH เมื่อคุณทำการย้อนกลับ แก้ไขข้อบกพร่องที่เข้ากันได้
jeet.chanchawat

เกี่ยวกับเรื่องนี้กรณีการใช้งานจะเป็นอย่างไร? หากคุณได้แก้ไขน้ำหนักบรรทุกในทางใด ๆ ที่สร้างจะแตกต่างกันและผู้ใช้จะต้องการทราบเกี่ยวกับเรื่องนี้ กรณีการใช้งานของฉันคือแอปของฉันได้รับการตรวจสอบโดย Apple สำเร็จ แต่ไม่เคยเปิดตัวมาก่อนใน App Store ผมพบข้อผิดพลาดและผมต้องการที่จะแก้ไขข้อผิดพลาดมัน - CFBundleShortVersionStringโดยไม่ต้องเปลี่ยน เป็นไปได้หรือไม่ ฉันต้องการปฏิเสธแอปของฉันเอง
ทดสอบ

31

CFBundleShortVersionStringคือ "ชื่อ" สาธารณะของเวอร์ชัน (ตัวอย่าง: "2.5" หรือ "3.8.1") คุณต้องเพิ่มขึ้นในแต่ละปล่อย

CFBundleVersionเป็นส่วนตัวสร้างจำนวน ไม่มีให้เห็นใน AppStore คุณต้องเพิ่มในการอัปโหลดแต่ละครั้ง หมายความว่าหากคุณเคยปฏิเสธไบนารีก่อนที่จะออนไลน์และคุณต้องการอัปโหลดไบนารีใหม่ไบนารีจะมีCFBundleShortVersionStringเหมือนกันแต่ต้องมีCFBundleVersion ที่สูงกว่า(ตัวอย่าง: สาธารณะ "2.5", ส่วนตัว "2.5" แล้ว ปฏิเสธไบนารีและอัปโหลดส่วนตัว "2.5.1" อีกครั้ง)

แก้ไขเมื่อ 16 พ.ย. 2559:

/ ! \ คุณสมบัติCFBundleVersionยังใช้ (พร้อมกับCFBundleName ) ในUser-Agentส่วนหัวที่ส่งโดยNSURLConnectionในโค้ดของคุณ

ตัวอย่าง: หากCFBundleNameคือMyAppและCFBundleVersionคือ 2.21 แบบสอบถาม HTTP แบบเป็นโปรแกรมใด ๆ ที่ส่งโดยตรงจากรหัสของคุณโดยใช้NSURLConnectionจะฝังส่วนหัว:

User-Agent: MyApp/2.21 CFNetwork/... Darwin/...

(ใช้ไม่ได้กับคำขอที่ออกโดย UIWebView โดยอัตโนมัติ)


2
ความแตกต่างอย่างมากระหว่างข้อกำหนดสำหรับการอัปโหลด / การเผยแพร่
pkamb

@gabriel ฉันพยายามตั้งหมายเลขบิลด์เป็น XX-rc2 แต่ตัวตรวจสอบออแกไนเซอร์ไม่อนุญาตให้ฉันตั้งค่าอะไรที่แตกต่างจาก XYZ โดยที่ X, Y และ Z เป็นจำนวนเต็ม: S มันจะดีมากที่มีหมายเลขบิวด์ -rc2 คุณเคยส่งรุ่นเดียวกับมันได้หรือไม่?
Néstor

1
@nestor คุณพูดถูกฉันคิดผิด อนุญาตเฉพาะตัวเลขเท่านั้น ให้ฉันแก้ไขคำตอบของฉัน
Gabriel

@gabriel ผมใช้สคริปต์เพื่อแยกX.X-rc2ไปX.X.2สำหรับระบบ CI เพื่อสร้างbuildNumberสำหรับการอัปโหลดไปยัง iTunesConnect
AechoLiu

5

CFBundleVersion และ CFBundleShortVersionString ต้องมากกว่าหมายเลขเวอร์ชันล่าสุดของแอป เป็นแนวทางปฏิบัติที่ดีที่จะทำให้พวกเขาเหมือนเดิม คุณจะพบได้ใน -info.plist ของคุณ

เมื่อคุณพยายามตรวจสอบความถูกต้องของแอปในตัวจัดระเบียบมันจะเกิดข้อผิดพลาดหากไม่ได้รับการเพิ่มขึ้นอย่างใดอย่างหนึ่ง เกิดขึ้นกับฉันเมื่อคืนนี้


ฉันพูดถึงคีย์ทั้งสองในคำถามของฉัน คำตอบของคุณที่นี่คือค่าทั้งสองต้องเพิ่มขึ้นหรือไม่? ช่วยสนับสนุนคำตอบของคุณให้ดีขึ้นได้ไหม
pkamb

ใช่ทั้งสองอย่างจะต้องเพิ่มขึ้น เมื่อคืนตอนที่ฉันพยายามส่งก่อนจะเพิ่มมันก็บ่นทั้งคีย์
xoail

ขอบคุณสำหรับข้อมูลเพิ่มเติม คุณควรแก้ไขคำตอบเพื่อเพิ่มประสบการณ์ของคุณเมื่ออัปโหลดงานสร้าง
pkamb

6
"เป็นแนวทางปฏิบัติที่ดีที่จะทำให้เหมือนเดิม" ซึ่งไม่จำเป็นต้องเป็นจริง หากคุณมีผู้ทดสอบที่ใช้งานแอปของคุณคุณอาจต้องการเพิ่มหมายเลขบิวด์ของคุณเมื่อมีการเปลี่ยนแปลง แต่ให้หมายเลขเวอร์ชันของคุณเหมือนเดิม เมื่อใช้การผสานรวมอย่างต่อเนื่องคุณสามารถอัปเดตหมายเลขบิวด์ให้คุณได้ก่อนที่จะปรับใช้กับผู้ทดสอบตัวอย่างเช่น
Andy

@ คุณพูดถูกมีเหตุผล ขอขอบคุณที่แจ้งกรณีการใช้งาน ฉันคิดในแง่ของสภาพแวดล้อมของนักพัฒนา / ผู้ทดสอบรายเดียว
xoail

5

ทั้งคู่CFBundleVersionและCFBundleShortVersionString ต้องเพิ่มขึ้นเมื่อปล่อยเวอร์ชันใหม่ลงใน App Store

นอกจากนี้หนึ่งในสตริงต้องตรงกับเวอร์ชันที่ระบุใน iTunes Connect

ข้อผิดพลาด Xcode Organizer Validator: ต้องเพิ่มหมายเลขเวอร์ชัน

คำถามนี้รวมถึงภาพหน้าจอด้านบนของ Validator ของ Xcode Organizer ที่ปฏิเสธที่จะตรวจสอบความถูกต้องของแอปเมื่อCFBundleVersionและCFBundleShortVersionStringยังไม่ได้เพิ่มขึ้น

  • กลุ่มนี้ไม่ถูกต้อง ค่าของคีย์CFBundleVersion[1.0] ในไฟล์ Info.plist ต้องมีเวอร์ชันที่สูงกว่าเวอร์ชันที่อัปโหลดก่อนหน้านี้ [1.134]

  • กลุ่มนี้ไม่ถูกต้อง ค่าของคีย์CFBundleShortVersionString[1.0] ในไฟล์ Info.plist ต้องมีเวอร์ชันที่สูงกว่าเวอร์ชันที่อัปโหลดก่อนหน้านี้ [1.134]

โปรแกรมตรวจสอบความถูกต้องยังแสดงข้อผิดพลาดในการพิสูจน์ว่าหนึ่งในสตริงต้องตรงกับเวอร์ชันของแอพที่สร้างบน iTunes Connect

  • รุ่นไม่ตรงกัน. CFBundleVersion ['1.0'] หรือ CFBundleShortVersionString ['1.0'] ใน Info.plist ไม่ตรงกับเวอร์ชันของแอปที่ตั้งไว้ใน iTunes Connect ['1.4']

2

หมายเหตุทางเทคนิคของ AppleปัจจุบันTN2420 หมายเลขเวอร์ชันและหมายเลขรุ่นระบุว่า (ตัวหนาของฉัน):

  1. สำหรับแอป iOS คุณสามารถใช้หมายเลขบิลด์ซ้ำในรถไฟรุ่นต่างๆได้ แต่คุณไม่สามารถใช้หมายเลขบิวด์ซ้ำภายในรถไฟรุ่นเดียวกันได้ ปพลิเคชันสำหรับ MacOS คุณจะไม่สามารถกลับมาใช้ตัวเลขในการสร้างรถไฟปล่อยใด

น่าเสียดายที่นี่หมายความว่าคุณไม่สามารถใช้หมายเลขบิวด์ที่ติดตามหมายเลขรุ่นรถไฟบน iOS ซ้ำได้เมื่อคุณพยายามปล่อยบิลด์เดียวกันบน Mac Catalyst

ตัวอย่างเช่นในกรณีของฉันเนื่องจากปัญหาก่อนหน้านี้ฉันจึงปล่อย 1.0.2 (4) เป็นแอป Mac Catalyst ที่สอดคล้องกับ 1.0.2 (1) บน iOS ตอนนี้เมื่อพยายามปล่อย 1.0.3 (1) ทั้งสองแอปล้มเหลวในการตรวจสอบบน MacOS เนื่องจากหมายเลขรุ่นในขณะที่ผ่านการตรวจสอบบน iOS

ฉันเดาว่าตอนนี้ฉันกำลังปล่อยแอพเดียวกันทั้งบน iOS และ MacOS เป็นประจำฉันจะใช้หมายเลขบิลด์ที่ตรงกับวันที่เช่น 20200111 และเพิ่มขึ้นด้วยจุดทศนิยมหากฉันต้องการเปลี่ยนหมายเลขบิลด์ภายในรุ่นที่กำหนด


1

คุณต้องเพิ่มทั้งสองอย่าง

เมื่ออัปโหลดเวอร์ชันใหม่คุณจะต้องสร้างเวอร์ชันใหม่บน iTunes Connect ซึ่งจะสูงกว่ารุ่นก่อนหน้าโดยอัตโนมัติ เวอร์ชันนี้บน iTunes Connect จะคาดหวังว่าจะมีไบนารีที่มีหมายเลขเวอร์ชันเดียวกันดังนั้นจึงCFBundleShortVersionStringต้องเพิ่มขึ้น

หากคุณอัปเดตเวอร์ชัน แต่ลืมเพิ่มขึ้นCFBundleVersionคุณจะพบข้อผิดพลาดระหว่างการอัปโหลด ดูคำตอบและภาพหน้าจอของ pkamb

สำหรับรายละเอียดCFBundleShortVersionStringและCFBundleVersionโปรดดูที่: https://stackoverflow.com/a/31921249/936957


1

ฉันสามารถยืนยันได้เมื่อลองทั้งสองวิธีแล้วว่าลำดับของเวอร์ชันและหมายเลขบิลด์เช่น ...

1.0.0 (1)
1.0.1 (1)
1.0.2 (1)

... จะได้รับการยอมรับสำหรับแอพ iOS แต่สำหรับแอพ Mac (Catalyst) จะส่งกลับข้อผิดพลาดนี้:

ERROR ITMS-90061: "บันเดิลนี้ไม่ถูกต้องค่าสำหรับคีย์ CFBundleVersion [1] ในไฟล์ Info.plist ต้องมีเวอร์ชันที่สูงกว่าเวอร์ชันที่อัปโหลดก่อนหน้านี้ [2]"

เวอร์ชัน Mac และหมายเลขบิลด์จะต้องเป็นไปอย่าง ...

1.0.0 (1)
1.0.1 (2)
1.0.2 (3)

สำหรับ iOS ฉันเคยป้อนหมายเลขบิวด์เป็นหมายเลขเวอร์ชันบวกตัวเลขสี่เช่น ...

1.0.0 (1.0.0.1)
1.0.1 (1.0.1.1)
1.0.2 (1.0.2.1)

... แต่ไม่อนุญาตให้ใช้กับแอพ Mac เช่นกัน เมื่อฉันพยายามส่งแอพ Mac (Catalyst) เครื่องแรก Apple จะยอมรับเฉพาะหมายเลขรุ่นที่มีตัวเลขสามหลักหรือน้อยกว่าเท่านั้น:

ข้อผิดพลาด ITMS-9000: "บันเดิลนี้ไม่ถูกต้องค่าสำหรับคีย์ CFBundleVersion [1.0.0.1] ในไฟล์ Info.plist ต้องเป็นรายการที่คั่นด้วยช่วงเวลาของจำนวนเต็มที่ไม่ติดลบไม่เกินสามจำนวน"

ดังนั้นฉันจึงเปลี่ยนเป็นตัวเลขเดียวที่เพิ่มขึ้นสำหรับทุกรุ่นและเพิ่มขึ้นเรื่อย ๆ ในหมายเลขเวอร์ชัน


คุณมีข้อความแสดงข้อผิดพลาดที่แจ้งไว้หรือไม่? กรุณาอ้างถ้าเป็นเช่นนั้น!
pkamb

0

ฉันกำลังเตรียมเปิดตัวแอพ Mac App Store ใหม่ ใช้การจัดรูปแบบCalVerของYEAR.release (build).

ฉันได้อัปโหลดหลายสร้าง: 2020.0 (1), 2020.0 (2)ฯลฯ ในที่สุดผมก็ส่ง2020.0 (8)สำหรับแอปรีวิวร้าน ที่ผ่านการตรวจสอบและอยู่ในสถานะรอการเผยแพร่สำหรับนักพัฒนาซอฟต์แวร์ที่วางจำหน่ายรอนักพัฒนาซอฟต์แวร์

ฉันต้องการแก้ไขบางสิ่งก่อนวางจำหน่ายดังนั้นฉันจึงเพิ่มงานสร้างใหม่ในรถไฟรุ่นเดียวกัน: 2020.0 (9)ฉันต้องการที่จะแก้ไขสิ่งที่ไม่กี่ก่อนที่จะปล่อยผมจึงเพิ่มการสร้างใหม่ที่จะเปิดตัวรถไฟเดียวกัน

ซึ่งส่งผลให้เกิดข้อผิดพลาด:

ข้อผิดพลาดในการดำเนินการเชื่อมต่อของ App Store

ข้อผิดพลาด ITMS-90062 : "บันเดิลนี้ไม่ถูกต้องค่าสำหรับคีย์CFBundleShortVersionString[2020.0] ในไฟล์ Info.plist ต้องมีเวอร์ชันที่สูงกว่าเวอร์ชันที่ได้รับอนุมัติก่อนหน้านี้ [2020.0] โปรดดูข้อมูลเพิ่มเติมCFBundleShortVersionStringที่https: // developer.apple.com/documentation/bundleresources/information_property_list/cfbundleshortversionstring "

ซึ่งเป็นที่น่ารำคาญเป็นของฉัน2020.0รุ่นก็ไม่เคยจริงการปล่อยตัว จากคำตอบที่ได้รับการยอมรับของคำถามนี้ฉันรู้สึกว่าจนกว่าแอปจะพร้อมใช้งานบน App Store คุณยังสามารถออกบิวด์ใหม่ด้วยเวอร์ชันเดียวกันได้

วิธีการแก้ปัญหาที่ดูเหมือนว่าจะเป็นไปได้ว่า "การเปิดตัวรถไฟ" (รุ่นเดียวกัน + สร้างใหม่) ไม่สามารถปรับปรุงถ้ารัฐ app เป็นรอดำเนินการวางจำหน่ายของนักพัฒนาซอฟต์แวร์ ปล่อยรุ่นที่มีอยู่ของคุณแล้วเพิ่มเวอร์ชันหรือยกเลิกรุ่นนี้ใน App Store Connect เพื่ออนุญาตให้อัปโหลดเพิ่มเติมสำหรับรถไฟรุ่นนี้


-2

AFAIK จากด้านบนของหัวของฉันคุณจะต้องเพิ่มหมายเลขการสร้างCFBundleVersionเท่านั้น ไม่จำเป็นต้องเพิ่มสตริงเวอร์ชันสั้นแม้ว่าคุณอาจควรเพิ่มขึ้นเนื่องจากจะบอกผู้ใช้ว่าแอปใหม่ Apple บอกว่าการกำหนดหมายเลขควรเป็นไปตามข้อกำหนดการกำหนดเวอร์ชันซอฟต์แวร์แบบดั้งเดิมและ iTunes Connect อาจบ่นหากคุณพยายามอัปโหลดเวอร์ชันที่มีอยู่แล้วซ้ำ

เรื่องสั้นขนาดยาวมันอาจจะใช้ได้ แต่อาจจะไม่


มองหาคำตอบที่เชื่อถือได้ว่าคีย์ใดต้องเพิ่มขึ้น หากCFBundleShortVersionStringไม่จำเป็นต้องเพิ่มขึ้นรุ่นที่หันหน้าเข้าหาผู้ใช้ "เดียวกัน" สามารถอัปโหลดไปยัง App Store ได้หลายครั้งหรือไม่
pkamb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.