如何制作自己的 AltStore 或 SideStore 源

AltStore 或 SideStore 的源是让你的应用显示在这些商店里的链接。本指南将展示如何根据 AltStore 自己的开发者文档创建一个源,SideStore 也遵循同样的规则。最后核对时间:2026 年 10 月 28 日,对照了 AltStore 的 Make a Source、Updating Apps、Distribute with AltStore Classic 和 AltSource CLI 页面,以及 SideStore 的 App Sources 页面。

先说风险

  • 源只是列出应用。真正被安装的是它所链接的 IPA 文件,所以只能列出你自己开发的应用,或者你获得授权可以分享的应用。重新上传别人的付费应用属于侵犯版权。
  • 任何能编辑你的 JSON 文件或下载链接的人,都能改变用户最终安装的内容。请在托管平台上使用开启了双重验证的账户,不要链接到你无法控制的服务器上的 IPA 文件。
  • 你的用户仍然使用自己的 Apple ID 进行安装,因此免费账户的限制同样适用于他们:同时最多 3 个应用,签名有效期 7 天。
  • AltStore 会检查权限。其文档指出,它”会拒绝安装任何权限与源中声明不符的应用”,因此信息不完整的列表会导致安装失败。

什么是源

AltStore 的文档将源描述为”一个自托管的 JSON 文件,包含你应用的基本元数据”。你只需把这个文件放到任何能以稳定的 HTTPS URL 提供访问的网络主机上,再把你的 IPA 文件放在旁边,然后分享这个 URL 即可。我们的AltStore 和 SideStore 源列表中有几个源就托管在 GitHub Pages 上,或是作为 GitHub 仓库中的原始文件。

SideStore 的 App Sources 页面说,SideStore “与 AltStore Sources(即 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 必须与应用 Info.plist 中的 CFBundleIdentifier 完全一致,并且区分大小写。同一个源中不能列出两个相同的值。
version 和 buildVersion 必须与 Info.plist 中的 CFBundleShortVersionString 和 CFBundleVersion 一致。
downloadURL 对于 AltStore Classic,这是已上传的 .ipa 文件的 URL。
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。

要读取你所构建的 IPA 中的 Info.plist 值,可以将副本重命名为 .zip,打开 Payload/YourApp.app/Info.plist,然后复制上面提到的三个值。如果你还需要制作 IPA 本身,可参考如何从任意应用创建自己的 IPA 文件。

分步操作

  1. 构建你的应用并导出 .ipa 文件。
  2. 将 .ipa 上传到你自己管理的服务器,并复制它的直接下载 URL。
  3. 编写 JSON 文件,或者从 Make a Source 页面下载 AltStore 针对 AltStore Classic 提供的示例源文件后再进行编辑。
  4. 填写 Info.plist 中的值、以字节为单位的大小,以及完整的权限列表。
  5. 上传 JSON 文件,并在浏览器中打开它的 URL,检查它是否能作为纯 JSON 正常加载。
  6. 在 AltStore 或 SideStore 中添加该 URL,并在真实设备上测试安装,确认无误后再分享该链接。

帮你自动生成的工具

  • altsource(适用于 macOS 的 AltServer)。 AltStore 的文档说,适用于 macOS 的 AltServer 内置了一个测试版命令行工具,位于 AltServer.app/Contents/MacOS/altsource。altsource new --ipa 可以根据 IPA 创建一个 source,altsource update 则用于添加应用或新版本。
  • AltPublisher。 AltStore 的文档把它称为一款”由社区开发的工具”,用于生成 source。
  • AltStudio 和 AltSource Browser。 SideStore 的文档列出了这些社区工具。文档提醒,在 AltStudio 生成 source 之后,必须删除它自动生成的 marketplaceID 和 Build 字段,”否则 SideStore 会认为这是一个经过公证的 source,从而阻止它被添加”。

这些社区工具并非由 AltStore 或 SideStore 官方制作。在发布之前,请先检查它们生成的 JSON 内容。

发布更新

要发布新版本,先上传新的 IPA,然后在应用 versions 列表的开头新增一条条目。AltStore 的”更新应用”页面说,它会把列表中的第一条条目与已安装版本进行比较,”不会使用日期来判断是否有更新版本”。每条条目的 version 或 buildVersion 都必须不同。用户仍然需要自行安装更新,这一点我们在iPhone 上的侧载应用更新自动化这篇指南中有详细介绍。

分享你的 Source

SideStore 的文档提供了一种一键链接的格式:sidestore://source?url= 加上你的 source 网址。文档指出,如果用户没有安装 SideStore,这个链接会导致闪退,所以也要把纯文本网址提供给大家,方便他们粘贴到 Sources 标签页中。

关于 AltStore PAL 的说明

AltStore PAL,也就是欧盟版本,使用的是 Apple ADP 格式下经过公证的应用,需要 marketplaceID 和一个清单(manifest)网址,而不是单纯的 IPA 链接。这需要一个注册过的 Apple 开发者账号以及 Apple 的公证流程,因此和制作侧载 source 是完全不同的工作。SideStore 不会添加经过公证的 source。如果你分享的是 IPA 文件,请针对 AltStore Classic 来构建。

常见问题

我可以把 source 托管在 GitHub 上吗?

可以。source 本质上就是一个静态 JSON 文件。GitHub Pages 以及仓库中的原始文件(raw files)都可以提供这类服务,目前已有不少公开的 source 就是这样运作的。

为什么 AltStore 拒绝从我的源安装应用?

文档中最常见的原因是权限不匹配:appPermissions 列表必须包含 IPA 使用的每一个权限和隐私密钥。bundleIdentifier 或版本字符串填写错误也会导致问题。

为什么我的用户看不到更新?

可能是新版本没有排在 versions 列表的第一位,或者它的版本号和构建号与旧版本相同,又或者它的 minOSVersion 高于用户的 iOS 版本。

Scarlet 能使用我的 AltStore 源吗?

Scarlet 使用自己的仓库格式,并通过共享的企业证书对应用进行签名,所以它是一个独立的系统。参见我们的IPA 库与仓库指南。Scarlet 已确认支持 iOS 14 到 iOS 26;第三方报告称其支持 iOS 27,但尚未得到官方确认。

类似文章