Moodle Mobile Automatic Building System: Difference between revisions
Juan Leyva (talk | contribs) No edit summary |
Juan Leyva (talk | contribs) |
||
Line 36: | Line 36: | ||
2 /opt/moodlemobile/apk-templates/myapp.apk | 2 /opt/moodlemobile/apk-templates/myapp.apk | ||
3 /opt/moodlemobile/tmpdir | 3 /opt/moodlemobile/tmpdir | ||
4 /opt/moodlemobile/certificates | |||
1 A cloned git repository of your code | 1 A cloned git repository of your code | ||
Line 42: | Line 43: | ||
3 An empty dir | 3 An empty dir | ||
4 Certificate key store dir. The keystore is created using keytool, see http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html | |||
cd /opt/moodlemobile | cd /opt/moodlemobile | ||
Line 51: | Line 54: | ||
cp -r repository/* tmpdir/assets/www/ | cp -r repository/* tmpdir/assets/www/ | ||
apktool b tmpdir mynewapp.apk | apktool b tmpdir mynewapp.apk | ||
jarsigner -verbose -keystore | jarsigner -verbose -keystore certificates/keystore mynewapk.apk mycertificatealiasinsidekeystore |
Revision as of 16:07, 20 March 2013
Introduction
An automatic building system helps a lots to developer, they can focus on writing good code and forget all about building/compiling and all the bored stuff.
Phonegap Build is an example of a powerful build system, but it has a big limitation for Moodle Mobile. It doesn't support some Phonegap plugins we use for the Android app.
Implementing an automatic building system for Android is quite simple using 3er party applications as described bellow:
Automatic Build System for Android
Requirements
- The MoodleMobile .apk file or your custom app .apk file. You need to perform an initial build on Android. See Moodle Mobile Building the app for Android for more info.
- android-apktool - http://code.google.com/p/android-apktool/
- jarsigner - Part of the Java JDK
Steps
1 Extract your .apk file template in a directory (apktool d path/to/yourApp.apk path/to/output-folder)
2 Download from moodlehq/moodlemobile repository the last files to -> path/to/output-folder/assets/www directory (where all the html, css, js files are stored)
3 Re-build the .apk file (apktool b path/to/output-folder path/to/yourAppV2.apk )
4 Re-sign the .apk file (jarsigner -verbose -keystore ~/.android/debug.keystore path/to/yourAppV2.apk androiddebugkey)
That's all, as you can see once you haven an original .apk file, extract, add your modifications and re-package is very simple
Automatic script
Say you have:
1 /opt/moodlemobile/repository/... 2 /opt/moodlemobile/apk-templates/myapp.apk 3 /opt/moodlemobile/tmpdir 4 /opt/moodlemobile/certificates
1 A cloned git repository of your code
2 Your original .apk file built with Android SDK
3 An empty dir
4 Certificate key store dir. The keystore is created using keytool, see http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html
cd /opt/moodlemobile rm -rf tmpdir/* cd repository git pull cd ../ apktool d apk-templates/myapp.apk tmpdir/ cp -r repository/* tmpdir/assets/www/ apktool b tmpdir mynewapp.apk jarsigner -verbose -keystore certificates/keystore mynewapk.apk mycertificatealiasinsidekeystore