Как создать собственный источник AltStore или SideStore
Источник (source) для AltStore или SideStore – это ссылка, благодаря которой ваши приложения появляются внутри этих магазинов. В этом руководстве показано, как создать его на основе официальной документации разработчиков AltStore, которой также следует SideStore. Дата последней проверки: 28 октября 2026 г., по страницам AltStore Make a Source, Updating Apps, Distribute with AltStore Classic и AltSource CLI, а также странице App Sources от SideStore.
Сначала о рисках
- Источник только перечисляет приложения. Устанавливаются именно те IPA-файлы, на которые он ссылается, поэтому указывайте в списке только приложения, которые вы создали сами или имеете право распространять. Повторная загрузка чужих платных приложений – это нарушение авторских прав.
- Любой, кто может редактировать ваш JSON-файл или ссылки для скачивания, способен изменить то, что устанавливают ваши пользователи. Используйте учётную запись с двухфакторной аутентификацией на хостинге и не ссылайтесь на IPA-файлы на серверах, которые вам не подконтрольны.
- Ваши пользователи всё равно устанавливают приложения под своим собственным Apple ID, поэтому на них распространяются ограничения бесплатной учётной записи: 3 приложения одновременно и подпись сроком на 7 дней.
- AltStore проверяет разрешения. В документации указано, что приложение “will refuse to install any app whose permissions do not match” (откажется устанавливать любое приложение, разрешения которого не совпадают) с тем, что указано в источнике, поэтому неполный список приведёт к сбоям установки.
Что такое источник
В документации AltStore источник описывается как “just a self-hosted JSON file containing basic metadata about your apps” (просто самостоятельно размещённый JSON-файл с базовыми метаданными о ваших приложениях). Вы размещаете этот файл на любом веб-хостинге, который предоставляет его по стабильному HTTPS-адресу, выкладываете рядом с ним ваши IPA-файлы и делитесь ссылкой. Несколько источников из нашего списка источников AltStore и SideStore размещены на GitHub Pages или как необработанный файл в репозитории GitHub.
На странице App Sources от SideStore указано, что SideStore “is fully compatible with AltStore Sources (or AltSources)” (полностью совместим с источниками AltStore, или AltSources), и даётся ссылка на документацию AltStore по этому формату. Таким образом, один файл источника подходит для обоих магазинов, если вы создаёте его по стандарту AltStore Classic (см. примечание о PAL ниже).
Это не файл sources.list. Такой формат используется для менеджеров пакетов джейлбрейка, таких как Cydia и Sileo, и не работает в AltStore или SideStore.
Минимальный файл источника
В документации AltStore ключи уровня источника, которые не отмечены как необязательные, это name, nsfw, apps и news. Вот небольшой рабочий пример для одного приложения, составленный на основе примеров из документации AltStore:
{
"name": "My Example Source",
"subtitle": "A source for all of my apps",
"iconURL": "https://example.com/source_icon.png",
"website": "https://example.com",
"nsfw": false,
"apps": [
{
"name": "My Example App",
"bundleIdentifier": "com.example.myapp",
"developerName": "Example Developer",
"localizedDescription": "What the app does.",
"iconURL": "https://example.com/myapp_icon.png",
"versions": [
{
"version": "1.0",
"buildVersion": "1",
"date": "2026-10-28",
"downloadURL": "https://example.com/myapp-1.0.ipa",
"size": 79821,
"minOSVersion": "14.0"
}
],
"appPermissions": {
"entitlements": [],
"privacy": {}
}
}
],
"news": []
}
Ключевые параметры, которые важнее всего
| Ключ | Что говорит об этом документация AltStore |
|---|---|
bundleIdentifier |
Должен точно совпадать с CFBundleIdentifier в Info.plist приложения, с учётом регистра. В одном источнике не может быть двух приложений с одинаковым идентификатором. |
version и buildVersion |
Должны совпадать с CFBundleShortVersionString и CFBundleVersion в Info.plist. |
downloadURL |
Для AltStore Classic, это URL загруженного файла .ipa. |
size |
Размер приложения в байтах, который отображается пользователям на странице в сторе. |
date |
Дата выпуска в формате ISO 8601, например 2026-10-28. |
minOSVersion / maxOSVersion |
Необязательно. AltStore скрывает обновления, которые устройство не может запустить. В документации указано, что большинству приложений не стоит задавать максимальную версию. |
appPermissions |
Каждое разрешение (entitlement) и каждый ключ “UsageDescription” для приватности в приложении. AltStore сверяет их с загруженным IPA. |
marketplaceID |
Только для нотаризованных приложений AltStore PAL. Для AltStore Classic не требуется. |
category |
Необязательно. Один из вариантов: developer, entertainment, games, lifestyle, other, photo-video, social или utilities. |
Чтобы прочитать значения Info.plist из собранного вами IPA, переименуйте копию файла в .zip, откройте Payload/YourApp.app/Info.plist и скопируйте три указанных выше значения. Если вам всё ещё нужен сам IPA, посмотрите, как создать собственный файл IPA.
Пошаговая инструкция
- Соберите приложение и экспортируйте файл .ipa.
- Загрузите .ipa на хостинг, которым вы управляете, и скопируйте прямую ссылку для скачивания.
- Напишите JSON-файл или скачайте пример источника AltStore для AltStore Classic со страницы Make a Source и отредактируйте его.
- Заполните значения из Info.plist, размер в байтах и полный список разрешений.
- Загрузите JSON-файл и откройте его URL в браузере, чтобы убедиться, что он загружается как обычный JSON.
- Добавьте URL в AltStore или SideStore и проверьте установку на реальном устройстве, прежде чем делиться ссылкой.
Инструменты, которые заполнят всё за вас
- altsource (AltServer для macOS). В документации AltStore говорится, что AltServer для macOS включает бета-инструмент командной строки, расположенный по пути
AltServer.app/Contents/MacOS/altsource. Командаaltsource new --ipaсоздаёт source из IPA, аaltsource updateдобавляет приложение или новую версию. - AltPublisher. В документации AltStore он упоминается как “созданный сообществом инструмент” для генерации source.
- AltStudio и AltSource Browser. В документации SideStore перечислены эти инструменты от сообщества. В ней предупреждается, что после того как AltStudio создаст source, нужно удалить автоматически сгенерированные поля
marketplaceIDи Build, “иначе SideStore посчитает его нотаризованным source и не позволит его добавить”.
Инструменты от сообщества не разрабатываются AltStore или SideStore. Перед публикацией проверяйте JSON, который они создают.
Публикация обновлений
Чтобы выпустить новую версию, загрузите новый IPA и добавьте новую запись в начало списка versions приложения. На странице AltStore про обновление приложений сказано, что система сравнивает первую запись с установленной версией и “не использует даты для определения того, есть ли более новая версия”. У каждой записи должно быть своё значение version или buildVersion. Пользователям всё равно нужно устанавливать обновление самостоятельно, это описано в нашем руководстве по обновлению сайдлоаднутых приложений.
Как поделиться своим source
В документации SideStore приведён формат ссылки для добавления в один тап: sidestore://source?url=, после которого идёт URL вашего source. Там отмечается, что эта ссылка вызывает сбой, если SideStore не установлен, поэтому также стоит давать людям обычный URL, чтобы вставить его во вкладку Sources.
Замечание об AltStore PAL
AltStore PAL, версия для ЕС, использует нотаризованные приложения в формате ADP от Apple и требует marketplaceID и URL манифеста вместо обычной ссылки на IPA. Для этого нужен зарегистрированный аккаунт разработчика Apple и нотаризация от Apple, так что это совсем другая задача, отличная от создания source для сайдлоадинга. SideStore не добавит нотаризованный source. Если вы распространяете файлы IPA, собирайте source для AltStore Classic.
FAQ
Можно ли разместить source на GitHub?
Да. Source представляет собой статический JSON-файл. Его можно разместить через GitHub Pages или как raw-файл в репозитории, именно так работают несколько публичных source.
Почему AltStore отказывается устанавливать приложение из моего источника?
Самая частая причина, согласно документации, это несоответствие разрешений: список appPermissions должен включать каждое entitlement и ключ конфиденциальности, который использует IPA. Неверный bundleIdentifier или строка версии также вызывают проблемы.
Почему мои пользователи не видят обновление?
Скорее всего, новая версия не стоит первой в списке versions, у неё совпадают версия и build со старой, либо её minOSVersion выше, чем версия iOS у пользователей.
Может ли Scarlet использовать мой источник AltStore?
Scarlet использует собственный формат репозитория и подписывает приложения общим enterprise-сертификатом, поэтому это отдельная система. См. наше руководство по библиотекам и репозиториям IPA. Работа Scarlet подтверждена на iOS 14 – iOS 26; поддержка iOS 27 упоминается третьими лицами, но официально не подтверждена.