Note:

If you want to create a new page for developers, you should create it on the Moodle Developer Resource site.

Moodle Mobile Automatic Building System: Difference between revisions

From MoodleDocs
Line 45: Line 45:


4 Certificate key store dir. The keystore is created using keytool, see http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html
4 Certificate key store dir. The keystore is created using keytool, see http://docs.oracle.com/javase/1.3/docs/tooldocs/win32/keytool.html
Also see: http://developer.android.com/tools/building/building-cmdline.html and http://developer.android.com/tools/publishing/app-signing.html


The script
The script
Line 56: Line 57:
  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 certificates/keystore mynewapk.apk mycertificatealiasinsidekeystore
  jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore certificates/keystore mynewapk.apk mycertificatealiasinsidekeystore
jarsigner -verbose -verify -keystore certificates/keystore mynewapk.apk

Revision as of 09:09, 22 May 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

  • 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 Also see: http://developer.android.com/tools/building/building-cmdline.html and http://developer.android.com/tools/publishing/app-signing.html

The script

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 -sigalg SHA1withRSA -digestalg SHA1 -keystore certificates/keystore mynewapk.apk mycertificatealiasinsidekeystore
jarsigner -verbose -verify -keystore certificates/keystore mynewapk.apk