- Apple Developer Account ($99/year) - developer.apple.com
- Xcode installed
- Apple Transporter app installed
- App icons ready (1024x1024px)
- Bundle ID configured:
com.monitormx.meshcoreopen
- Go to Apple Developer - Identifiers
- Click the "+" button
- Select "App IDs" → Continue
- Select "App" → Continue
- Fill in:
- Description: Meshcore Open
- Bundle ID: Explicit -
com.monitormx.meshcoreopen - Capabilities: Leave defaults (or add as needed)
- Click Continue → Register
- Go to App Store Connect
- Sign in with your Apple ID
- Click "My Apps"
- Click the "+" button → "New App"
- Fill in the form:
- Platforms: iOS
- Name: Meshcore Open
- Primary Language: English (U.S.)
- Bundle ID: Select
com.monitormx.meshcoreopenfrom dropdown - SKU:
meshcore-open-001(or any unique identifier) - User Access: Full Access
- Click "Create"
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 ipaThe IPA will be created at: build/ios/ipa/meshcore_open.ipa
-
Open Apple Transporter
- Launch from Applications folder
- Sign in with your Apple ID
-
Upload the IPA
- Drag and drop
build/ios/ipa/meshcore_open.ipainto Transporter - Click "Deliver"
- Wait for upload to complete (usually 1-5 minutes)
- Drag and drop
-
Processing
- Apple will process your build (10-30 minutes)
- You'll receive an email when processing is complete
- In App Store Connect, go to your app
- 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
-
Go to App Store tab
-
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
-
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. -
Keywords:
lora,mesh,networking,bluetooth,communication -
Support URL: Your GitHub or website URL
-
Marketing URL: (Optional)
-
What's New in This Version:
Initial release of Meshcore Open - BLE device connectivity - Mesh network messaging - Map integration - Community features -
Build: Select the uploaded build once processing completes
- Go to TestFlight tab in App Store Connect
- Click Internal Testing → "+" to create a group
- Name your group (e.g., "Internal Testers")
- Add yourself as a tester using your email
- Select the build you uploaded
- Testers will receive an email with TestFlight invitation
- Click External Testing → "+" to create a group
- Add build and testers
- Fill in Test Information:
- What to Test: Brief description of features
- Feedback Email: Your email address
- Click Submit for Review
- Beta review typically takes 24-48 hours
Once you're ready for public release:
- Go to App Store tab
- Complete all required metadata (if not done)
- Select your build
- Fill in App Review Information:
- Contact Information: Your name, phone, email
- Demo Account: If app requires login
- Notes: Any special instructions for reviewers
- Answer Export Compliance questions:
- Does your app use encryption? Yes (uses TLS/HTTPS)
- Is encryption registration required? No (standard encryption)
- Click Add for Review
- Review summary and click Submit to App Review
-
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
When you need to release an update:
-
Update version in
pubspec.yaml:version: 0.5.0+6 # Increment version (0.5.0) and build number (+6)
-
Build new IPA:
export PATH="/opt/homebrew/lib/ruby/gems/4.0.0/bin:$PATH" ../flutter/bin/flutter clean ../flutter/bin/flutter build ipa
-
Upload via Transporter (same process as above)
-
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
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.appDistribution:
- Share the zip file directly
- Users unzip and drag to Applications
- First run: Right-click → Open (to bypass Gatekeeper)
- 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
- 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
- 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
- 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
- App Store Connect
- Apple Developer Portal
- TestFlight Documentation
- App Store Review Guidelines
- Flutter iOS Deployment
For issues with:
- App Store Process: Apple Developer Support
- Flutter Build Issues: Flutter GitHub
- Meshcore Open App: GitHub Issues