1.9 Generating Certificates for Development, Production

This topic describes the systematic instruction to Generating Certificates for Development, Production option.

  1. This is required for running the application on device for debugging, testing as well for releasing the application to Appstore.
  2. Bank can refer to Apple’s documentation on how to create certificates and provisioning profiles.
  3. Create all certificates (by uploading CSR from keychain utility), provisioning profiles and push certificates by login in developer console.

Below are steps:

  1. Certificate Creation
  2. AppID creation
  3. Profile creation
  4. Adding device UUIDS to profiles
  5. Generating Push certificate for server

Certificate Creation: Below is the screen on apple developer portal where bank needs to create distribution and Development certificates.



AppID creation: Below is the screen where bank needs to create appIDs for each target bank has configured in workspace. Available targets are

ZigBank

OBDXSiriExtension

OBDXSiriExtensionUI

ObdxImessageExtension

OBDXWatchApp

OBDXWatchApp Extension

AccountsWidgetExtension

NotificationService



  1. Add capabilities as shown below and ensure the bundle identifier matches with the capabilities added in Xcode.
  2. Ensure AppGroups capability is added to all profiles and for appIDs.
  3. Ensure SiriKit, App Groups, Push Notifications, Associated domain capabilities are added in Zigbank appIDs.
  4. Bank can refer base workspace for the naming convention followed for bundle identifier for each target. Below are the appIDs which we need for OBDX application in similar format as below:


Profile Creation:



Select appropriate AppIDs to relevant profile and appropriate certificates.

Example: AccountWidget development profile will have development certificate and appId created for AccountWidget. Likewise for other targets.



Bundle identifiers need to be added in the Info.plist of each frameworks. Example: if bank’s appId for Zigbank is com.ofss.digx.obdx.zigbank then follow below steps

  1. Right click on OBDXFramework.framework(in Xcode’s Project Navigator) -> Show in Finder
  2. When the finder directory opens the right click OBDXFramework.xcframework -> select ios-arm64 -> Select OBDXFramework.framework
  3. Open Info.plist and set Bundle identifier as com.ofss.digx.obdx.zigbank.abc.def.ghi.jkl.OBDXFramework
  4. Repeat the steps for the other three frameworks as well, with the following values:

    Bundle identifier for Cordova.framework : com.ofss.digx.obdx.zigbank.Cordova

    Bundle identifier for OBDXExtensions.framework : com.ofss.digx.obdx.zigbank.OBDXExtensions

    Bundle identifier for OBDXWatchFramework.framework : com.ofss.digx.obdx.zigbank.OBDXWatchFramework

Set the identifier in the Signing Capabilities tab in Xcode for each target.

  1. Open Xcode project in Xcode and select each target and go to Signing and Capabilities and update correct bundle identifier for each target.
  2. Example if main target bundle identifier is “com.ofss.digx.obdx.zigbank” then each target should have below format for bundler indentifiers

    OBDXSiriExtensionSiri – com.ofss.digx.obdx.zigbank.OBDXSiriExtension

    OBDXSiriExtensionUI – com.ofss.digx.obdx.zigbank.OBDXSiriExtensionUI

    ObdxImessageExtension– com.ofss.digx.obdx.zigbank.ObdxImessageExtension

    OBDXWatchApp – com.ofss.digx.obdx.zigbank.watchkitapp

    OBDXWatchAppExtension-com.ofss.digx.obdx.zigbank.watchkitapp.watchkitextension

    AccountsWidgetExtension – com.ofss.digx.obdx.zigbank.AccountsWidget

    NotificationExtension- om.ofss.digx.obdx.zigbank.OBDXNotificationExtension

Adding device UUIDS to profiles

  1. For development profiles, testing device UUIDs need to be added, and same devices need to be selected in the development profile.

Generating Push certificate for server

To set up an APNs certificate on your server, bank will need to generate a Certificate Signing Request (CSR), upload it to Apple's Push Certificates Portal, download the resulting certificate, and then install it on your server, along with the necessary root certificates for secure communication

Select appropriate AppIDs to relevant profile and appropriate certificates. E.g. AccountWidget target will have development certificate with appId created for AccountWidget if development type profile is created. Like wise for other targets.