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

Last modified on November 09, 2020

AltStore is an alternative app retailer for non-jailbroken iOS devices.

Swift Version
License: AGPL v3
PRs Welcome

AltStore is an iOS software that lets you sideload different apps (.ipa recordsdata) onto your iOS instrument with sincere acceptable your Apple ID. AltStore resigns apps along with your non-public kind certificates and sends them to a desktop app, AltServer, which installs the resigned apps encourage to your instrument using iTunes WiFi sync. To discontinue apps from expiring, AltStore will moreover periodically refresh your apps within the background when on the identical WiFi as AltServer.

For the preliminary launch, I indignant about constructing a strong basis for distributing my possess apps — primarily Delta, my all-in-one emulator for iOS. Now that Delta has been launched, alternatively, I'm beginning construct work on including toughen for anyone to guidelines and distribute their apps by AltStore (contributions welcome! 🙂).

Aspects

  • Resigns and installs any app along with your Apple ID
  • Installs apps over WiFi using AltServer
  • Refreshes apps periodically within the background to discontinue them from expiring (when on an identical WiFi as AltServer)
  • Handles app updates straight by AltStore

Necessities

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

Why iOS 12.2+ and macOS 10.14.4+? Doing so allows me to distribute all AltStore apps with out embedding Swift libraries interior them. This helps me take pleasure in ample cash bandwidth prices by decreasing obtain sizes by roughly 30%, however moreover noticeably improves how lengthy it takes to place in/refresh apps with AltStore. Must you might be compiling AltStore and/or AltServer your self, alternatively, you have to be succesful to decrease their deployment targets to iOS 12.Zero and macOS 10.14.0, respectively, with none factors.

Mission Overview

AltStore

AltStore is sincere acceptable a preferred, sandboxed iOS software. The AltStore app goal accommodates the astronomical majority of AltStore's performance, together with the complete common sense for downloading and updating apps by AltStore. AltStore makes heavy make the most of of long-established iOS frameworks and utilized sciences most iOS builders are acquainted with, much like:

  • Core Data
  • Storyboards/Nibs
  • Auto Format
  • Background App Refresh
  • Community.framework (up to date in iOS 12)

AltServer

AltServer is moreover sincere acceptable a preferred, sandboxed macOS software. AltServer is severely a lot much less superior than AltStore regardless of the reality that, and for that purpose consists of fully a handful of recordsdata.

AltKit

AltKit is a shared framework that entails well-liked code between AltStore and AltServer.

AltSign

AltSign is my interior framework frail by each AltStore and AltServer to speak with Apple's servers and resign apps. For extra recordsdata, take a look at the AltSign repo.

Roxas

Roxas is my interior framework frail throughout all my iOS initiatives, developed to simplify a variety of well-liked initiatives frail in iOS kind. For extra recordsdata, take a look at the Roxas repo.

Compilation Instructions

AltStore and AltServer are each barely straightforward to assemble and dawdle when you waste up already an iOS or macOS developer. To assemble AltStore and/or AltServer:

  1. Clone the repository
    git clone https://github.com/rileytestut/AltStore.git
    
  2. Update submodules:
    cd AltStore 
    git submodule replace --init --recursive
    
  3. Delivery AltStore.xcworkspace and retract out the AltStore mission within the mission navigator. On the Signing & Capabilities tab, commerce the crew from Yvette Testut to your possess account.
  4. (AltStore fully) Substitute the worth for ALTDeviceID within the Data.plist to your instrument's UDID. Most repeatedly, AltServer embeds the instrument's UDID in AltStore's Data.plist in the middle of arrange. When working by Xcode you will should construct the worth your self or else AltStore may perchance effectively additionally now not resign (and even set up) apps for the like minded instrument.
  5. (AltStore fully) Substitute the worth for ALTServerID within the Data.plist to your AltServer's serverID. This is embedded by AltServer in the middle of set as much as succor AltStore distinguish between a pair of AltServers on the identical neighborhood, and likewise you will additionally decide up this by using a Bonjour having a see software and noting the serverID marketed by AltServer. This is now not strictly a truly nice, as a result of if AltStore can now not decide up the AltServer with the embedded serverID it mute falls encourage to creating an attempt one different AltServer. Alternatively, this will succor in circumstances the construct there are a pair of AltServers working (plus the error messages are extra treasured).
  6. (AltServer fully) Set up Carthage (when you make the most of Homebrew, you will additionally construct this with brew set up carthage). Then dawdle carthage replace within the muse listing of the repository.
  7. Fabricate + dawdle app! 🎉

Licensing

Due to the licensing of some dependencies frail by AltStore, I salvage now not take pleasure in any choice however to distribute AltStore beneath the AGPLv3 license. That being mentioned, my unbiased for AltStore is for it to be an open supply mission anyone can make the most of with out restrictions, so I explicitly give permission for anyone to make make the most of of, modify, and distribute all my long-established code for this mission in any diagram, with or with out attribution, with out hazard of first-rate penalties (dependencies stay beneath their long-established licenses, alternatively).

Contact Me

  • Email: riley@rileytestut.com
  • Twitter: @rileytestut

Questions about AltStore in customary? Fabricate certain to be taught the FAQ at https://altstore.io/faq/

Read More

Similar Products:

Recent Content