كيفية الحصول على Cordova 3.4.0 لتعيين اسم/رمز إصدار Android عند الإنشاء؟

StackOverflow https://stackoverflow.com//questions/23001780

  •  20-12-2019
  •  | 
  •  

سؤال

أنا أستخدم حاليًا Cordova 3.4.0 وCLI لإنشاء مشروعي لاستهداف Android باستخدام الأمر:

cordova build android

أو

cordova build android --release

يحتوي ملف config.xml الخاص بي على ما يلي:

<widget id="com.example.myapp" 
        version="0.0.3" 
        versionCode="2" 
        ...
        >
</widget>

ملف AndroidManifest.xml الناتج موجود في myapp/المنصات/android لا يتم تحديثه بالإصدار ورمز الإصدار المحدد في config.xml.يبقى كافتراضي:

<manifest 
        android:versionCode="1" 
        android:versionName="1.0"
        ...
</manifest>

هذا الخلل؟أم أن هناك طريقة أخرى لتحديد رمز الإصدار واسم الإصدار لنظام Android في الملف config.xml؟وربما، هل هناك خطاف يمكنني استخدامه لتحديث AndroidManifest.xml بالإصدار الصحيح قبل الإنشاء؟

أفضل ألا أضطر إلى تحديث هذا يدويًا في كل مرة أرغب في تغييره على النحو التالي:

  1. إنه عرضة للخطأ والعبث
  2. لن يكون التغيير أمرًا واضحًا بالنسبة للمطورين غير المألوفين
  3. لا يتم تخزين أي من مجلدات النظام الأساسي في التحكم بالمصادر

لهذه الأسباب، أرغب في تعيين أرقام الإصدارات في الملف config.xml.أيه أفكار؟

شكرًا

هل كانت مفيدة؟

المحلول

واخيرا مع Cordova 3.5.0-0.2.4 لقد أضفت هذه السمة إلى <widget> العقدة config.xml

 android-versionCode="10"

و ال AndroidManifest.xml تم تحديثه بشكل صحيح ل

 android:versionCode="10" 

نصائح أخرى

بعد إجابة michaeloryl هناك شيء قمت بتنفيذه باستخدام Cordova 3.4 واستخدام أداة BASH xmlstarlet

أساسا أنها نسخ قيمة سمة versioncode من config.xml في androidmanifest.xml

بدلا من تشغيل هذا:

giveacodicetagpre.

run [يجب أن تصبح نصي]:

giveacodicetagpre.

بهذه الطريقة عندما أقوم بالترقية إلى Cordova 3.5، يمكنني إعادة استخدام "Cordova Build Android" المعتاد - Release "

لا ينبغي أن يكون اسم الإصدار

مشكلة هنا، حيث يتم نسخها من Config.xml إلى ملف Androidmanifest.xml في المنصات / Android (على الأقل على Cordova 3.4.0). هذا الجزء لم يكن لدي أي مشكلة مع.

الحصول على إصدار المربع زيادة، رغم ذلك، كانت مهمة للغاية. سلسلة من المهام، في الواقع، التي أضفتها إلى Grunt's Gruntfile.js.

هذا هو string- استبدال المهمة وبعد " Sprunt String-Rephary - استبدال: الإصدار " سيزيد إصدار النسخة المخزنة في Package.json. " Sprunt String - استبدال: سوف يأخذ AndroidVersionCode " هذه القيمة ووضعها في المنصات / Android / Androidmanifest.xml:

giveacodicetagpre.

يتطلب استدعاء هذا من ملف GruntFile.js قبل الاستخدام، بالطبع (وكذلك NPM تثبيت Sprunt-String-Replace Replace):

giveacodicetagpre.

ستحتاج إلى إضافة خط مثل ما يلي إلى ملف الحزمة الخاص بك. جون لهذا كل شيء للعمل:

giveacodicetagpre.

سوف تحصل على زيادة من قبل سلسلة استبدال: الإصدار المهام أعلاه. أضع الخط في package.json بعد السطر الذي يبدأ ب "الإصدار":

خدعة مهمة للحصول على هذا للعمل هو التأكد من أنه بدلا من استدعاء "Cordova Build Android Android" يمكنك استدعاء "Cordova قم بإعداد Android"، ثم "Sprunt Replace-String: AndroidVersionCode"، و ثم "كوردوفا ترجمة أندرويد الروبوت". Builn هو مجرد اختصار لاستدعاء "الاستعداد" ثم "ترجمة"، وبين هذين المهامين هو عندما تضطر إلى تعديل ملف Androidmanifest.xml لمنعه من الكتابة فوقه، يبدو.

عملية البناء الخاصة بي أكثر تعقيدا للغاية لأنني في الواقع زيادة قيمة الإصدار في الحزمة .json مع prmunt-bump للحصول على نخر ثم حقن ذلك في config.xml باستخدام xmlpoke for currunt وبلدي حول الصفحة باستخدام سلسلة استبدال . يمكنني استخدام crunt-shell لاستدعاء كل من cordova فعلا بناء خطوات للحصول على كل شيء نسخ إلى حيث يذهب وتشغيله بالترتيب الصحيح.

اسمحوا لي أن أعرف إذا كان هذا يساعد.

قمت بإصلاح هذه المشكلة باستخدام البرنامج المساعد Cordova-Cuccing-Config، ثم في Config.xml داخل

giveacodicetagpre.

ضع

giveacodicetagpre.

قم بتغيير القيمة إلى رمز الإصدار المطلوب ...

عملت تماما بالنسبة لي.

تحرير رمز الإصدار في Androidmanifest.xml (/ Placforms/android/androidmanifest.xml)

giveacodicetagpre.

قم بتغيير رمز الإصدار هنا ليس في CONFIG.XML Wont Update.Then عندما تأخذ إنشاء إصدار، فستندد رمز إصدار جديد لك.

في حالة ما زال شخص ما يتعثر على هذا واحد: لا يزال صحيحا فقط أحدث إصدار cordova (6.4.0) . إذا لم يكن لديك بعض Jenkins أو عملية أخرى للقيام بذلك من أجلك، فيمكنك وضع رمز الإصدار في خطها الخاص

giveacodicetagpre.

ثم قم بتشغيل هذا الأمر إلى أعلى مستوى (E.G. استخدام البرنامج النصي الخاص بك):

giveacodicetagpre.

yah، القذرة ولكن يعمل :)

ليس لديك حاجة لتغيير Androidmanifest.xml لأنه يتم إنشاؤه بواسطة Cordova نفسه، لذا فإن كل تغييرات في البيض يتم الرجوع بواسطة Cordova

وجميعها مسؤول هو build.gradle يقع في مجلد النظام الأساسي

ملف -> منصة / build.gradle

ابحث عن

إذا (minsdkversion>= 20) {defaultconfig.versioncode += 9} آخر إذا (minsdkversion= 14) {defaultconfig.versioncode += 8}

حيث يتم تحديث رمز الإصدار الخاص بك من هنا، يمكنك تغييره أو التعليمات البرمجية الصعبة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top