Skip to content

Latest commit

 

History

History
244 lines (189 loc) · 7.63 KB

File metadata and controls

244 lines (189 loc) · 7.63 KB

TestFlight and App Store Deployment Guide

Prerequisites

  • Apple Developer Account ($99/year) - developer.apple.com
  • Xcode installed
  • Apple Transporter app installed
  • App icons ready (1024x1024px)
  • Bundle ID configured: com.monitormx.meshcoreopen

Step 1: Register Bundle Identifier

  1. Go to Apple Developer - Identifiers
  2. Click the "+" button
  3. Select "App IDs" → Continue
  4. Select "App" → Continue
  5. Fill in:
    • Description: Meshcore Open
    • Bundle ID: Explicit - com.monitormx.meshcoreopen
    • Capabilities: Leave defaults (or add as needed)
  6. Click ContinueRegister

Step 2: Create App in App Store Connect

  1. Go to App Store Connect
  2. Sign in with your Apple ID
  3. Click "My Apps"
  4. Click the "+" button → "New App"
  5. Fill in the form:
    • Platforms: iOS
    • Name: Meshcore Open
    • Primary Language: English (U.S.)
    • Bundle ID: Select com.monitormx.meshcoreopen from dropdown
    • SKU: meshcore-open-001 (or any unique identifier)
    • User Access: Full Access
  6. Click "Create"

Step 3: Build the IPA

Run these commands from the project directory:

# Add CocoaPods to PATH
export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH"

# Clean previous builds
../flutter/bin/flutter clean

# Build IPA for App Store
../flutter/bin/flutter build ipa

The IPA will be created at: build/ios/ipa/meshcore_open.ipa

Step 4: Upload to App Store Connect via Transporter

  1. Open Apple Transporter

    • Launch from Applications folder
    • Sign in with your Apple ID
  2. Upload the IPA

    • Drag and drop build/ios/ipa/meshcore_open.ipa into Transporter
    • Click "Deliver"
    • Wait for upload to complete (usually 1-5 minutes)
  3. Processing

    • Apple will process your build (10-30 minutes)
    • You'll receive an email when processing is complete

Step 5: Configure App Store Connect Metadata

App Information

  1. In App Store Connect, go to your app
  2. Fill in required information:
    • Subtitle: Short description (30 chars max)
    • Privacy Policy URL: Required for Bluetooth apps
    • Category: Utilities or Productivity
    • Age Rating: Complete questionnaire

App Store Listing

  1. Go to App Store tab

  2. Upload Screenshots (required):

    • iPhone 6.7" display (1290 x 2796 pixels) - At least 1 screenshot
    • iPhone 6.5" display (1242 x 2688 pixels) - At least 1 screenshot
    • Optional: iPad screenshots
  3. Fill in Description:

    Meshcore Open is a Flutter client for MeshCore LoRa mesh networking devices.
    
    Features:
    - BLE connectivity to MeshCore devices
    - Real-time mesh network communication
    - Map visualization with OpenStreetMap
    - Community management with QR code scanning
    - Message tracking and retry system
    
    Connect to your MeshCore LoRa device and start communicating over the mesh network.
    
  4. Keywords: lora,mesh,networking,bluetooth,communication

  5. Support URL: Your GitHub or website URL

  6. Marketing URL: (Optional)

Version Information

  1. What's New in This Version:

    Initial release of Meshcore Open
    
    - BLE device connectivity
    - Mesh network messaging
    - Map integration
    - Community features
    
  2. Build: Select the uploaded build once processing completes

Step 6: TestFlight Setup

Internal Testing (No Review Required)

  1. Go to TestFlight tab in App Store Connect
  2. Click Internal Testing"+" to create a group
  3. Name your group (e.g., "Internal Testers")
  4. Add yourself as a tester using your email
  5. Select the build you uploaded
  6. Testers will receive an email with TestFlight invitation

External Testing (Requires Beta Review)

  1. Click External Testing"+" to create a group
  2. Add build and testers
  3. Fill in Test Information:
    • What to Test: Brief description of features
    • Feedback Email: Your email address
  4. Click Submit for Review
  5. Beta review typically takes 24-48 hours

Step 7: App Store Submission

Once you're ready for public release:

  1. Go to App Store tab
  2. Complete all required metadata (if not done)
  3. Select your build
  4. Fill in App Review Information:
    • Contact Information: Your name, phone, email
    • Demo Account: If app requires login
    • Notes: Any special instructions for reviewers
  5. Answer Export Compliance questions:
    • Does your app use encryption? Yes (uses TLS/HTTPS)
    • Is encryption registration required? No (standard encryption)
  6. Click Add for Review
  7. Review summary and click Submit to App Review

Step 8: After Submission

  • App Review: Typically 24-48 hours

  • Common Rejection Reasons:

    • Missing privacy policy
    • Incomplete app information
    • Crashes or bugs
    • Misleading app description
  • If Approved: You can release immediately or schedule a release date

  • If Rejected: Address issues and resubmit

Updating the App

When you need to release an update:

  1. Update version in pubspec.yaml:

    version: 0.5.0+6  # Increment version (0.5.0) and build number (+6)
  2. Build new IPA:

    export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH"
    ../flutter/bin/flutter clean
    ../flutter/bin/flutter build ipa
  3. Upload via Transporter (same process as above)

  4. Create new version in App Store Connect:

    • Click "+" next to versions
    • Select version number
    • Update "What's New" text
    • Select new build
    • Submit for review

macOS Build (Bonus)

To build for macOS:

export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH"
../flutter/bin/flutter build macos --release
cd build/macos/Build/Products/Release
zip -r meshcore_open-macos.zip meshcore_open.app

Distribution:

  • Share the zip file directly
  • Users unzip and drag to Applications
  • First run: Right-click → Open (to bypass Gatekeeper)

Troubleshooting

Build Errors

  • CocoaPods not found: Ensure PATH includes /opt/homebrew/lib/ruby/gems/4.0.0/bin
  • No signing certificate: Configure Team in Xcode (Signing & Capabilities)
  • Bundle ID mismatch: Check ios/Runner.xcodeproj/project.pbxproj

Upload Errors

  • No profiles found: Create app in App Store Connect first
  • Bundle ID not registered: Register in Apple Developer portal
  • Authentication failed: Use Transporter app instead of CLI

TestFlight Issues

  • Build not appearing: Wait 10-30 minutes for processing
  • Can't add testers: Check you have available slots (100 internal, 10,000 external)
  • TestFlight crashes: Check device logs in Xcode → Devices & Simulators

Important Files

  • iOS IPA: build/ios/ipa/meshcore_open.ipa
  • macOS App: build/macos/Build/Products/Release/meshcore_open.app
  • Bundle ID Config: ios/Runner.xcodeproj/project.pbxproj
  • Version Info: pubspec.yaml

Useful Links

Support

For issues with: