A common method of installing mobile apps on users' mobile devices is to install them from the public stores such as Apple App Store and Google Play. This is called App Store Distribution. Whereas, Enterprise Distribution is a process of distributing mobile apps to your mobile users by hosting the mobile apps in your internal corporate site. Your mobile users instead of installing from public stores, are required to install the apps from internal site.
- App Store Distribution - The mobile apps are owned by Oracle that are used to connect to EBS servers that belong to each customer. If Oracle makes a new EBS mobile release, then the users might upgrade to the latest version of the mobile app on their devices while the EBS server is still on the older version. While Oracle certifies the latest version of EBS mobile apps with one older version of the server (N-1), the administrator is still required to plan to upgrade the EBS server soon.
- Enterprise Distribution - The customers own both the mobile apps and EBS servers hence can control their versions at appropriate levels as per their requirement. The administrator has complete control over when they want to upgrade their mobile apps and servers. Enterprise distribution also helps to customize corporate branding if required.
In this blog post I will cover steps to distribute Approvals app using Enterprise Distribution model without corporate branding changes. When using these steps, you are creating an enterprise version of a mobile app that looks and works exactly like the corresponding app on the Apple App Store and Google Play, except that your users will install it from your internal corporate site.
Before getting started, download below software.
- For iOS - If you plan to distribute the enterprise app for iOS, register with Apple Developer Program for your enterprise. Download Xcode, obtain iOS provisioning profile and distribution certificate using which you can package the iOS app to install on iOS devices. Without the provisioning profile and distribution certificate from Apple, you can still test the app on iOS simulator but you cannot install the app on device.
- For Android - If you plan to distribute the enterprise app for Android, download Android SDK. You only need SDK tools and not studio.
- JDK 8 - Download latest update of JDK 8
- JDeveloper 126.96.36.199.0 - Download JDeveloper 188.8.131.52.0
- E-Business Suite Mobile Software - Download Oracle E-Business Suite Mobile Application Archives from Oracle Software Delivery Cloud (OSDC). This contains
- EBS server patches for 12.1 and 12.2
- Mobile Application Archives for all EBS mobile apps that support enterprise distribution. For example, for Mobile Release 7.0, for Approvals app use p25974387_R12_GENERIC.zip
- Mobile Application Framework corresponding to the EBS mobile release. For example, for Mobile Release 7.0, use maf-2.4000.20170417-0215.zip
- Documentation for the corresponding EBS mobile release
Steps to prepare your development environment before enterprise distribution.
- Apply EBS Mobile Release Patches - If you are using E-Business 12.2.7, it already includes Mobile Release 7.0. If not, refer to list of patches to apply in Oracle E-Business Suite Mobile Foundation Release Notes (Doc ID 1642431.1)
- Create and Configure Mobile Application - Login to EBS as user with responsibility Mobile Applications Manager, create a new definition for the enterprise mobile app. Note the Application Bundle Id used to create the definition, for example com.acme.ebs.MyApprovals, since the same value should be used in the MAF app in a later step. Once the application definition is created, use Configure icon to enable and configure the application.
- Install Xcode - Install Xcode and launch it first. Install the provisioning profile to Xcode.
- Android SDK - Unzip the Android SDK tools to your computer.
- Install JDK 8 - Install JDK 8 required for MAF development.
- Install JDeveloper 184.108.40.206.0 - Install JDeveloper 220.127.116.11.0 using JDK 8.
- Install MAF Extension - Software downloaded from OSDC that contains the MAF extension as a zip file maf-*.zip. Launch JDeveloper -> Help -> Check for Updates and use Install From Local File option to install the MAF extension downloaded from OSDC.
- Configure JDeveloper - Go to JDeveloper's Preferences -> Mobile Application Framework section. Configure Android and iOS options to make sure they point to the underlying installation of Xcode, enterprise provisioning profile and Android SDK location. MAF internally uses this configuration to package the iOS and Android app to install to devices.
- Create MAF Application Project - Launch JDeveloper and create a new MAF project by importing the Mobile Application Archive (MAA) file corresponding to the EBS mobile app that you want to distribute in your enterprise. List of MAA file names for each EBS mobile app are documented in chapter Downloading Mobile Application Archives Files in EBS mobile dev guide.
- Make Required Changes - Complete the minimum changes to distribute the app to your enterprise by changing only the following in the MAF project.
- maf-application.xml - Id should be EXACTLY same as what you used to register the app in Mobile Applications Manager responsibility, for example com.acme.ebs.MyApprovals.
- Deployment Profile - Right click on MAF application -> Application Properties -> Deployment. Update the iOS and Deployment profiles with appropriate Bundle ID and Package Name respectively that is needed to package the apps to be installed on corresponding devices.
- For iOS - The application bundle id used in deployment profile should match with the iOS provisioning profile you received from Apple
- For Android - The package name could be any valid value based on reverse domain naming convention such as com.acme.ebs.MyApprovals, but note that it should be unique for apps installed on users' Android device
- Note that these values for iOS and Android in deployment profiles need not be same as Id value in maf-application.xml.
- Deploy App and Test - Right click on MAF application and deploy the apps to either simulator or to a device and test
- Host App for Users to Install - Once apps are deployed as packages (for iOS - .ipa and for Android - .apk), host them on an internal server for your users to install on their devices.