🛫 Preflight check before submitting to TestFlight

Before submitting your app to TestFlight we recommend reviewing the following items to ensure your app meets these requirements. These guidelines are the items Structure checks during your review, so meeting these requirements will ensure your review is completed as soon as possible!

The following guidelines pair what our users expect and how users expect to be communicated with when using a Structure SDK app. For consistent and expected communication with users, we require use of our Artwork for Structure SDK Apps. Images you will see alongside our guidelines will be sourced from this .zip file.


⚙️  Minimum Operating Requirements

Structure SDK powered apps must be built using the latest available version of the Structure SDK and conform to Apple’s iOS App Review Guidelines.

Start

 Download the latest Structure SDK

✅ Develop your app to support one or more of the following depth sensors:

  • ​Structure Sensor Pro
  • Structure Sensor Mark II
  • Original Structure Sensor
  • Apple TrueDepth (Premium SDK customers only)
  • Apple LiDAR (Premium SDK customers only)


Branding (All Apps)

☑️ App displays the “POWERED by Structure SDK” graphic on your launch screen that is displayed upon app launch

☑️ App displays the “POWERED by Structure SDK” graphic on your scan screen 

☑️ App displays the “POWERED by Structure SDK” graphic on your scan review screen

☑️ App must include an outlet (e.g. email address) to communicate Support issues to developer


Functionality and Managing Connections (All Apps)

☑️ Grant Camera Access on first app launch / first sensor initialization


Functionality and Managing Connections (Structure Sensor Apps Only)

======

☑️ Shows “Structure Sensor Required” on the first launch of Structure Sensor functionality

☑️ Shows “Please connect Structure Sensor” after first sensor initialization and does not crash

☑️ When the user connects Structure Sensor, the app displays "Sensor is initializing. Please wait..."

☑️ Low Battery indicator when less than 10% battery

☑️ Shows “Please charge Structure Sensor” when the battery is depleted

☑️ App appropriately handles plugging, unplugging of the sensor at various places within the app

☑️ “Calibrate Now” notification

☑️ “Update Now” notification

======


Quality (All Apps)

☑️ The app will provide a user experience that does not diminish users’ perceived quality of Structure SDK and its performance.

Stability

☑️ The app will not freeze, crash or inhibit the performance of the iOS device or any other app, Structure Sensor or any other device required for your Structure SDK app to operate.

Uniqueness (All Apps)

☑️ The app will provide a user experience that is new and unique, and that does not substantially duplicate or otherwise replicate functionality already found in other apps created for the Structure SDK (including the SDK Sample Apps)


Branding (All Apps)

☑️ App displays the “POWERED by Structure SDK” graphic on your launch screen (that is displayed upon app launch), scanning screen and review screen.

Structure must be included, and it must meet Structure brand standards.

  1. Use the “POWERED by Structure SDK” graphic, which must be displayed on a splash screen when the app is launched. It must be easily read and seen by the user. 

  2. Use the “POWERED by Structure SDK” graphic on the scanning screen. It must be easily read and seen by the user. The graphic must link to the following URL: https://structure.io/developers  
  3. Use the “POWERED by Structure SDK” graphic on the scan review screen. It must be easily read and seen by the user. The graphic must link to the following URL: https://structure.io/developers
  4. In the App Store description for your app, you must include the following sentence: “Built for use with Structure SDK (for iOS)."
  5. Abide by the brand guidelines for additional Structure and Structure logo usage found at http://structure.io/brand-guidelines

☑️ App must include an easy to locate outlet (e.g. email address) to communicate support issues to the app developer

  1. App must include an easily accessible link to where the user may inquire for Support issues to developer. (e.g. Your organization’s Customer Support email address or support website)

Functionality and Managing Connections (All Apps)

☑️ Grant Camera Access on first app launch / first sensor initialization

If your app uses the iOS color camera, the user will need to grant access. Ensure your NSCameraUsageDescription includes details of camera use, including Structure Sensor's feature that requires permission. Camera permission requests should only occur when you are about to start using camera features. If permission settings change after approval, the app must behave gracefully to guide the user to grant permission settings again.

Examples of NSCameraUsageDescription

✓  “We need access to camera to display color information with the Structure Sensor and/or take photos within this app.”

🚫 “Give us access.”

Functionality and Managing Connections (Structure Sensor Apps Only)

☑️ Shows “Structure Sensor Required” on the first launch of Structure Sensor functionality

  1. If a Structure Sensor has not yet been connected while the app has been in use, display the Structure Sensor Icon followed by the text “Structure Sensor required.” The graphic must link to the following URL: http://structure.io/buy-a-sensor  

(The above examples show our image assets on black and white backgrounds)

☑️ Shows “Please connect Structure Sensor” after first sensor initialization and does not crash

If a Structure Sensor has previously been connected while the app has been in use, display the following message: ”Please connect Structure Sensor”

☑️ When the user connects Structure Sensor, the app displays "Sensor is initializing. Please wait..."

If a Structure Sensor is connected but is not yet steaming depth, display the following message: ”Sensor is initializing. Please wait..."

☑️ Low Battery indicator when less than 10% battery

The app must alert users via a graphic when the Structure Sensor battery level is equal to or under 10%

☑️ Shows “Please charge Structure Sensor” when the battery is depleted

When Structure Sensor’s battery is completely depleted, The app must alert users with the following message: “Please charge Structure Sensor”

☑️ App appropriately handles plugging, unplugging of the sensor at various places within the app

When a sensor is plugged in or unplugged the app should be able to notify the user with either of the following messages: 

  • Structure Sensor Required
  • Please connect Structure Sensor
  • Please charge Structure Sensor
  • Sensor is initializing. Please wait...

☑️ “Calibrate Now” notification

  • If the app uses the color camera of the iOS device, it should detect a missing calibration. If this is the case, the calibration graphic should be shown.

  • When tapped, the graphic should use the SDK call to open the Calibrator app, or open the Calibrator app in the iOS store. The SDK function call for this is:

[STCaptureSession launchCalibratorAppOrGoToAppStore]

  • The app should always check calibration status on foreground events, as other apps may change calibration status.

☑️ “Update Now” notification

  • If the app wants to use the latest firmware, it should detect that a firmware update is available. If this is the case, the Structure app graphic should be shown with the following text.

  • When tapped, the graphic should use the SDK call to open the Structure app, or open the Structure app in the iOS store. The SDK function call for this is:

[STCaptureSession launchStructureAppOrGoToAppStore]

  • The app should always check firmware status on foreground events.
Did this answer your question? Thanks for the feedback There was a problem submitting your feedback. Please try again later.