iOS
App Store
Mobile Development

Where to Put the EULA for iOS Apps Implementing Subscriptions

August 15, 2024Max Mannstein

Introduction

If you've ever submitted an iOS app with auto-renewable subscriptions to the App Store, you probably know the frustration of getting rejection messages from the review team. In this post, I'll walk you through exactly where you need to place your EULA (End User License Agreement) and privacy policy links — both in your App Store Connect metadata and inside your app binary — so you can pass the review process without the unnecessary back-and-forth.

This is specifically aimed at apps that implement subscriptions. Apple's Guideline 3.1.2 (Business - Payments - Subscriptions) requires you to provide functional links to both your EULA and privacy policy. Let me show you how.

Understanding Binary vs. Metadata

Before diving in, it's important to understand two terms that Apple's reviewers frequently use: binary and metadata.

  • Metadata refers to all the information you provide about your app in App Store Connect — this includes your app description, screenshots, keywords, and other details shown on your app's product page.

  • Binary refers to the actual code of your app — the build you upload to App Store Connect. When reviewers mention something is missing in the binary, they mean it needs to be inside the app itself.

This distinction matters because Apple requires the EULA and privacy policy links to be present in both places.

Where to Put the EULA and Privacy Policy in the Metadata

First, here is the link to the standard Apple EULA: https://www.apple.com/legal/internet-services/itunes/dev/stdeula/

You need to place the EULA in two locations within App Store Connect:

1. License Agreement in App Information

Navigate to your app in App Store Connect and go to App Information under the General section. Scroll down to find the License Agreement ("Lizenzvertrag") setting. Here, select the Standard Apple License Agreement — and you're done with this part.

License Agreement setting in App Store Connect — select the Standard Apple License Agreement here.

2. EULA Link in the App Description

Here's where it gets tricky. You would think that setting the License Agreement above would be enough — I certainly did. But after submitting, you'll likely receive a rejection like this:

Apple review rejection citing Guideline 3.1.2 — the submission did not include all required information for apps offering auto-renewable subscriptions.

The review message states that your app metadata must include functional links to the privacy policy and Terms of Use (EULA). The fix is straightforward: you need to paste the EULA link directly into your app description inside App Store Connect.

Simply add the link at the end of your description text and resubmit. That's it.

App description in App Store Connect with the EULA link added at the bottom.

I spent about five days going back and forth before I figured this out. Hopefully this saves you that time.

Where to Put the EULA and Privacy Policy in the Binary

This part is more straightforward. Apple requires that functional links to the EULA and privacy policy are accessible within your app itself. The best places to put them:

  • On your paywall / subscription screen — this is the ideal location since it's directly related to the purchase flow
  • In your settings page — a common alternative that also satisfies the requirement

The key point is that the links need to be tappable and lead to the actual EULA and privacy policy pages. As long as they're present and functional inside the app, you're good to go.

App Store Connect overview showing the app version ready for submission.

Summary

To pass Apple's review for apps with auto-renewable subscriptions, make sure to place your EULA and privacy policy links in these three locations:

  1. License Agreement in App Store Connect → App Information → set to Standard Apple License Agreement
  2. App Description in App Store Connect → paste the EULA link at the end of your description text
  3. Inside your app → on the paywall and/or settings page

That's all there is to it. The process is simple once you know where everything goes — the hard part is figuring that out in the first place.