# Xcode requirement

### Do I need Xcode to upload my iOS app?

You can upload your iOS app build (IPA file) to App Store Connect using Apple’s Transporter app on macOS. In most cases, this does not require Xcode. However, some users face issues where Transporter fails unless Xcode or Xcode Command Line Tools are installed.

#### Why does this happen?

#### **Missing developer tools**

* Some macOS systems lack developer frameworks and libraries that Transporter depends on.
* Installing Xcode or its Command Line Tools often resolves sign-in or delivery errors.

#### **Dependency on legacy components**

* Transporter replaced the old Application Loader (which shipped with Xcode).
* On some machines, Transporter still relies on background components that are normally bundled with Xcode.

#### **Different macOS environments**

* If a Mac has never had Xcode installed, Transporter may not work correctly.
* Macs that already have developer tools tend to run Transporter without issues.

{% hint style="danger" %}
Transporter not working?&#x20;

If you encounter problems while upload your app on the Transporter app, install the Xcode Command Line Tools from the App Store first. If the issue persists, install the full Xcode app to ensure Transporter works smoothly.
{% endhint %}

{% hint style="success" %}
Premium plan users don’t need the Transporter app or Xcode. They can [**upload their iOS app directly** ](/app/publish/publish-app-directly.md)from the Publish section of their AppMySite dashboard
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.appmysite.com/frequently-asked-questions/publishing-and-distribution/xcode-requirement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
