Skip to Content

OnboardingFlow without WelcomeScreenStep


for our costumer we designed an app for recording special deals in their shops and simplify a really complex progress.

Because the application is branded in the customers colours we also have to adopt the OnboardingSteps. We don't need to describe something to the end-user (employee) and there will be no DemoMode, so the WelcomeScreenStep is useless and we want to remove it from the onboarding flow.

When i try the onboarding without the WelcomeScreenStep, i get the following error:

2018-03-09 11:23:13.074190+0100 iDeal[4776:1402829] [general] # OnbardingManager - ERROR - (Main) - OnboardingManager.swift.onboardOrRestore() - Onboarding failed! (Error: Missing argument in SAPcpmsSessionConfigurationStep: SAPcpmsSettingsParameters)

Okay ... there is something missing that is called "SAPcpmsSettingsPrameters". Let's check the configuration of the WelcomeScreenStep:

let discoveryConfigurationTransformer = DiscoveryServiceConfigurationTransformer(applicationID: "XXXX", authenticationPath: "XXXX")

let welcomeScreenStep = WelcomeScreenStep(transformer: discoveryConfigurationTransformer, providers: [FileConfigurationProvider()])

Good ... there is some configuration going on in behind. But i have no clue what configuration. I looked at the documentation but didn't found something helpful.

As far as i got, there is an info property on the OnboardingContext that contains a value with the key SAPcpmsSettingsParameters.sapcpmsSettingsParameters. But when I'm in the onboarding flow, I'm not able to debug what the WelcomeScreenStep does with that property.

Has anyone facing the same issue or can help me to configure the OnboardingContext in a way that the rest of the onboarding flow will work?


Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

1 Answer

  • Best Answer
    Mar 09, 2018 at 04:03 PM


    I think to tackle your problem it is not necessarily required to understand how the WelcomeScreenStep works, but you need to understand what the subsequent steps in the flow might require (which is now missing as the WelcomeScreenStep doesn't put it in the context anymore). You already figured out the essential piece - the SAPcpmsSettingsParameters are needed by the SAPcpmsConfigurationStep. You can actually find out the required input of a step by inspecting the alternative initializers that don't go by the onboarding context, but by explicit list of parameters.

    So, in your current situation, you need to provide the SAPcpmsSettingsParameters via the OnboardingContext so the configuration step knows where to connect to.

    You can do this by setting onboardingContext.sapcpmsSettingsParameters = mySettingsParameters before starting the actual flow.


    Add comment
    10|10000 characters needed characters exceeded