ios - يجب أن يكون CFBundleVersion أعلى من الإصدار السابق



xcode itunesconnect (6)

أحد الأسباب قد يكون الموقف التالي: لقد أرسلت إلى AppStore الإصدار 1.0 برقم البنية 50. لقد قررت منحها لمستخدمي TestFlight للاختبار. وقررت في وقت واحد لإرسال هذا الإصدار للمراجعة إلى AppStore. يبدأ المستخدمون في اختباره وكل شيء جيد. بعد مرور بعض الوقت ، يوافق AppStore عليه ، ولا يتم إصداره (لديه حالة مطور تقشير). بعد إجراء بعض التغييرات وترغب في منح مستخدمي Testflight إصدارًا جديدًا. قررت زيادة رقم البنية إلى 51 والحفاظ على رقم الإصدار عند 1.0. سوف تحصل على هذا الخطأ الذي وصفته في سؤالك في هذه الحالة. يجب عليك زيادة إصدار التطبيق أيضًا.

أرسل تحديثًا لأحد تطبيقاتي. لقد قمت بذلك عشرات المرات مع العديد من التطبيقات المختلفة التي طورتها ، ولكن هذا التطبيق فشل لسبب غريب. أرشفة التطبيق الخاص بي ، ثم حاول التحقق من الأرشيف والحصول على رسالة الخطأ التالية:

This bundle is invalid. The key CFBundleVersion in the Info.plist file must 
contain a higher version than that of the previously uploaded version.

يعرض iTunesConnect أن هذا التطبيق حاليًا عند 1.0 وقمت بتكوينه ليكون جاهزًا لتحميل الإصدار 1.1 (لقطة شاشة مع رموز التطبيق منقوصة):

إليك لقطة شاشة لمعلومات ملخص هدف التطبيق الخاص بي والتي تعرض الإصدار والنسخة المختصرة كلاهما "1.1":

فيما يلي النصف العلوي من Info.plist من أرشيف الحزمة:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>AppStoreFileSize</key>
    <integer>20859080</integer>
    <key>ApplicationProperties</key>
    <dict>
        <key>ApplicationPath</key>
        <string>Applications/MyApp.app</string>
        <key>CFBundleIdentifier</key>
        <string>com.mydomain.myapp</string>
        <key>CFBundleShortVersionString</key>
        <string>1.1</string>

وإليك قطعة Info.plist ذات الصلة من داخل التطبيق داخل حزمة الأرشيف:

<key>CFBundleShortVersionString</key>
<string>1.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
    <string>iPhoneOS</string>
</array>
<key>CFBundleVersion</key>
<string>1.1</string>

تشير جميع أرقام الإصدار ضمن تطبيقي المحدث إلى 1.1 ، وتقول iTunesConnect إنها تتوقع 1.1 ... لكنها تشكو من أن الرقم غير صحيح.

ماذا ينقصني؟


أدت زيادة CFBundleShortVersionString أو "سلسلة إصدارات Bundle" إلى "Job" بالنسبة لي.


إليكم كيفية حل المشكلة (وأعتقد أن هذه هي المشكلة مع الكثير من الأشخاص):

1) انقر فوق علامة التبويب العامة لإعدادات المشاريع الخاصة بك (والتي يمكن الوصول إليها عن طريق النقر فوق اسم المشروع الخاص بك والذي يقع في الجزء العلوي من جميع ملفات التعليمات البرمجية).

2) تأكد من تطابق حقل البنية مع ما وضعته في لوحة المفاتيح الخاصة بك لمفتاح "إصدار الحزمة".

كانت هذه هي المشكلة بالنسبة لي ، لأي سبب كان خارج المزامنة. أعتقد أنه عند تغيير مفتاح Bundler Version ، من المفترض أن تتم مزامنته (والعكس صحيح). لكن هذا لم يحدث لأي سبب - قد يكون خطأ.


اتضح أنني واجهت بعض المشكلات في تقريري الأصلي الذي تسبب في أن يكون الإصدار المرئي للمستخدم هو "1.0" ولكن إصدار الحزمة الداخلية هو "1.2". لذلك غيّرت الإصدار الجديد ليصبح 1.3 و 1.3 وعملت عملية الإرسال.


لمعلوماتك. تفكر Apple في 1.11> 1.2 ، لذلك إذا كنت تنتقل من 1.11 إلى 1.2 ، فأنت بحاجة للذهاب إلى 1.20.

استمتع.


مشكلتي هي أنني جربت من 1.9.12 إلى 1.9.2 ... إذا فكرت في الأمر 1.9.2 فعليًا 1.9.02 ، لذلك إذا قمت بتعيين 1.9.20 من شأنه أن يحل المشكلة.





itunesconnect