Skip to content

Update error codes + SideStore 0.6.2 #147

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 21 commits into from
Jul 2, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 3 additions & 11 deletions docs/advanced/anisette.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,13 @@ With this, it is **highly recommended** to use a v3 server for normal use of Sid

Anisette data is information used in the app signing process that needs to be generated each time you install or refresh apps. SideStore gets this information from a server that spoofs a Mac and sends you back the anisette data. No account info is sent to the server ever in this process.

When many people use the same Anisette server (specifically a v1 server), it trips Apple's security, and locks the accounts that were using that machine. This is why we recommend using a separate burner Apple ID instead of your main one.
When many people use the same Anisette server (specifically a v1 server), it trips Apple's security, and locks the accounts that were using that machine. This is why we recommended using a separate burner Apple ID instead of your main one.

Our team has worked on better approaches to avoid locked accounts (in the form of _anisette-v3_). However, if you are using an older version of SideStore, hosting your own anisette server is a great way to avoid locked accounts. This is made incredibly easy thanks to our current server being open source and made for docker environments. This means we can deploy a server with nothing more than the GitHub link.

## Deploy on Render

[Render](https://render.com/) is a service for easily creating servers. It supports loading server sources from GitHub. The free tier is quite limited in terms of resources, but the server can run comfortably on it without issue.
[Render](https://render.com/) is a service for easily creating servers. It supports loading server sources from GitHub. The free tier is quite limited in terms of resources, but the server can run comfortably on it without issue. (FYI-It does require a credit/debit card for identification, but is completely free)

Due to too many people using the same GitHub URL, you will have to fork the Git repository yourself.

Expand Down Expand Up @@ -80,7 +80,7 @@ If you want to keep the option of using included servers, follow the steps below
```
* Commit the changes, then head to https://[your GitHub username].github.io/[where you placed the file]/servers.json. If the file loads, you are ready to move on to the next section. Otherwise, you may need to wait up to 10 mins for your site to be properly set up for use before you try again.

If you want to only use your own server, follow the steps above, but instead of getting the official server.json, create your own using this formatting;
If you want to only use your own server, follow the steps above, but instead of copying the official servers.json, create your own using this formatting;
```
{
"servers": [
Expand All @@ -105,11 +105,3 @@ To use your newly created server list in the SideStore app, do the following:
## Done!

SideStore will now use your new custom anisette server.


## Links:
[<img src="https://uptime.sidestore.io/api/badge/4/uptime/48" />](https://uptime.sidestore.io/status/all)
[All Official Anisette Servers Uptime](https://uptime.sidestore.io/status/all)

[<img src="https://uptime.sidestore.io/api/badge/1/uptime/48" />](https://uptime.sidestore.io/status/ss)
[Our Official Anisette Server's Uptime](https://uptime.sidestore.io/status/ss)
3 changes: 2 additions & 1 deletion docs/advanced/jit.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ description: A tutorial on how to enable Just-in-Time (JIT) Compilation for apps
---

:::note
iOS 26 has broken JIT once again. A fix is in the works.

There are many methods to enabling JIT, such as AltJIT, SideJITServer, and more. This tutorial will cover the use of StikDebug (formerly StikJIT), as it is the method we currently recommend. For more information, consult the [official StikDebug pairing guide](https://github.com/StephenDev0/StikDebug-Guide/blob/main/pairing_file.md).

As an alternative, SideStore 0.6.2-nightly.2025.04.15 also includes updates to minimuxer, allowing built-in JIT functionality similar to StikDebug. To use this, simply ensure you are connected to StosVPN with either Wi-Fi enabled/connected or with mobile data and Wi-Fi disabled (Airplane Mode).
As an alternative, SideStore 0.6.2 includes updates to minimuxer, allowing built-in JIT functionality similar to StikDebug. To use this, simply ensure you are connected to StosVPN with either Wi-Fi connected or Airplane Mode enabled, then navigate to "My Apps," longpress the app you wish to enable JIT for, and tap "enable JIT".
:::

## Prerequisites
Expand Down
26 changes: 14 additions & 12 deletions docs/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,17 @@ This is a list of frequently asked questions for SideStore. This has a list of c

## What is SideStore?

SideStore is an iOS application that allows you to sideload apps onto your iOS device using only your Apple ID. SideStore resigns apps with your personal development certificate, and then uses a specially designed VPN in order to trick iOS into installing them. SideStore will periodically "refresh" your apps in the background, to keep their normal 7-day development period from expiring. SideStore's goal is to provide an untethered sideloading experience. It's a community driven fork of AltStore, and has already implemented some of the community's most-requested features. You only need a computer once during installation.
SideStore is an iOS application that allows you to sideload apps onto your iOS device using only your Apple ID. SideStore resigns apps with your personal development certificate, and then uses a [specially designed VPN](https://github.com/jkcoxson/em_proxy) in order to trick iOS into installing them. SideStore will periodically "refresh" your apps in the background, to keep their normal 7-day development period from expiring.

SideStore's goal is to provide an untethered sideloading experience. It's a community driven fork of [AltStore](https://github.com/rileytestut/AltStore), and has already implemented some of the community's most-requested features. You only need a computer once during installation.

(Contributions are welcome! 🙂)

### Can I activate JIT?

For users using iOS/iPadOS 16 or lower, you can activate JIT directly from the SideStore 'My Apps' page by holding down on your app and selecting 'Enable JIT'.

Users on iOS or iPadOS 17.4 or higher will need to use a solution such as StikDebug (formerly StikJIT) or SideStore nightly. Please refer to the tutorial in the [Advanced](advanced/jit) section.
Users on iOS or iPadOS 17.4 or higher can use a solution such as SideStore 0.6.2 or StikDebug (formerly StikJIT). Please refer to the tutorial in the [Advanced](advanced/jit) section.

### When will SideStore release?

Expand All @@ -28,9 +30,9 @@ SideStore currently does not have a release date, but is in a public beta state.

Yes you can, just like AltStore!

### Does this have AltStore beta features?
### Does SideStore have AltStore (beta) features?

We do have AltStore beta features, but it isn't always latest. We try to keep up to date, or implement them in our own way if it's necessary.
We do implement AltStore (beta) features, but they aren't always latest. We try to keep up to date, or implement them in our own way if it's necessary.

### Will having the VPN on drain my battery?

Expand All @@ -50,7 +52,7 @@ Normally, no, as that’s an iOS and developer account limitation. Apple only al

To remove this restriction (and also get a 365 day expiry), you can pay for a $99/year Apple Developer account.

Alternatively, there is currently a nightly build available [here](https://github.com/SideStore/SideStore/releases/tag/nightly) (version 0.5.9-nightly.2024.10.23.1+1e969a0 as of writing) that utilizes the SparseRestore exploit to bypass the 3-app limit. Currently, this only works on iOS versions below 18 dev beta 5 plus 18.0.1 for definite.
Alternatively, on iOS versions 18 db5/18.0.1 and below, you can utilize the SparseRestore exploit to bypass the 3-app limit.

A tutorial for using this can be found [here](advanced/sparserestore).

Expand Down Expand Up @@ -82,7 +84,7 @@ This was a test update to see if there were problems between major versions, and

### Why do my JIT based apps not automatically activate JIT?

We currently don’t have an automatic JIT activation method, and if we do you would need the SideStore VPN on.
We currently don’t have an automatic JIT activation method, and if we did you would need StosVPN on.

### Does SideStore have an iPadOS UI?

Expand All @@ -100,21 +102,21 @@ Older Anisette servers that are used by many users are known to cause locking of

This is a login issue with the Anisette server. There isn’t really much of any info about it other than changing Anisette servers sometimes helps, or you can keep trying to login until it does.

### Can I transfer my AltStore/Sideloady apps?
### Can I transfer my AltStore/Sideloadly apps?

Yes, just don’t remove the original app on your device. Go into SideStore and sideload the same or updated IPA, and it should be added to your list of apps within SideStore with your data still intact.
Yes, just don’t remove the original app on your device. Go into SideStore and sideload the same or an updated IPA of the app, and it should be added to your list of apps within SideStore with your data still intact.

### Why do I need to refresh SideStore first thing after login?

This is because AltServer or other programs sideload SideStore with their own app groupID, while we use our own. Refreshing SideStore changes it to ours, which makes apps disappear as their groupIDs are not updated. It’s best to not sideload anything before refreshing SideStore on a clean install.

### Can I do OTA updates?
### Does SideStore support OTA updates?

Yep! Just click the update button!
Yep! Just click the update button when it appears!

### I want to test a SideStore version, and I want my data to stay when switching to a test version. Do I remove my app or sideload the test version via SideStore?

You can sideload via SideStore and your data should be the same. We don’t have an enrollment toggle to go to other versions. We also cannot guarantee your data transfers when testing an unofficial or nightly build.
You can sideload a nightly SideStore version via SideStore or AltServer and your data should be the same, or enable beta updates and select "nightly" in Settings. We cannot guarantee your data transfers when testing an unofficial or nightly build.

### My apps disappeared and I don't know what to do

Expand All @@ -126,7 +128,7 @@ Make sure your pairing file's extension ends with `.mobiledevicepairing` or `.pl

### Cannot start DebugServer

There is times when the Debugserver doesn't work. However, there is a fix you can try.
There is times when the Debugserver doesn't work. However, there is a fix you can try:

**Make a new pairing file**

Expand Down
16 changes: 9 additions & 7 deletions docs/installation/linux.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,18 @@ sidebar_position: 4

Before you start, make sure to have all steps completed found in the [prerequisites](prerequisites)!

1. The following commands will install usbmuxd and docker. Run these as a non-root user on your machine and you will only have to do this once.
1. Make sure you have usbmuxd and either Docker or Podman installed on your machine.
2. Plug in your iDevice. If you recieve a prompt, select "trust" and enter your passcode.

3. Now, run Altcon with Docker or Podman using the following commands (may require `sudo`):

Docker setup:
```bash
sudo apt install -y usbmuxd
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
sudo usermod -aG docker $USER
docker run --rm -it -v ${PWD}/:/mnt/ -v /var/run/usbmuxd:/var/run/usbmuxd ghcr.io/sidestore/altcon
```
2. Restart your shell to ensure changes are made. Now, plug in your iDevice. If you recieve a prompt, select "trust" and enter your passcode. Now, run Altcon with Docker using this code (must be run every time to install SideStore):
Podman setup:
```bash
docker run --rm -it -v ${PWD}/:/mnt/ -v /var/run/usbmuxd:/var/run/usbmuxd ghcr.io/sidestore/altcon
podman run --rm -it -v ${PWD}/:/mnt/ -v /var/run/usbmuxd:/var/run/usbmuxd ghcr.io/sidestore/altcon
```
3. Altcon will pair with your device. When you recieve another prompt, select "trust" and enter your passcode again.
4. On your secondary device, do the following:
Expand Down
5 changes: 1 addition & 4 deletions docs/installation/pairing-file.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,7 @@ Download idevice pair for:

### Linux

1. If not already installed for Altcon, in the linux commandline, run the following code to install usbmuxd:
```bash
sudo apt install -y usbmuxd
```
1. Ensure usbmuxd is installed on your machine.
2. Download the version of idevice pair that corresponds to your PC's architecture and make it executable.
3. Connect your secondary device to your computer via cable. If a prompt appears, tap "trust" and type in your passcode.
4. Unlock your device, then execute idevice pair and select your device in the drop-down menu.
Expand Down
15 changes: 10 additions & 5 deletions docs/installation/post-install.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,17 @@ To do this, you need to:

1. Connect to StosVPN.
2. Open SideStore.
3. If you haven't already, select your pairing file.
3. If you haven't already, import/select your pairing file.
4. Sign in with your Apple ID.
5. Navigate to "My Apps".
6. Tap the "x DAYS" button to the right of SideStore, (x is the number of days until an app's expiry). A prompt asking about your signing certificate should appear, tap "Refresh Now". If a prompt appears asking you if you want to revoke a certificate from AltStore, tap "yes".
* If successful, this will open your device to your home screen, accompanied by a notification from SideStore documenting this behavior.
6. Tap the "x DAYS" button to the right of SideStore, (x is the number of days until an app's expiry).
7. A prompt asking to create a new signing certificate should appear, tap "Refresh Now".
8. If a prompt appears asking if you want to revoke a certificate from AltStore, tap "Yes".

If SideStore is not refreshed, a bug causing early expiry will require you to reinstall SideStore. There is a plan to have this done automatically, but for now it needs to be done manually.
If this process is successful, SideStore will open your device to your home screen, accompanied by a notification.

If you reinstall SideStore or install it on another device under the same Apple ID using AltServer, your certificate will be revoked and you will need to refresh it manually again as shown above (on all devices, if applicable).
If SideStore is not refreshed like this immediately, a bug causing early expiry will require you to reinstall SideStore using AltServer. There is a plan to have this done automatically, but for now it needs to be done manually.

If you reinstall SideStore using AltServer, your certificate will be revoked and you will need to manually refresh it again.

If you wish to install SideStore on another device using the same Apple ID, follow [these steps](https://github.com/SideStore/SideStore/pull/1008#issue-3138680291).
42 changes: 41 additions & 1 deletion docs/release-notes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,46 @@ sidebar_position: 6

# Stable Notes

## 0.6.2

### Changelog
- Deprecation of WireGuard, complete transition to [StosVPN](https://apps.apple.com/us/app/stosvpn/id6744003051)
- jitterbugpair is being superseded by [idevice pair](https://github.com/jkcoxson/idevice_pair)
- Merge more of AltStore 2.0 upstream
- Added support for importing/exporting your Apple ID's certificate for use with multiple devices, instructions to utilize this [here](https://github.com/SideStore/SideStore/pull/1008#issue-3138680291)
- Adds url scheme/allow exporting certificate (to LiveContainer)
- Fix issue where installing apps would get stuck around 75%
- Add option to resuse the main App ID profile for extensions instead of removing/registering them (only one app id/app)
- General type fixes and visual updates

### What's Changed:
- Rebase 2.0 wip by @nythepegasus in [#794](https://github.com/SideStore/SideStore/pull/794)
- [Refresh]: Remove install stuffs from refresh since in refresh should only renew provisioning profiles by @mahee96 in [#846](https://github.com/SideStore/SideStore/pull/846)
- [Settings]: Fix: DisableAppLimit switch reverting back to off state even if on iOS where sparseRestore is not patched yet by @mahee96 in [#850](https://github.com/SideStore/SideStore/pull/850)
- Update trustedapps.json by @neoarz in [#853](https://github.com/SideStore/SideStore/pull/853)
- [Backup]: Fix: update logic during install missed since override keyword was missing by @mahee96 in [#857](https://github.com/SideStore/SideStore/pull/857)
- Fix Repository App Previews by @neoarz in [#871](https://github.com/SideStore/SideStore/pull/871)
- Feature: Bulk sources-add in sources screen with capability to stage them before persisting into database by @mahee96 in [#888](https://github.com/SideStore/SideStore/pull/888)
- Version 0.6.0: CoreData Migrations fix including xcdatamodels and xcmappingmodels by @mahee96 in #894
- Feature: Render in-app update description as (full) markdown by @mahee96 in #897
- fix: typo in hasUpdate comparison by @l2dy in [#900](https://github.com/SideStore/SideStore/pull/900)
- Update SettingsViewController.swift by @neoarz in [#915](https://github.com/SideStore/SideStore/pull/915)
- WIP: Fixes for migration issues when migrating from 0.5.9 to 0.6.0 by @mahee96 in #920
- Fix typo "levaraging" -> "leveraging" by @lafrenierejm in [#926](https://github.com/SideStore/SideStore/pull/926)
- Added StosVPN to the EM Proxy part. by @Br0des in [#940](https://github.com/SideStore/SideStore/pull/940)
- StosVPN-integration: Removed em_proxy and EmotionalDamage module in favour of stosVPN by @mahee96 in [#945](https://github.com/SideStore/SideStore/pull/945)
- Disable minimuxer ready check which shows NO WIFI/VPN error since stosVPN can work on cellular too by @mahee96 in [#935](https://github.com/SideStore/SideStore/pull/935)
- Add iOS 17.4+ JIT and mounting by @jkcoxson in [#953](https://github.com/SideStore/SideStore/pull/953)
- Add export certificate feature by @hugeBlack in [#959](https://github.com/SideStore/SideStore/pull/959)
- Feat: Add Pairing File Export URL callback and replace Wireguard with StosVPN by @stossy11 in [#962](https://github.com/SideStore/SideStore/pull/962)
- Change front-facing references to AltStore by @owoellen in [#987](https://github.com/SideStore/SideStore/pull/987)
- Update OperationError.swift for idevice_pair by @CelloSerenity in [#995](https://github.com/SideStore/SideStore/pull/995)
- Add import/export certificate feature by @hugeBlack in [#1008](https://github.com/SideStore/SideStore/pull/1008)
- Fix pairing file doc link by @CelloSerenity in [#1011](https://github.com/SideStore/SideStore/pull/1011)
- Add option for using main bundle's profile for app extensions, update AltSign & libmd by @hugeBlack in [#1012](https://github.com/SideStore/SideStore/pull/1012)
- Use main profile when refreshing by @hugeBlack in [#1013](https://github.com/SideStore/SideStore/pull/1013)


## 0.6.1

### Changelog
Expand All @@ -30,4 +70,4 @@ It's March and we have some big changes. We've finally included AltStore 2.0 cha
- [Settings]: Fix: DisableAppLimit switch reverting back to off state even if on iOS where sparseRestore is not patched yet by @mahee96 in [#850](https://github.com/SideStore/SideStore/pull/850)
- [Backup]: Fix: update logic during install missed since override keyword was missing by @mahee96 in [#857](https://github.com/SideStore/SideStore/pull/857)
- Feature: Bulk sources-add in sources screen with capability to stage them before persisting into database by @mahee96 in [#888](https://github.com/SideStore/SideStore/pull/888)
- Feature: Render in-app update description as (full) markdown by @mahee96 in [#897](https://github.com/SideStore/SideStore/pull/897)
- Feature: Render in-app update description as (full) markdown by @mahee96 in [#897](https://github.com/SideStore/SideStore/pull/897)
2 changes: 1 addition & 1 deletion docs/troubleshooting/common-issues.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Common issues found in SideStore.

:::warning

This page is currently a work in progress. The information provided should be accurate, but please refer to our [Discord server](https://discord.com/invite/sidestore) for assistance if needed.
This page is currently a work in progress. The information provided should be accurate, but please refer to our [Discord server](https://discord.gg/sidestore-949183273383395328) for assistance if needed.

:::

Expand Down
Loading