Skip to content

app: iOS build pipeline + TestFlight + App Store submission #653

@nadavosa

Description

@nadavosa

Context

Sub-issue of #535. Depends on #649, #650. Gets the app into TestFlight for internal testing and then submitted to the App Store.

Prerequisites

  • Apple Developer Program membership ($99/year) — must be under the need4deed organisation account
  • Xcode installed (latest stable) on a Mac build machine or CI runner
  • App ID registered in Apple Developer portal: org.need4deed.app

One-time setup

Apple Developer portal

  • Create App ID org.need4deed.app with capabilities: Push Notifications, Associated Domains
  • Create Distribution certificate (iOS Distribution)
  • Create App Store provisioning profile for org.need4deed.app
  • Create App record in App Store Connect: name "Need4Deed", category "Social Networking" or "Utilities"

Xcode project (in ios/)

  • Set Bundle Identifier: org.need4deed.app
  • Set Version + Build number
  • Select Distribution certificate + provisioning profile
  • Enable capabilities: Push Notifications, Associated Domains

Build + upload to TestFlight

```bash
next build # static export
npx cap sync ios # sync web assets + plugins
xcodebuild archive
-workspace ios/App/App.xcworkspace
-scheme App
-archivePath build/App.xcarchive
xcodebuild -exportArchive
-archivePath build/App.xcarchive
-exportOptionsPlist ExportOptions.plist
-exportPath build/
xcrun altool --upload-app -f build/App.ipa
--username $APPLE_ID --password $APP_SPECIFIC_PASSWORD
```

Or use Xcode → Product → Archive → Distribute GUI for first submission.

App Store metadata

  • Screenshots: 6.7" iPhone, 12.9" iPad (if supported)
  • App description (en + de)
  • Keywords, support URL, privacy policy URL
  • Age rating questionnaire
  • Review notes for Apple (explain the NGO context, login required)

Tasks

  • Apple Developer account + App ID + certificates + provisioning profile
  • App Store Connect record created
  • First TestFlight build uploaded and shared with internal testers
  • All App Store metadata filled in
  • App submitted for App Store review

Depends on

#649 (Capacitor), #650 (icons + splash)

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreRoutine task

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions