OBDX SERVICING APPLICATION
Pre requisite
- Download and Install node js as it is required to run npm and cordova commands.
- XCode 10 to be download from Mac App Store
Create Project
Ensure Nodejs Version is >= 8 and latest Xcode
Run Following commands on terminal
- Install cordova using the command
sudo npm install –g cordova - If you face the above error then set proxy using following commands on command line.
npm config set proxy <provide your proxy value here>
npm config set https-proxy <provide your proxy value here> - Create project using following command
cordova create <directory name> <package name / app identifier> <project name>
Eg : cordova create zigbank com.ofss.zigbank ZigBank - All subsequent commands need to be run within the project's directory
cd <directory name>
Eg: cd zigbank - Add platform ios to the project using following command
cordova platform add ios@4.x.x
- Extract iOS workspace from installer and place in a folder.
- Copy folders from previously created sample project - cordova & CordovaLib (zigbank/platforms/ios) to this workspace at zigbank/platforms/ios.
- The workspace by default contains framework for running on devices. Hence to run the application on simulator, delete and copy the 3 frameworks (OBDXExtensions.framework, OBDXFramework.framework, OBDXWatchFramework.framework) from installer/simulator to zigbank\platforms\ios directory.
Adding UI to workspace.
Use any 1 option below
- Building un built UI (required in case of customizations)
Extract unbuilt UI and traverse to OBDX_Installer/installables/ui/channel/_build folder and perform below steps
Windows –
npm install -g grunt-cli
npm install
set IS_GRUNT=true
node render-requirejs/render-requirejs.js mobile
npm install cwebp-bin
Copy "vendor" directory from _build/node_modules/cwebp-bin/ to _build/node_modules/gruntcwebp/node_modules/cwebp-bin
grunt --max_old_space_size=5120 mobilebuild --platform=ios
Linux -
sudo npm install -g grunt-cli
sudo npm install
export IS_GRUNT=true
node render-requirejs/render-requirejs.js mobile
npm install cwebp-bin
Copy "vendor" directory from _build/node_modules/cwebp-bin/ to _build/node_modules/gruntcwebp/node_modules/cwebp-bin
grunt --max_old_space_size=5120 mobilebuild --platform=ios
- Using built UI (out of box shipped with installer)
- Unzip dist.tar.gz for android from installer and copy folders(components,extensions,framework,images,json,lzn,pages,partials,resource, index.html, build.fingerprint) to workspace (platforms/ios/www/)
Delete originations folder inside images (images/originations) and ensure webhelp folder is not copied.
Open project in Xcode
Open Xcode by clicking ZigBank.xcodeproj at zigbank/platforms/ios/
- Adding URLs to app.plist (ZigBank/Resources)
- FOR NONOAM (DB Authenticator setup)
SERVER_TYPE |
NONOAM |
KEY_SERVER_URL |
http://mum00chx.in.oracle.com:3333 |
WEB_URL |
http://mum00chx.in.oracle.com:3333 |
- OAM Setup (Refer to installer pre requisite documents for OAuth configurations)
SERVER_TYPE |
OAM |
KEY_SERVER_URL |
Eg. http://mum00chx.in.oracle.com:8003 |
WEB_URL |
Eg.http://mum00chx.in.oracle.com:3333 |
KEY_OAUTH_PROVIDER_URL |
http://mum00aon.in.oracle.com:14100/oauth2/rest/token |
APP_CLIENT_ID |
<Base64 of clientid:secret> of Mobile App client |
APP_DOMAIN |
OBDXMobileAppDomain |
WATCH_CLIENT_ID |
<Base64 of clientid:secret> of wearables |
WATCH_DOMAIN |
OBDXWearDomain |
SNAPSHOT_CLIENT_ID |
<Base64 of clientid:secret> of snapshot |
SNAPSHOT_DOMAIN |
OBDXSnapshotDomain |
LOGIN_SCOPE |
OBDXMobileAppResServer.OBDXLoginScope |
- IDCS Setup
SERVER_TYPE |
IDCS |
KEY_SERVER_URL |
Eg. http://mum00chx.in.oracle.com:8003 (This URL must be of OHS without webgate) |
WEB_URL |
Eg.http://mum00chx.in.oracle.com:3333 |
KEY_OAUTH_PROVIDER_URL |
http://obdx-tenant01.identity.c9dev0.oc9qadev.com/oauth2/v1/token |
APP_CLIENT_ID |
<Base64 of clientid:secret> of Mobile App client |
WATCH_CLIENT_ID |
<Base64 of clientid:secret> of wearables |
SNAPSHOT_CLIENT_ID |
<Base64 of clientid:secret> of snapshot |
LOGIN_SCOPE |
obdxLoginScope |
OFFLINE_SCOPE |
urn:opc:idm:__myscopes__ offline_access |
- Adding chatbot support to mobile application (Optional)
CHATBOT_ID |
The tenant ID |
CHATBOT_URL |
The web socket URL for the ChatApp application in IBCS |
To disable Siri in application (in case bank does not want to use this functionality), disable touch point through admin user and then as per below screenshot turn the SiriRequiredFlag to NO
Bundle identifiers needs to be added in the Info.plist of each the frameworks along with the Signing Capabilities tab in Xcode. For example, the bundle identifier used is abc.def.ghi.jkl. The steps to be followed are,
• Right click on OBDXFramework.framework(in Xcode’s Project Navigator) -> Show in Finder
• When the finder directory opens the right click OBDXFramework.framework -> Show package contents.
• Open Info.plist and set Bundle identifier as abc.def.ghi.jkl.OBDXFramework
• Repeat the steps for the other three frameworks as well, with the following values:
- Bundle identifier for Cordova.framework : abc.def.ghi.jkl.Cordova
- Bundle identifier for OBDXExtensions.framework : abc.def.ghi.jkl.OBDXExtensions
- Bundle identifier for OBDXWatchFramework.framework : abc.def.ghi.jkl. OBDXWatchFramework
Generating Certificates for Development, Production and Push Notifications
Create all certificates (by uploading CSR for keychain utility), provisioning profiles and push certificates as shown below by login in developer console. For development add device UUIDs and add same to provisioning profiles. Add capabilities as shown below and ensure the bundle identifier matches the one of the application in Xcode
Ensure AppGroups capability is added to all profiles and for mobile profile SiriKit, App Groups, Push Notifications must by added.
Note the certificate/bundle name
Note the Team ID from top right corner
Navigate to the “Keys” section and create APNS key
Note APNS key and download the .p8 file. Copy the .p8 to config/resources\mobile
Update the password as shown below –
Sr.No |
Table |
PROP_ID |
CATEGORY_ID |
PROP_VALUE |
Purpose |
1 |
DIGX_FW_CONFIG_ALL_B |
APNS |
DispatchDetails |
<Password> |
Provides key of .p8 certificate |
2 |
DIGX_FW_CONFIG_ALL_B |
APNSKeyStore |
DispatchDetails |
DATABASE or CONNECTOR |
Specifies whether to pick certificate password from database or from connector. Default DB (No change) |
3 |
DIGX_FW_CONFIG_ALL_B |
Proxy |
DispatchDetails |
<protocol,proxy_address> |
Provides proxy address, if any, to be provided while connecting to APNS server. Delete row if proxy not required. Example: HTTP,148.50.60,80 |
4 |
DIGX_FW_CONFIG_ALL_B |
CERT_TYPE |
DispatchDetails |
For dev push certs add row with value ‘dev’ |
For prod push certificates this row is not required |
5 |
DIGX_FW_CONFIG_ALL_B |
ios_cert_path |
DispatchDetails |
resources/mobile/AuthKey_RBPLJN6ZU5.p8 |
Update the certificate path/name if required. Should be relative to config directory |
6 | DIGX_FW_CONFIG_ALL_B | APNS_BUNDLE |
DispatchDetails |
Eg. com.ofss.digx.obdx.zigbank |
Certificate Name |
7 | DIGX_FW_CONFIG_ALL_B | APNS_TEAMID | DispatchDetails | Eg. 3NX1974C93 | Team ID of Apple developer account |
If CONNECTOR is selected in Step 2 update key as below
Properties for tokens to be configured as –
Sr.No |
Table |
PROP_ID |
CATEGORY_ID |
PROP_VALUE(Default Value) |
Purpose |
1 |
DIGX_FW_CONFIG_ALL_B |
APMOBAPP_EXPIRYTIME |
authenticationConfig |
864000 |
Time in secs after which user will have to reregister for alternate login in mobile app |
2 |
DIGX_FW_CONFIG_ALL_B |
APSNAPSHOT_EXPIRYTIME |
authenticationConfig |
1296000 |
Time in secs after which user will have to reregister for snapshot (for mobile app & wearable) |
3 |
DIGX_FW_CONFIG_ALL_B |
APWEARABLE_EXPIRYTIME |
authenticationConfig |
1296000 |
Time in secs after which user will have to reregister for login in wearables. |
4 |
DIGX_FW_CONFIG_ALL_B |
APSIRICHATBOT_EXPIRYTIME |
authenticationConfig |
1296000 |
Time in secs after which user will have to reregister for Siri (There is no separate registration, it will happen automatically after alternate login is enabled) |