iOS Native Apps

Overview

This guide covers building iOS native applications (Swift or Objective-C) for Pie testing. The build must be a simulator build that can run independently without connecting to external services during startup.

What You’ll Need

  • Xcode: Latest version installed on macOS
  • iOS Project: Your native iOS app project
  • iOS Simulator: Configured with the latest iOS version
  • Build Access: Permissions to access project build settings

Step-by-Step Instructions

1. Launch Your Project in Xcode

  1. Open your iOS app project in Xcode
  2. Select your app as the build target from the scheme selector
  3. Choose a simulator with the latest iOS version available (not a physical device)

2. Clean Your Build Environment

  1. Navigate to Product menu → Clean Build Folder (⇧⌘K)
  2. This ensures a fresh build without cached artifacts that might cause issues

3. Build Your Application

  1. Go to Product menu → Build (⌘B)
  2. Wait for the build process to complete successfully
  3. Verify there are no build errors in the Issue Navigator

4. Locate Your Build

  1. Select Product menu → Show Build Folder in Finder
  2. Navigate to: Build/Products/Debug-iphonesimulator/ (default path)
  3. Find your .app file (it will appear as type “Application”)
ℹ️
Note: If you have customized your build settings or product name, the location may differ. Look for a folder ending in -iphonesimulator.

5. Package for Upload

  1. Right-click the .app file in Finder
  2. Select “Compress” to create a .zip archive
  3. Your build is now ready for upload to Pie’s upload portal

Important Considerations

Build Type

  • The build must be a simulator build, not a device build
  • Device builds use different architectures and will not work with Pie’s testing infrastructure

Environment Configuration

  • Ensure all environment variables point to your test or staging servers
  • Verify API endpoints are accessible from external networks
  • Remove any development-only features or debug panels that should not be tested

Testing Your Build

Before uploading, verify your build works correctly:

  1. Open iOS Simulator
  2. Drag your .app file into the simulator to install it
  3. Launch the app and verify it starts successfully
  4. Test basic navigation and core functionality
  5. Confirm it connects to your test environment, not production

Troubleshooting

Build Location Not Found

Problem: Cannot find the build in the default location.

Solutions:

  • Check if you have custom build paths in your project settings
  • Search for .app files in the entire Build/Products/ directory
  • Ensure the build completed successfully without errors

Simulator vs Device Build Error

Problem: Pie rejects the uploaded build.

Solutions:

  • Verify you selected an iOS Simulator (not a device) as the build destination
  • Check the build path ends with -iphonesimulator, not -iphoneos
  • Rebuild after confirming simulator is selected

App Crashes on Launch

Problem: App crashes immediately when opened in simulator.

Solutions:

  • Verify all required frameworks and dependencies are included
  • Check console logs in Xcode for specific error messages
  • Ensure app is configured for test environment, not production
  • Confirm all environment variables are properly set

Network Connection Issues

Problem: App cannot connect to backend services.

Solutions:

  • Verify test endpoints are accessible from external networks
  • Check firewall rules allow incoming connections
  • Confirm API keys and credentials are for test environment
  • Test endpoint connectivity from a different network

Next Steps

After preparing your build:

  1. Upload it to Pie’s upload portal
  2. Review the Post-Upload Requirements for information you’ll need to provide
  3. Pie’s AI agents will begin testing within 30 minutes

Need Help?

If you encounter issues not covered in this guide, contact the Pie Labs support team with:

  • A description of the problem
  • Build error messages (if any)
  • Your Xcode version and macOS version
  • Screenshots of any relevant error dialogs