# ☕️ Buy Coffee for Developer: как я добавлял донат в iOS-игру «3+2–1»
Программисты любят кофе.
Программисты очень любят кофе.
Но если быть честным — программисты любят донаты ещё больше 😄
В этой статье я расскажу, как добавлял донат «Buy Coffee for Developer» в свою математическу iOS-игру «3+2–1»: от идеи до полностью одобренной Apple встроенной покупки.
Зачем вообще донат?
Игра «3+2–1» бесплатная: без подписок, без paywall, без ограничений.
Но если пользователь хочет сказать «спасибо» — донат отлично решает эту задачу.
Apple разрешает донаты, если:
- покупка не даёт преимуществ
- она честно описана
- используется тип Consumable
Как это выглядит в приложении
Кнопка *Buy Coffee for Developer* открывает модальное окно с описанием, ценой $0.99 и системным экраном оплаты.
Создание In-App Purchase в App Store Connect
Путь: My Apps → In-App Purchases
Тип покупки:
- ✅ Consumable (расходуемая)
Обязательно нужно заполнить:
- Product ID
- Название
- Описание (зачем покупка)
- Цена
- Скриншот использования в приложении
Скриншот — обязателен
Apple требует скриншот, показывающий:
- где используется покупка
- что пользователь понимает, за что платит
Без этого покупку легко отклоняют.
Ревью и публикация
Важно:
- покупка проходит ревью отдельно
- публикуется только вместе с новой версией приложения
- покупку нужно прикрепить к новой версии
Тестирование через Sandbox
Sandbox-пользователь Создаётся в AppleStoreConnect: Users and Access → Sandbox Testers.
Требования:
- email не Apple ID
- к почте есть доступ (придёт код)
- email ранее не использовался в App Store
Тестирование на реальном устройстве
❗ **Важно** Для тестирования НЕ нужно логиниться этим аккаунтом в Apple ID.
Правильный путь:
1. Настройки → Разработчик
2. Тестовый аккаунт Apple
3. Добавить Sandbox-пользователя
Этот аккаунт используется только для проверки платежей, войти под ним в iCloud нельзя.
Тестирование в симуляторе (через StoreKit Configuration)
Для симулятора удобнее и быстрее использовать StoreKit Configuration файл.
Шаги:
1. В Xcode выберите
**File → New → File → StoreKit Configuration File**
2. Назовите файл, например:
`SandboxConfig.storekit`
3. Добавьте в конфиг:
- In-App Purchase
- тип Consumable
- Product ID, который полностью совпадает с App Store Connect
4. (Опционально) настройте сценарии ошибок или успешных покупок
Подключение к схеме:
1. Откройте Edit Scheme
2. В разделе Run → Options
3. В поле StoreKit Configuration выберите
`SandboxConfig.storekit`
4. Запустите приложение в симуляторе
После этого покупки будут работать **без логина**, полностью локально, но максимально приближённо к реальному поведению StoreKit.
Частые проблемы
- ❗ Product ID не совпадает с кодом
- ❗ Покупка не опубликована или не прикреплена к версии
- ❗ App Store Connect «тупит» и не обновляет статус
Если ревью отклонили:
- проверьте описание
- уберите любые намёки на бонусы
- при необходимости пересоздайте покупку с новым ID
☕ Если статья была полезна
👉 **Можно скачать игру и купить кофе разработчику внутри приложения.
iOS Math game 3+2–1
А, если статья наберет лайков столько, сколько чашек кофе выпивает разработчик за неделю — обещаю написать продолжение:
**«Как принимать донаты на биткоин-кошелёк»** 😄