أفضل طريقة لتوليد كل من "الحرة / تجريبي" والتطبيقات التجارية من شفرة المصدر نفسه؟

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

  •  07-07-2019
  •  | 
  •  

سؤال

وأود أن تقديم نسختين مختلفتين من بلدي التطبيق فون على المتجر - واحد حر أن يقتصر على عدد من العناصر المعروضة من خلال التطبيق، وآخر غير محدود تماما

.

وسوف الكود لكلا التطبيقات يكون بالضبط نفس الشيء، فإن الفرق الوحيد أن يكون قاعدة بيانات SQLite الذي يقوم بتخزين العناصر الموجودة في التطبيق.

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

هل هناك طريقة جيدة للقيام بذلك دون تكرار كل شيء؟

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

المحلول

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

نصائح أخرى

تأكد الاستخدام الحكيم للالترجمة الشرطية. أنا لا أعرف ما هي اللغة التي يعملون فيها، ولكن في C / C ++ تجميع الشرطية ويتم استخدام المعالج الكلي وifdefs. هل كتابة التعليمات البرمجية شيئا مثل:

#ifdef FULL_APP
  // unlimited size
  #define SIZE -1
#else
  #define SIZE 100
#endif

عند بناء البرنامج الذي تزويد تعريفات الماكرو appopriate على سطر الأوامر مترجم.

gcc program.cc -o program.o -DFULL_APP

ويمكنك استخدام الترجمة الشرطية والمعالج الماكرو في مجموعة متنوعة من الطرق لتشغيل أو إيقاف ميزات مختلفة في تنفيذ أو تعديل جوانب أخرى من البرنامج.

ومن الجدير بالذكر أيضا أنه إذا قرر أحد المستخدمين الترقية إلى النسخة الكاملة، إذا لم يكن لديك بعض آلية لنقل أكثر من البيانات الموجودة هل من المحتمل رؤية رد فعل سلبي من المستخدمين. إذا كانت محتويات البيانات صغيرة، ويمكن أن تمثل في الغالب من قبل النص، أود أن أقترح تطبيق نظام URL لتمرير أكثر من ذلك.

وإنشاء مشروع جديد، ثم يكون ذلك إشارة (وليس إنشاء نسخة محلية) من الملفات المصدر نفس المشروع الأصلي.

هل هناك بعض (اي فون محددة؟) السبب تحتاج إلى أن يكون قواعد البيانات سكليتي مختلفة لكلا الإصدارين من التطبيق الخاص بك؟

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

وبطبيعة الحال، يمكن لمثل هذا الحل تضر عملك إذا كان الزبائن هم البارعين في امور التكنولوجيا واساءة والتعليمات البرمجية من السهل فك.

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

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