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で配信できる任意のWebホストに置き、その隣にIPAファイルをアップロードして、URLを共有する仕組みです。AltStoreおよびSideStoreのソース一覧に掲載されているいくつかのソースは、GitHub Pagesまたは GitHubリポジトリ内のrawファイルとしてホストされています。

SideStoreのApp Sourcesページには、SideStoreは「AltStoreのソース(AltSources)と完全に互換性がある」と記載されており、フォーマットについてはAltStoreのドキュメントが参照先として案内されています。つまり、AltStore Classic向けに作成されたソースファイルであれば(下記のPALに関する注記を参照)、1つのファイルで両方のストアに対応できます。

これはsources.listファイルではありません。この形式はCydiaやSileoといったジェイルブレイク用パッケージマネージャー向けのもので、AltStoreやSideStoreでは機能しません。

最小限のソースファイル

AltStoreのドキュメントでは、ソースレベルのキーのうち必須(オプションではない)とされているのはname、nsfw、apps、newsです。以下は、AltStoreのドキュメントの例をもとに作成した、アプリ1つ分の小さな動作例です。

{
  "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と完全に一致している必要があり、大文字小文字も区別されます。1つのソースに同じIDのアプリを2つ記載することはできません。
versionとbuildVersion Info.plist内のCFBundleShortVersionStringおよびCFBundleVersionと一致している必要があります。
downloadURL AltStore Classicの場合、アップロードされた.ipaファイルのURLです。
size アプリサイズ(バイト単位)で、ストアページでユーザーに表示されます。
date ISO 8601形式でのリリース日(例:2026-10-28)です。
minOSVersion / maxOSVersion 任意項目です。AltStoreはデバイスが実行できないアップデートを非表示にします。ドキュメントでは、ほとんどのアプリで最大値を設定すべきではないと警告されています。
appPermissions アプリ内のすべてのエンタイトルメントと、すべてのプライバシー「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を開いて、上記の3つの値をコピーしてください。IPA自体がまだ必要な場合は、自分でIPAファイルを作成する方法をご覧ください。

手順

  1. アプリをビルドして、.ipaファイルをエクスポートします。
  2. .ipaを自分で管理しているホストにアップロードし、その直接ダウンロードURLをコピーします。
  3. JSONファイルを作成するか、Make a SourceページからAltStore ClassicのAltStoreのサンプルソースをダウンロードして編集します。
  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からソースを作成し、altsource updateはアプリまたは新しいバージョンを追加します。
  • AltPublisher。 AltStoreのドキュメントでは、ソースを生成するための「コミュニティ製ツール」として紹介されています。
  • AltStudioとAltSource Browser。 SideStoreのドキュメントには、これらのコミュニティツールが掲載されています。AltStudioがソースを作成した後は、自動生成されたmarketplaceIDとBuildフィールドを削除する必要があると注意書きがあります。「そうしないと、SideStoreはそれをnotarized sourceだと認識し、ソースの追加をブロックしてしまいます」とのことです。

コミュニティツールはAltStoreやSideStoreが作成したものではありません。公開する前に、生成されたJSONを必ず確認してください。

更新の公開

新しいバージョンを配信するには、新しい IPA をアップロードし、アプリの versions リストの先頭に新しいエントリーを追加します。AltStore の Updating Apps ページによると、最初のエントリーとインストール済みのバージョンを比較する仕組みになっており、「新しいバージョンかどうかの判定に日付は使用しない」とされています。各エントリーには異なる version または buildVersion を設定する必要があります。ユーザー自身がアップデートをインストールする必要がありますが、この点については サイドロードしたアプリの更新 に関するガイドで解説しています。

ソースの共有

SideStore のドキュメントでは、ワンタップリンクの形式として sidestore://source?url= の後にソースの URL を続ける方法が紹介されています。SideStore がインストールされていない場合、このリンクはクラッシュしてしまうため、Sources タブに貼り付けられるよう通常の URL も合わせて伝えるようにとの注意があります。

AltStore PALに関する注意事項

AltStore PAL、つまりEU版は、Appleの ADP 形式でノータライズされたアプリを使用し、通常のIPAリンクの代わりにmarketplaceIDとマニフェストURLが必要です。これには登録済みのApple開発者アカウントとAppleによるノータライズが必要なため、ソースのサイドロードとは異なる作業になります。SideStoreはノータライズされたソースを追加しません。IPAファイルを共有する場合は、AltStore Classic向けにビルドしてください。

よくある質問

GitHubでソースをホストできますか?

はい。ソースは静的なJSONファイルです。GitHub Pagesやリポジトリ内のrawファイルのどちらでも配信でき、公開されている複数のソースがこの方法を使っています。

なぜAltStoreは自分のソースからのアプリのインストールを拒否するのですか?

公式ドキュメントで最もよく挙げられている原因は権限の不一致です。appPermissionsのリストには、IPAが使用するすべてのエンタイトルメントとプライバシーキーを含める必要があります。bundleIdentifierやバージョン文字列が誤っている場合も問題が発生します。

なぜユーザーにアップデートが表示されないのですか?

おそらく新しいバージョンがversionsリストの先頭にない、古いバージョンと同じバージョン・ビルド番号になっている、あるいはminOSVersionがユーザーのiOSバージョンより高い設定になっていることが原因です。

Scarletは私のAltStoreソースを利用できますか?

Scarletは独自のリポジトリ形式を使用しており、共有エンタープライズ証明書でアプリに署名するため、別のシステムとなっています。詳しくはIPAライブラリとリポジトリのガイドをご覧ください。Scarletの動作はiOS 14からiOS 26まで確認されています。iOS 27での対応については第三者からの報告はあるものの、公式には確認されていません。

類似投稿