كيفية الحصول على Cordova 3.4.0 لتعيين اسم/رمز إصدار Android عند الإنشاء؟
سؤال
أنا أستخدم حاليًا 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 بالإصدار الصحيح قبل الإنشاء؟
أفضل ألا أضطر إلى تحديث هذا يدويًا في كل مرة أرغب في تغييره على النحو التالي:
- إنه عرضة للخطأ والعبث
- لن يكون التغيير أمرًا واضحًا بالنسبة للمطورين غير المألوفين
- لا يتم تخزين أي من مجلدات النظام الأساسي في التحكم بالمصادر
لهذه الأسباب، أرغب في تعيين أرقام الإصدارات في الملف 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.
سوف تحصل على زيادة من قبل سلسلة استبدال: الإصدار المهام أعلاه. أضع الخط في 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}
حيث يتم تحديث رمز الإصدار الخاص بك من هنا، يمكنك تغييره أو التعليمات البرمجية الصعبة