STEP 1 Setup your development environment
Last updated: Aug 15th, 7:34am
Before you begin developing your branded mobile wallet app, you must obtain the SDK and configure a development environment supporting its use.
SETUP STEPS:
1. Install & configure Xcode
Development with WLW's iOS SDK requires Xcode 7 or later.
Once you have installed your Xcode environment, configure the following settings for your WLW project:
Import the scope app included with your SDK bundle as your project and configure it as follows.
Set
IPHONEOS_DEPLOYMENT_TARGET=9.0
for your project.Add the
-fstack-protector-all
custom compiler flag to the Apple LLVM compiler settings to guard against Stack Smashing attacks. This security measure is required by WLW.Import
PaydiantSDK.h
header file into a common, top-level location in your app (such as the PCH header) to make all SDK headers available universally in the app.Link the following libraries and frameworks to your project’s Frameworks list:
- libiconv.2.dylib
- libstdc++.dylib
- libz.dylib
- UIKit.framework
- Foundation.framework
- CoreGraphics.framework
- AudioToolbox.framework
- MessageUI.framework
- MediaPlayer.framework
- OpenGLES.framework
- QuartzCore.framework
- AVFoundation.framework
- CFNetwork.framework
- SystemConfiguration.framework
- MobileCoreServices.framework
- Security.framework
- CoreMedia.framework
- CoreVideo.framework
- CoreTelephony.framework
- CoreLocation.framework
- OpenAL.framework
Link the following certification pinning files to your project:
- gd_intermediate.cer
- gdig2.cer
- symantec-securesitepro_ecc_ev-intermediate.cer
- symantec-securesitepro_ecc-intermediate.cer
- symantec-securesitepro_ev-sha2-intermediate-sha1-root.cer
- symantec-securesitepro_ev-sha2-intermediate-sha2-root.cer
- symantec-securesitepro-sha2-intermediate-sha1-root.cer
- symantec-securesitepro-sha2-intermediate-sha2-root.cer
2. Disable ForwardSecrecy
WLW's iOS SDK does not support forward secrecy. Disable it by adding the following Cocoa Key to your project's information propoerty (info plist) file:
1<dict>2 <key>NSExceptionDomains</key>3 <dict>4 <key>auto.qa.paydiant.com</key>5 <dict>6 <key>NSExceptionRequiresForwardSecrecy</key>7 <false />8 </dict>9 </dict>10</dict>
3. Initialize SDK instance
Define the environment variables for your development environment:
- ipAddress - The host name or IP address where the mobile gateway resides, for example, "sandbox.paydiant.com"
- hostProtocol - The protocol to be used when calling the mobile gateway for this version it is "https")
- hostPort - The port the server is listening on - set to "nil"
- applicationSignature - A unique identifier of the app used to generate the HMAC during signing.
- applicationVersion - The app's release version, following WLW's a.b.c.d.e SDK version convention. For example, 6.7.0.0.i. for iOS version 6.7.
- apiKey - The unique identifier of the application instance.
Note: Values are required for
ipAddress
,applicationSignature
,applicationVersion
, andapiKey
. The SDK will throw an exception for calls from any app without valid values for these properties.Configure your SDK instance:
- Configure login credential encryption to match corresponding Issuer onboarding setting, if encryption will be handled by the SDK. Typically, this encryption is handled by the server rather than the SDK, so the default value of FALSE is applicable in most cases and explicit configuration is not necessary.
NSDictionary *serviceSecurityConfigs = @(kEncryptPassword:@"false", kEncryptMFASecurityAnswer:@"false", kEncryptPin, @"false", kCaseInsensitiveMFASecretAnswer @"false" ); [[PDPaydiantSDKConfig sharedInstance] setSecurityConfigurations:serviceSecurityConfigs];
Set log handling parameters:
(void)setStoreLogsInMemory:(BOOL)storeOrNot;
(void)numberOfLogsInMemory:(NSInteger)numberOfLogs;
Set a incremental-release rotating App Certification using a CFUUID generated app signature, with separate, unique UUIDs for test and production environments.
(void)setApplicationCertification:(CFUUID);
Configure location services, if applicable for your app. Refer to the iOS SDK Guide for LBS configuration and enablement calls.
Call
initPaydiantSDK
to initialize the instance with the configuration settings.PDPaydiantContext *context = [[PDPaydiantContext alloc] init]; context.hostProtocol = @"https"; context.ipAddress = @"sandbox.paydiant.com"; context.hostPort = nil; context.applicationSignature = @"999x9999-9x9x-9xx9-x999-99x99xxx99"; context.applicationVersion = @"2.355.4.5"; context.apiKey = @"xxx-1234-99xx-xx"; PDPaydiantSDK *paydiantSDK = [PDPaydiantSDK newInstance]; [paydiantSDK initPaydiantSDK:context];