# `mix dala.publish`
[🔗](https://github.com/manhvu/dala_dev/blob/main/lib/mix/tasks/dala.publish.ex#L1)

Uploads a release-signed `.ipa` to App Store Connect using `xcrun altool`
with App Store Connect API key authentication. The build then appears in
TestFlight after Apple finishes processing (typically 5-15 minutes).

    mix dala.publish                       # uploads _build/dala_release/<App>.ipa
    mix dala.publish path/to/Foo.ipa       # uploads a specific .ipa

## Prerequisites

  1. App Store Connect API key (.p8 file). Create one at
     https://appstoreconnect.apple.com/access/api with App Manager role.
  2. The app record exists in App Store Connect (the bundle ID is
     registered there as an app, not just as an App ID in the developer
     portal).
  3. `dala.exs` configured:

         config :dala_dev,
           app_store_connect: [
             key_id:    "ABC123XYZ4",
             issuer_id: "69a6de76-aaaa-bbbb-cccc-1234567890ab",
             key_path:  "~/.appstoreconnect/AuthKey_ABC123XYZ4.p8"
           ]

## What it does

Runs `xcrun altool --upload-app` with API-key auth. altool validates the
IPA, uploads it, and returns when Apple has accepted the build for
processing. Apple then takes 5-15 minutes to process the build before it
appears in TestFlight.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
