# Deploying an iOS app to Bitrise.io

:::note[Clear the cache]

When trying to install an app from the public install page, you should clear the cache: click the link appearing in the **If you synced your settings from your old device, you need to clear the cache and register your new device** line. The link redirects to the **Profile settings** page where you can follow the procedure described in our guide.

:::

:::important[Developer certificate and Development profile]

To deploy an iOS app to [bitrise.io](https://www.bitrise.io/), you will always need a Developer type certificate and a Development type provisioning profile. Even if you want to deploy to the App Store, these are still required: they are used to create the .xcodearchive file from the provided code in the process of exporting the IPA file.

:::

1. Generate an IPA file on your own machine at least once.
1. [Upload all necessary code signing files](/bitrise-ci/code-signing/ios-code-signing/creating-a-signed-ipa-for-xcode-projects) to Bitrise.
1. If you want your internal testers to test the app, [register test devices](/bitrise-ci/testing/testing-ios-apps/registering-a-test-device).
1. Make sure the **Xcode Archive & Export for iOS** Step is in your Workflow.
1. Set the **Automatic code signing** input to the Apple service connection you want to use for code signing. The available options are:

   - `off`if you don’t do automatic code signing.
   - `api-key`if you use [API key authorization](/bitrise-platform/integrations/apple-services-connection/about-connecting-to-apple-services).
   - `apple-id`if you use [Apple ID authorization](/bitrise-platform/integrations/apple-services-connection/about-connecting-to-apple-services).
1. Set the **Distribution method** input of the Step to `development`.

   You can use other export methods, too, but if you only deploy to Bitrise and want to install your app on the specified devices of internal testers, `development` is sufficient.
1. Make sure the [**Deploy to Bitrise.io - Build Artifacts, Test Reports, and Pipeline intermediate files**](https://github.com/bitrise-steplib/steps-deploy-to-bitrise-io) Step is in your Workflow.

   By default, the value of the **Enable public page for the App?** input is set to `true`. This way, once the build runs, a public install page will be available with a long and random URL which can be shared with others who are not registered on Bitrise. This URL is sent to the users in an email. The **Notify: User Roles** and the **Notify: Emails** inputs determine which users get the email.
1. Start a build.
1. When the build is finished, go to the app’s **Builds** page and click the latest build.
1. Click the **Artifacts** tab to find your IPA file.

   You can also find the public install URL here. Click **View artifact** next to the IPA file to open its details page, then click **Manage access** and make sure the public install link is set to **Enabled** so you’re able to send the link to non-Bitrise users.

   To install an app from the public install page, you must use a native Safari browser of the iOS device. You cannot click the installation link if you’re browsing from a third-party app. For more information, check out [Installing an .ipa file on test devices from the Artifacts tab](/bitrise-ci/deploying/ios-deployment/installing-an-ipa-file-from-the-public-install-page#installing-an-ipa-file-on-test-devices-from-the-artifacts-tab)

   ![Deploying_Android_apps_to_Bitrise_and_Google_Play.png](/img/_paligo/uuid-43ba1d01-1168-f540-9414-ace775c44ac5.png)

And that’s it! The file can now be installed on all the devices included in the app’s provisioning profile. Remember: the installation link must be accessed from an iOS device’s Safari browser!
