AltStore: An alternative app store for non-jailbroken iOS devices

AltStore is an change app store for non-jailbroken iOS devices.

Swift Version
License: AGPL v3
PRs Welcome

AltStore is an iOS utility that helps you to sideload other apps (.ipa files) onto your iOS tool with real your Apple ID. AltStore resigns apps along with your individual fashion certificates and sends them to a desktop app, AltServer, which installs the resigned apps relieve to your tool the usage of iTunes WiFi sync. To pause apps from expiring, AltStore will also periodically refresh your apps within the background when on the same WiFi as AltServer.

For the initial liberate, I targeted on building a accumulate foundation for distributing my like apps — basically Delta, my all-in-one emulator for iOS. Now that Delta has been released, nonetheless, I’m initiating work on including give a enhance to for someone to list and distribute their apps via AltStore (contributions welcome! 🙂).

Beneficial properties

  • Resigns and installs any app along with your Apple ID
  • Installs apps over WiFi the usage of AltServer
  • Refreshes apps periodically within the background to pause them from expiring (when on same WiFi as AltServer)
  • Handles app updates at as soon as via AltStore


  • Xcode 11
  • iOS 12.2+ (AltStore)
  • macOS 10.14.4+ (AltServer)
  • Swift 5+

Why iOS 12.2+ and macOS 10.14.4+? Doing so enables me to distribute all AltStore apps with out embedding Swift libraries inside them. This helps me present you with the money for bandwidth charges by reducing receive sizes by roughly 30%, nonetheless also noticeably improves how long it takes to install/refresh apps with AltStore. Would perhaps grasp to you may maybe presumably very effectively be compiling AltStore and/or AltServer your self, nonetheless, you desires to be ready to lower their deployment targets to iOS 12.0 and macOS 10.14.0, respectively, with out any disorders.

Venture Overview


AltStore is real a usual, sandboxed iOS utility. The AltStore app plan accommodates the overwhelming majority of AltStore’s efficiency, including the entire common sense for downloading and updating apps via AltStore. AltStore makes heavy employ of usual iOS frameworks and applied sciences most iOS developers are conversant in, a lot like:

  • Core Files
  • Storyboards/Nibs
  • Auto Layout
  • Background App Refresh
  • Network.framework (recent in iOS 12)


AltServer is also real a usual, sandboxed macOS utility. AltServer is deal less complex than AltStore despite the indisputable truth that, and for that reason includes most intelligent a handful of files.


AltKit is a shared framework that contains total code between AltStore and AltServer.


AltSign is my inside framework outdated by each and each AltStore and AltServer to talk with Apple’s servers and resign apps. For more data, check the AltSign repo.


Roxas is my inside framework outdated at some level of all my iOS projects, developed to simplify a range of total projects outdated in iOS fashion. For more data, check the Roxas repo.

Compilation Instructions

AltStore and AltServer are each and each somewhat straightforward to bring together and lag while you may maybe presumably very effectively be already an iOS or macOS developer. To bring together AltStore and/or AltServer:

  1. Clone the repository
    git clone
  2. Replace submodules:
    cd AltStore 
    git submodule update --init --recursive
  3. Originate AltStore.xcworkspace and clutch the AltStore project within the project navigator. On the Signing & Capabilities tab, exchange the team from Yvette Testut to your like fable.
  4. (AltStore most intelligent) Alternate the price for ALTDeviceID within the Files.plist to your tool’s UDID. Typically, AltServer embeds the tool’s UDID in AltStore’s Files.plist at some level of installation. When running via Xcode you may maybe presumably wish to whisper the price your self or else AltStore couldn’t resign (or even install) apps for the honorable tool.
  5. (AltStore most intelligent) Alternate the price for ALTServerID within the Files.plist to your AltServer’s serverID. This is embedded by AltServer at some level of installation to assist AltStore distinguish between more than one AltServers on the same community, and likewise yow will uncover this by the usage of a Bonjour searching utility and noting the serverID marketed by AltServer. This is no longer strictly valuable, because if AltStore can not gather the AltServer with the embedded serverID it tranquil falls relieve to trying some other AltServer. Alternatively, this can assist in instances the save there are more than one AltServers running (plus the error messages are more apt).
  6. (AltServer most intelligent) Set up Carthage (while you utilize Homebrew, you may maybe presumably presumably manufacture this with brew install carthage). Then lag carthage update within the muse directory of the repository.
  7. Form + lag app! 🎉


As a result of licensing of some dependencies outdated by AltStore, I make no longer grasp any change nonetheless to distribute AltStore under the AGPLv3 license. That being stated, my plan for AltStore is for it to be an open source project someone can employ with out restrictions, so I explicitly give permission for somebody to employ, adjust, and distribute all my fashioned code for this project in any invent, with or with out attribution, with out dread of like minded penalties (dependencies remain under their fashioned licenses, nonetheless).

Contact Me

  • Electronic mail:
  • Twitter: @rileytestut

Questions about AltStore usually? Make certain to learn the FAQ at

Read More

Recent Content