Buy Me a Coffee button for iOS

Swift framework to embed native Buy Me a Coffee button.


When we’ve build Timizer, Buy Me a Coffee was the best way to monetize our application without adding payment funnel or managing subscriptions. Buy Me a Coffe platform comes with a button generator for web integration:

That’s why we’ve thought that could be a nice idea to develop this button generator for our Swift projects. We’ve done it for UIKit, by customizing a UIButton with official colors & images provided by the site. The button is linked to a Safari webview presented when tapped on the button.

Here is the introducing tweet:



  • Apple Pay
  • iCloud Keychain


CocoaPods Swift Package Manager
Swift 5.0 Swift 5.3
Xcode 11.x Xcode 12.x

App Store Review

These are the two App Store Review Guidelines articles you have to know before using this framework:

3.1.1 In-App Purchase:

  • Apps may use in-app purchase currencies to enable customers to “tip” digital content providers in the app.

3.2.1 Acceptable:
(vii) Apps may enable individual users to give a monetary gift to another individual without using in-app purchase, provided that (a) the gift is a completely optional choice by the giver, and (b) 100% of the funds go to the receiver of the gift. However, a gift that is connected to or associated at any point in time with receiving digital content or services must use in-app purchase.

Implement Buy Me a Coffee

  1. Import the BuyMeACoffee framework in your UIApplicationDelegate:
    import BuyMeACoffee
  2. Configure the BMCManager shared instance with the username you’ve chosen on, typically in your app’s application:didFinishLaunchingWithOptions: method:
    BMCManager.shared.configure(username: "appcraftstudio")
  3. In the view controller, override the viewDidLoad method to set the presenting view controller of the BMCManager object.
    BMCManager.shared.presentingViewController = self
    // You can also set a custom thank you message
    BMCManager.shared.thankYouMessage = "Thank you for supporting 🎉 App Craft Studio !"
  4. Add a BMCButton to your storyboard, XIB file, or instantiate it programmatically. To add the button to your storyboard or XIB file, add a View and set its custom class to BMCButton.
  5. Optional: If you want to customize the button, do the following:
    let button = BMCButton(configuration: .default)
    button.configuraton = .init(color: .orange, font: .cookie)

(Optional) Configure In-App Purchase

Depending the legal receiver of the gift configured on Buy Me a Coffee, App Store reviewers can ask for In-App Purchase implementation.
If the following In-App Purchase if configured for your application, it will be displayed as primary flow when user tap on the BMCButton.

If the framework can’t retrieve In-App Purchase informations, the web flow will be used as fallback.

App Store Connect

Go to App Store Connect, search for the In-App Purchases section of your app, and then, create a new one with the following informations:

Type Consumable
Reference Name Buy Me a Coffee
Product ID
Cleared for Sale :white_check_mark:
Price Tier 4
Display Name Buy Me a Coffee
Description Hey there! You can now buy me a coffee!
Promotional Image download here
Review Screenshot download here
Review Notes Buy Me a Coffee enable customers to “tip” digital content providers in the app.


  1. Select the current workspace in the project navigator.
  2. Then, select the app target in the left panel.
  3. Go to the Signing & Capabilities tab.
  4. Add the In-App Purchase capability.



You want to add pod 'BuyMeACoffee', '~> 1.0' similar to the following to your Podfile:

target 'MyApp' do
  pod 'BuyMeACoffee', '~> 1.0'

Then run a pod install inside your terminal, or from

Swift Package Manager

  1. Using Xcode 11 or above go to File > Swift Packages > Add Package Dependency
  2. Paste the project URL:
  3. Click on next and select the project target

Buy Me a Coffee button for iOS - Swift code to add Buy Me a Coffee button in your iOS apps | Product Hunt
Open in GitHub