How To: Configure the Jive Android App For Enterprise Distribution

Version 14

    Note


    This document describes how to configure the Android application for enterprise distribution.  The iOS instructions can be found at How To: Configure the Jive iOS App for Enterprise Distribution.


    OS Notes/System Requirements


    The customization/repack scripts (the script found here, as well as Script for re-packing/re-signing the Jive Android app binary ) are only supported on OS X and Linux environments.  If you are using Windows, our recommended workaround is to install Ubuntu Linux under a VM (VirtualBox is freely downloadable), install the Android SDK and APKtool, and finally use the attached scripts.


    You will also need:

     

    App Customizations

    Some app customizations may be required prior to enterprise distribution.  If you need to customize the app, use the attached script to unpack the APK bundle.

     

    First, download the attached script and use chmod to make it executable.

     

    chmod +x unpackapk.bash

     

    Then, run the script on the APK supplied by Jive.

     

    ./unpackapk.bash jive-android-core.apk

     

    This will create a Payload directory custom_jive-android-core.apk where you can make changes to the package as described below.

     

    CustomizationMin App VersionPayload File(s)Value to ModifyValid optionsDefault valueNotes
    App icons3.0.0

    res/drawable-mdpi/ic_launcher.png

    res/drawable-xhdpi/ic_lanucher.png

    res/drawable-xxhdpi/ic_launcher.png

    Replace all filesSee Iconography | Android Developersic_launcher.png

    To easily generate all assets from a reference image, visit: Makeappicon - Generate app icons of all sizes in a click!

    For Android it might be better to useAndroid Asset Studio if starting with fresh assets

    App Name3.0.0res/values/strings.xmlapp_nameAny stringJive

    This is the name of the application as seen from the Android launching screen.

    The 3.0.0 version has the value in strings.xml which means that it appears in all translations. In order to modify it it would have to be either modified in all of them or removed from translations. This deficiency has been addressed in 3.1.0

    Background image displayed on login screen3.0.0

    res/drawable-mdpi/sign_in_background.png

    res/drawable-xhdpi/sign_in_background.png

    res/drawable-xxhdpi/sign_in_background.png

    Replace all filesSee Supporting Multiple Screens | Android Developers

    sign_in_background.png

    a transparent png file

    mdpi: 314x558

    xhdpi: 628x1116

    xxhdpi: 942 x 1674

    Many utilities exist to do these type of transformations for you.  For example this utility will generate Android assets based on iOS @2x assets, see:

    android-asset-resizer 1.1.0 : Python Package Index

    Image displayed on login screen and settings screen

    3.0.0

    res/drawable-mdpi/sign_in_logo.png

    res/drawable-xhdpi/sign_in_logo.png

    res/drawable-xxhdpi/sign_in_logo.png

    Replace all filesSee Supporting Multiple Screens | Android Developerssign_in_logo.png

    Many utilities exist to do these type of transformations for you.  For example this utility will generate Android assets based on iOS @2x assets, see:

    android-asset-resizer 1.1.0 : Python Package Index

    Enable or disable Google Analytics3.0.0res/raw/customer_config.propertiesconfig.analytics.enabledtrue or falsetrueUsed to disable tracking with google analytics.
    Google Analytics Key3.0.0res/raw/customer_config.propertiesconfig.analytics.customerTrackingIdstringemptyThe customer's Google analytics tracking id. This should not be blank if they allow analytics
    Prevent diagnostic crash reporting from being sent to Jive3.0.0res/raw/customer_config.propertiesconfig.crashreporting.enabledtrue or falsetrueSetting allow_crash_reporting to false prevents the Jive app from sending app crash logs to Jive.
    Allow App to connect to Jive instance that has disabled standard app access3.0.0res/raw/customer_config.propertiesfeature.mobile.nativeapp.allowedtrue or falsetrue

    By default, the Jive binary will not connect to a Jive system that has the system propertyjive.mobile.nativeapp.allowedset to false (see below for system property documentation).  If you have set this system property value in your Jive instance, then you must customize your app so that it will behave differently from the standard version of the app. To do this, incustomer_config.properties, set the value offeature.mobile.nativeapp.allowed tofalse.

    Disable all in-app log file generation for use with the "shake to send feedback" feature3.0.0res/raw/customer_config.propertiesconfig.logging.optouttrue or falsefalse

    If set to true, the application is opted out and will not generate log files.

    The log level options in Settings will also not appear in this case.

    Allow customers who wish to send push notifications directly to the device, bypassing Jive Push gateway.3.0.0res/raw/customer_config.propertiesconfig.gcm.project.idstringempty

    If set, the app will use a customer's Google push credentials.  Follow the instructions below under "Push Notifications." The Project ID obtained through that process must be set here.

    Prefill Connection URL3.1.0res/raw/customer_config.propertiesconfig.mobile.connection.urlstringemptyIf set, the URL will be prefilled with the value.
    Allow connections to Untrusted URLs3.2.0 ( not available yet )res/raw/customer_config.propertiesconfig.untrustedDISABLED, PROMPT, ENABLEDPROMPT

    DISABLED - don't allow connections to untrusted URLs

    PROMPT - when the user tries to connect to an untrusted URL, prompt them and allow them to manually trust the URL (this is the default behavior)

    ENABLED - always connect to any URL, trusted or not, without any warning prompt

     

     

    Signing the APK

     

    After preparing your customizations as desired, you will need to re-pack and sign the Android APK.  Jive can not sign the application for you, as this requires your organization's secure signing key. Script for re-packing/re-signing the Jive Android app binary contains a script and instructions to re-pack and sign the Android APK with your organization's signing key.

     

    The resulting signed binary can be distributed through your organization's internal distribution procedure.

     

    App Updates

     

    Updates to the Jive app will be posted on the Jive Community.  Any customizations performed must be re-applied before distributing the app to your users.  App updates must be signed using the same signing key as the previous version.  Devices which already have a previous version will not accept the newer package if the signing keys do not match.  Be sure to retain your signing key, or else your users will be forced to uninstall the old version to upgrade to a newer one signed with a different key.

     

    Jive Community Configurations

    These configurations are performed on the Jive server side and do not need to be repeated when the Jive app binaries are updated, although new configuration options may become available in the future.

     

    Push Notifications

    With the Google Play Store version of the Jive app, push notifications go from Jive installations to Jive's push gateway, and from there to Google's push servers, using Jive's credentials.  You may override this and use your own Google push API key as follows.

     

    1. First, following the three steps in Getting Started | Android Developers: Creating a Google API project, Enabling the GCM Service and Obtaining an API Key.
    2. Once the Project Id and API key are known, the Project Id should go into the config file and the push notification should be set to custom in the Admin console with the API Key obtained above.

     

    custom_push.png
    Other Jive Settings

    There are several additional Jive system properties you may wish to configure depending on your level of customization.

    Jive System PropertyRequired Jive VersionsMin iOS App VersionsValid optionsDefault ValueDescription
    jive.mobile.redirect.prompt
    • Jive 7.0.2
    3.0.0true or falsetrue on Employee (internal) communities, false on Customer (external)  communitiesWhen the mobile redirector is enabled (Admin Console > Mobile > General Settings), setting this value to true adds a prompt during redirection on supported Android devices to either (1) open the link in the browser or (2) launch or install  the Jive iOS app.  If false, no prompt will be displayed; the link will always open directly in the web browser.
    jive.mobile.gcm.enabled
    • Jive 7.0.1
    3.0.0true or falsefalseSet to true to enable this instance to send push notifications to Android devices. The Google Cloud Messaging key can be specified in the custom push settings of Admin Console > Mobile > Native Apps.

     

    Testing your customized app

    From the command line, run

    adb [-s <device-id>] install </path/to/signed_custom_enterprise.apk>
    
    
    

    For example:

    adb install ~/Desktop/signed_custom_enterprise.apk
    
    
    

    or

    adb -s emulator-5554 install /Users/heath/signed_custom_enterprise.apk
    
    
    

     

    Importing the APK in any form into Eclipse, Android Studio, or IntelliJ is not supported.