---
title: Step 3. Test the app
description: Prepare
component: sdks
version: latest
page_id: sdks:sdks:tutorials/ios/03_running-sample-pingone
canonical_url: https://docs.pingidentity.com/sdks/latest/sdks/tutorials/ios/03_running-sample-pingone.html
llms_txt: https://docs.pingidentity.com/sdks/llms.txt
docs_for_agents: https://developer.pingidentity.com/build-with-ai/docs-for-agents.md
revdate: Mon, 3 Jul 2023 18:00:37 +0100
keywords: ["PingOne Advanced Identity Cloud", "PingAM", "Journeys", "Setup &amp; Configuration", "Source Code", "Tutorial", "SDK"]
---

# Step 3. Test the app

* [Prepare](00_before-you-begin.html)

* [Download](01_downloading-forgerocksdk.html)

* [Configure](02_configuring-sample-for-aic-or-pingam.html)

* **Run**

***

In the following procedure, you run the sample app that you configured in the previous step. The app steps through the login journey, rendering a UI to collect the required data for each node, for example a username and password node, together inside a page node.

1. In Xcode, select Product > Run.

   Xcode launches the sample app in the iPhone simulator.

   ![ios quickstart login button en](../../../_images/ios/ios-quickstart-login-button-en.png)Figure 1. Starting the quickstart app in an iOS simulator

2. In the sample app on the iPhone simulator, tap the Login button.

   The app displays fields to input the user's credentials:

   ![ios quickstart username password en](../../../_images/ios/ios-quickstart-username-password-en.png)Figure 2. Login as your demo user

3. Sign on using the credentials of your demo user, and then click Next. For example:

   * User Name: `demo`

   * Password: `Ch4ng3it!`

   If authentication is successful the app displays a message that the user is authenticated and enables the Logout button:

   ![ios quickstart lgout button en](../../../_images/ios/ios-quickstart-lgout-button-en.png)Figure 3. Login as your demo user

   The console in Xcode outputs the access token, as well as a message that the user is authenticated:

   ```
   [FRCore][4.10.1] [🌐 - Network] Response | [✅ 200] :
   https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/realms/alpha/access_token in 77 ms
   	Response Header: [
       AnyHashable("x-forgerock-transactionid"): 670c-c3e9,
       AnyHashable("Content-Type"): application/json;charset=UTF-8,
       AnyHashable("Date"): Tue, 12 Nov 2024 15:36:27 GMT,
   	  Response Data: {
           "access_token":"eyJ0…​Pc8k",
           "refresh_token":"eyJ0…​dnA4",
           "scope":"address openid profile email",
           "id_token":"eyJ0…​czKQ",
           "token_type":"Bearer",
           "expires_in":3598
       }
     ]
   User is authenticated
   ```

4. Tap Logout to revoke the tokens, end the session, and return to the initial screen.

   The console in Xcode outputs the calls to the `/sessions` and `/revoke` endpoints:

   ```
   Logout button is pressed

   [FRCore][4.10.1] [🌐 - Network] Request | [POST]
   https://openam-forgerock-sdks.forgeblocks.com/am/json/realms/alpha/sessions
       Additional Headers: [
           "accept-api-version": "resource=3.1",
           "8a92ca506c38f08": "qc7z…​MQ.."]
   	URL Parameters: ["_action": "logout"]
   	Body Parameters: ["tokenId": "qc7z…​MQ.."]

   [FRCore][4.10.1] [🌐 - Network] Request | [POST]
   https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/realms/alpha/token/revoke
       Body Parameters: [
           "token": "eyJ0…​dnA4",
           "client_id": "sdkPublicClient"]

   [FRCore][4.10.1] [🌐 - Network] Response | [✅ 200] :
   https://openam-forgerock-sdks.forgeblocks.com/am/json/realms/alpha/sessions?_action=logout in 117 ms
       Response Data: {
           "result":"Successfully logged out"}

   [FRCore][4.10.1] [🌐 - Network] Response | [✅ 200] :
   https://openam-forgerock-sdks.forgeblocks.com/am/oauth2/realms/alpha/token/revoke in 113 ms
   	Response Data: {}
   ```
