Troubleshooting

Diagnose any issues you have experienced with the greenID Mobile SDK and check our suggested solutions.

Problems starting greenID Mobile SDK

IssuePlatformResulting behaviourError reportedSuggested solution(s)Documentation
GIDSDK does not show, no errors reported to the delegateiOS

Nothing happens when you want to show the greenID SDK in your app.  

Nothing shows in the Xcode console logs.  


  • Ensure you are allocating and initialising the GIDMainViewController correctly
  • Push GIDMainViewController onto your navigation controller stack

iOS Integration (Start Up)

Sample code

Initialisation erroriOS

GIDDelegate receives a handoff message

Error Domain: greenIDErrorDomain Code=-1009 

UserInfo: {
NSLocalizedRecoverySuggestion=Startup error: The GIDSDK parameter <missing_parameter_name> is empty or missing.  Before starting GIDMainViewController, make sure you have set <missing_parameter_name>.
}

Localized Description: The SDK startup parameters were incorrect.

Console log may contain

errorGIDErrorCode = “-1009”
       errorRecoverySuggestion = "Startup error: The GIDSDK parameter '<missing_parameter_name>'
           is empty or missing.  Before starting GIDMainViewController, make
           sure you have set '<missing_parameter_name>'.  \n";
      errorShortDescription = "The SDK startup parameters were incorrect.";
      message = "Handoff: Completed greenID process with result: Error";
      status = Error;
      statusCode = "-1";
      task = Handoff;

Console log may contain: 

[ERROR] Startup error: The GIDSDK parameter '<missing_parameter_name>' is empty or missing.  Before starting GIDMainViewController, make sure you have set '<missing_parameter_name>'.

Error Code: -1009
Description: The SDK startup parameters were incorrect.
Recovery Suggestion: The GIDSDK parameter <missing_parameter_name> is empty or missing.

Add all required params to an NSDictionary for GIDMainViewController initWithConfig call.

Required parameters:

  • “apiCode”
  • “accountId”
  • “baseUrl”
  • “mode”

Configuration variables
SIGABRT on startupiOSYour app crashes when you try to start the GIDSDK code.  

Xcode will drop into a debugger.  

App running on a phone will crash back to the iOS home screen.

Check for missing frameworks in your app’s embedded frameworks:

  • iFaceRec.framework
  • IDMetricsSelfieCapture.framework
  • IDMetricsDocumentCaprture.framework
  • GIDSDK.framework
iOS Integration - Embedding

Missing GIDResources bundle

iOS

GIDDelegate receives a handoff message

Error Domain: greenIDErrorDomain Code=-1008
UserInfo: {
NSLocalizedFailureReason=Resource Bundle Error
}
Localized Description: GIDResources Bundle is missing


Console log may contain: 

       errorGIDErrorCode = “-1008”
       errorFailureReason = “Resource Bundle Error”
       errorShortDescription = "GIDResources Bundle is missing";
       message = "Handoff: Completed greenID process with result: Resource Bundle Missing";
       status = “Resource Bundle Missing”;
       statusCode = "4";
       task = Handoff;

Error Domain: greenIDErrorDomain Code=-1008
UserInfo: {
NSLocalizedFailureReason=Resource Bundle Error
}
Localized Description: GIDResources Bundle is missing

Add GIDResources.bundle to host app’s ‘Copy Bundle Resources’ in the Build Phases menu.

iOS Integration - Resources

Problems while running greenID Mobile SDK

IssuePlatformResulting behaviourError reportedSuggested solution(s)Documentation
GIDSDK stops working - inactivity timeout iOS

GIDDelegate receives a handoff message

Error Domain: greenIDErrorDomain Code= -1007

UserInfo: {
NSLocalizedFailureReason=There was no activity for 2 seconds
}

Localized Description: Inactivity Timeout

Console log may contain:
       errorGIDErrorCode = “-1007”
       errorFailureReason = "There was no activity for <inactivityTimeoutSeconds_param> seconds";
      errorShortDescription = "Inactivity Timeout";
      message = "Handoff: Completed greenID process with result: User Inactivity";
      status = "User Inactivity";
      statusCode = 3;
      task = Handoff;

Console log may contain:

[GID SDK] [ERROR] Inactivity Timeout. There has been no user interaction on the interface.


Error Code: -1007
Description: Inactivity Timeout

The GIDSDK will stop if there has been no user interaction for a set period of time (default is 5 minutes).  

Adjust GIDSDK init param “inactivityTimeoutSeconds” to better meet your use-case or add logic to your app to accommodate this error.

Configuration variables
GIDSDK stops working - Network erroriOS

If the network is disconnected from the phone, GIDSDK will stop working, or show erratic behaviour. 

GIDDelegate receives a handoff message

Error Domain: greenIDErrorDomain Code= -1002
UserInfo: {
NSLocalizedFailureReason = Resource Bundle Error
NSLocalizedRecoverySuggestion = The request could not be completed. The user needs to verify their internet connection and try again.
}
Localized Description: The Internet connection appears to be offline.

Console log may contain: 

errorGIDErrorCode = “-1002”
       errorFailureReason = "There was a network error when trying to load the verification process.”;
       errorRecoverySuggestion = "The request could not be completed. The user needs to verify
           their internet connection and try again.";
       errorShortDescription = "No internet connection";
       message = "Handoff: Completed greenID process with result: No Network";
       status = “No Network”;
       statusCode = “-2";
       task = Handoff;

Console log may contain:

[ERROR] WebView error occurred trying to load page: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline."

Error Code: -1002
GIDResult Code: -2

The SDK needs a network connection for most of the process.  If the device has no network, your app needs to handle this in didCompleteProcessWithPayload  with a 'no network' handoff.  iOS Integration - Handoff
GIDSDK finishes, but my app gets no handoff messageiOS
  • GreenID workflow gets to the end, but then control does not pass back to the host app.  
  • GreenID workflow gets to the end, but then is stuck on a white blank screen after the verification is finished.
  • GreenID workflow gets to the end, but didCompleteProcessWithPayload method is not being called

Make sure your host app has set up a GIDDelegate to receive handoff messages

Make sure you set the delegate for GIDMainViewController

Make sure your GIDDelegate is implementing didCompleteProcessWithPayload method

Make sure your didCompleteProcessWithPayload method has code to process the various handoff messages.  The sample code needs you to fill in the blanks. 

iOS Integration - Handoff

GIDSDK is not logging anything

GIDSDK is not logging enough

iOS
  • When running your app in Xcode, you are seeing no log messages from the SDK in the Xcode console.
  • When running your app in Xcode, you are seeing some log messages, but not enough detail.  

  • Set the log level of the GIDMainViewController, by calling the setLogLevel method on the GIDMainViewController, to one of the following values:
    • GIDLogLevelNone
    • GIDLogLevelError
    • GIDlogLevelInfo (default level)
    • GIDLogLevelTasks
    • GIDLogLevelRequests
    • GIDLogLevelDebug
    • GIDLogLevelUI

  • If you have implemented a GIDLoggerDelegate, make sure your have implemented a sdkDidLogLevel method, and that it is printing the log messages that you want to see. 
iOS Integration - Logging
GIDSDK is logging too muchiOSWhen running your app in Xcode, the SDK is logging too much to the console.  You would prefer it to be quieter.  

Set the log level of the GIDMainViewController, by calling the setLogLevel method on the GIDMainViewController, to one of the following values:

  • GIDLogLevelNone
  • GIDLogLevelError
  • GIDLogLevelInfo (default level)
  • GIDLogLevelTasks
  • GIDLogLevelRequests
  • GIDLogLevelDebug
  • GIDLogLevelUI
iOS Integration - Logging
An error occured in the OCR processIOS

errorFailureReason = "OCR results could not be sent, as the SDK internal parameters were missing.";

 message = "Handoff: Completed greenID process with result: Error";

    status = Error;

    statusCode = "-1";

    task = Handoff;

errorGIDErrorCode = -1003

statusCode = "-1";

because when client initiate greenID SDK, the parameter selectedDocumentType is only "NATIONAL_ID_CARD"

which should be "NATIONAL_ID_CARD.SG"


Workflow erroriOS

During the workflow, an unexpected server error has occurred, or the SDK reports that there is a server issue.  

GIDDelegate receives a handoff message

Error Domain: greenIDErrorDomain Code= -1006         
UserInfo: {
NSLocalizedFailureReason = The server passed back a handoff error.
}
Localized Description: Error when loading URL <the_url_which_failed_to_load>

Console log may contain:

       errorGIDErrorCode = “-1006”
       errorFailureReason = "The server passed back a handoff error.";
       errorShortDescription =  "An error has occured in the server workflow.";
       message = "Handoff: Completed greenID process with result: Error";
       status = Error;
       statusCode = “-1”;
       task = Handoff;


Error Code: -1006
GIDResult Code: -1

  • Ensure all of your configuration variables are correct.  
  • Contact the greenID Mobile team for support. 

General questions about greenID Mobile

IssuePlatformResulting behaviourError reportedSuggested solution(s)Documentation
Errors when submitting to App Store (iTunes Connect)iOS

iTunes Connect will not allow your app on the App Store.  It will not be validated and will not upload.  

iTunes Connect or Xcode upload reports: 

  • Invalid architectures
  • Invalid segment alignment
  • The binary is invalid

GIDSDK and related frameworks should not contain any simulator code which will cause this issue.  If you believe greenID Mobile is causing this issue in your app, please contact our team for support.

Check any other frameworks you may have in your app, and if necessary strip the x86_64 and i386 simulator architectures from the binaries.  


Where do I use the 'customer code'?

iOS

Android

Unsure where to enter the 'customer code' when integrating GIDSDK into your app
The 'customer code' is only for use with the POC app.  You can ignore it when building your own app.  
How long does greenID Mobile take?

iOS 

Android



Times to complete the greenID Mobile process will vary, depending on the network speed of the device being used, and document types used.

For a typical application, approximately 1MB will be downloaded to start the process, and up to 3MB will be uploaded.  Drivers licence tends to be quicker to upload than passport, due to the file sizes used.  


Does the country code affect the document types available?

iOS

Android

The country code can affect minor parts of the workflow, depending on your customer configuration.  
Contact the greenID Mobile team to get assistance with any configuration you would like done to your workflow.  
How to location permissions work in the SDK?  

iOS

Android

If the required permission keys are set in the host app’s .plist file (iOS) or Manifest file (Android), the GIDSDK will request permission and be able to query the device’s location.

If these keys are absent - the GIDSDK will ignore the location permission request and continue as usual.


If you want to gather location information about your users when they use greenID Mobile, you will need to have your app configured with the correct permissions.  
Is there a list of all configuration options for the SDK?

iOS

Android



Documentation for configuring the SDK is available on the wiki in various places

Configuration variables

iOS Integration - Customising

iOS - GIDResources.bundle Configuration

iOS - Localizable.strings

Android - customising UI