Skip to content

Commit 040d586

Browse files
committed
Update guides for verifying refresh and workaround for "Certificate not found, did you log into built-in SideStore?" issue
1 parent d33e532 commit 040d586

19 files changed

Lines changed: 128 additions & 10 deletions

File tree

.vscode/settings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"files.autoSave": "onFocusChange"
3+
}

docs/faq.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ Generally no. They require extra app ids.
4343
- LiveContainer fails to install or verify: [Installation & Signing Errors](./faq/installing-livecontainer.md)
4444
- Guest app import/signing fails: [Installation & Signing Errors](./faq/installing-livecontainer.md)
4545
- JIT-less import or diagnose fields are wrong: [JIT-Less Setup & Diagnose](./faq/jit-less-mode-setup.md)
46+
- "Certificate not found, did you log into built-in SideStore?": [LiveContainer+SideStore troubleshooting](./installation/lc_sidestore.md#troubleshooting)
4647
- App crashes after launch: [App Crashes](./faq/app-crashes.md)
4748
- Guest app not working correctly: [Using Guest Apps](./faq/using-guest-apps.md)
4849
- Per-app toggles to improve compatibility: [App Settings](./guides/app-settings.md)

docs/guides/add-to-home-screen.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ If an app has multiple containers, hold the app and select the target container
3333
6. Tap the gray "Launch URL" text in the first action and paste the launch URL you copied in step 2.
3434
7. Tap the "x" button to close the keyboard.
3535
8. Tap the play/run button to test the shortcut. If the app opens, the shortcut works.
36-
<p>
36+
<p class="img-scroll">
3737
<img height="500px" src="/img/add-to-home-screen/2.jpg" />
3838
<img height="500px" src="/img/add-to-home-screen/3.jpg" />
3939
<img height="500px" src="/img/add-to-home-screen/4.jpg" />
@@ -48,7 +48,7 @@ If an app has multiple containers, hold the app and select the target container
4848
12. Tap "Image" → tap "Choose File" → select the image file you saved in step 1.
4949
13. Tap "Add" to add the icon to your home screen.
5050
14. To add more apps to your home screen, hold your shortcut, tap "Duplicate," and edit the Launch URL to another app’s URL.
51-
<p>
51+
<p class="img-scroll">
5252
<img height="500px" src="/img/add-to-home-screen/8.jpg" />
5353
<img height="500px" src="/img/add-to-home-screen/9.jpg" />
5454
<img height="500px" src="/img/add-to-home-screen/10.jpg" />
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Check if Refresh is Successful
2+
3+
We've recently noticed reports about LiveContainer(+SideStore) expiring even after timely refreshes. Although this falls outside LiveContainer's scope, This guide is here to help you check if the refresh is actually acknowledged by iOS using StikDebug's "App Expiry" tool, and how to fix it if possible.
4+
5+
## Preliminary
6+
Two factors contribute to a valid app on iOS: certificates and provisioning profiles.
7+
8+
When sideloading using a free developer account, Apple issues certificates valid for 365 days, but provisioning profiles for only 7 days, which is the reason why apps sideloaded by free developer accounts need to be refreshed every 7 days.
9+
10+
A provisioning profile contains the device's UDID that it can be installed on and, most importantly, all entitlements an app is allowed to have.
11+
12+
Every time you launch an app, iOS checks for a valid provisioning profile—one that is not expired and contains all entitlements the app needs. If either condition is not met, iOS throws a "&lt;App Name&gt; Is No Longer Available" error, meaning the app has expired.
13+
<img height="500px" src="/img/refresh-verification/5.jpg" />
14+
Starting from SideStore 0.6.0 and AltStore 2.2.0, refreshes are performed by installing a new provisioning profile.
15+
16+
17+
## How to Check
18+
0. Refresh your apps first
19+
1. Install [StikDebug 3.0.1+](https://github.com/StephenDev0/StikDebug) on your device in whatever way you like (SideStore, LiveContainer etc.)
20+
2. Setup StikDebug following [StikDebug's official guide](https://github.com/StephenDev0/StikDebug?tab=readme-ov-file#how-to-enable-jit)
21+
3. Instead of enabling JIT, tap "Tools" -> "App Expiry"
22+
23+
<p class="img-scroll">
24+
<img height="500px" src="/img/refresh-verification/1.jpg" />
25+
<img height="500px" src="/img/refresh-verification/2.jpg" />
26+
</p>
27+
28+
4. Check the expiration dates of your installed apps. The color of the expiration date text indicates how much time remains before expiration. Most importantly, verify that the most recent profile for each app contains all required entitlements.
29+
5. If you see "Missing Entitlements" in the most recent profile, the profile installed during the refresh is invalid and your apps will expire sooner than expected.
30+
<p class="img-scroll">
31+
<img height="500px" src="/img/refresh-verification/3.jpg" />
32+
<img height="500px" src="/img/refresh-verification/4.jpg" />
33+
</p>
34+
35+
## How to Fix
36+
This issue is usually caused by a mismatch between the entitlements in SideStore's database and what the app actually requires. To fix this, reinstall the app's IPA in SideStore to refresh the entitlements in SideStore's database, then check StikDebug again to verify if the profile is now valid.

docs/installation/lc_sidestore.md

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Please download the LiveContainer + SideStore .ipa file first:
3434
9. Go to iOS Settings App -> General -> VPN & Device Management and verify LiveContainer
3535
10. Go to the [Setup after Installing](#setup-after-installing) section to complete LiveContainer and SideStore's setup.
3636

37-
<p>
37+
<p class="img-scroll">
3838
<img width="300px" src="/img/lc_sidestore/1.jpg" />
3939
<img width="300px" src="/img/lc_sidestore/2.jpg" />
4040
<img width="300px" src="/img/lc_sidestore/3.jpg" />
@@ -67,13 +67,31 @@ Once LiveContainer+SideStore is installed, you need to import the certificate fr
6767
4. Quit SideStore and open LiveContainer. You can do this by either tapping the "quit" icon in SideStore's Apps page or using the app switcher.
6868
5. Go to LiveContainer's settings, tap "Import Certificate from SideStore", and tap "OK".
6969
6. If the "Import Certificate" button changes to "Remove Certificate", the certificate has been imported. You can check the "JIT-Less Mode Diagnose" page to verify that everything is configured correctly.
70+
7. (Optional) [Check if Refresh is Successful](/faq/refresh-verification.md)
7071

71-
<p>
72+
<p class="img-scroll">
7273
<img height="500px" src="/img/lc_sidestore/4.jpg" />
7374
<img height="500px" src="/img/lc_sidestore/5.jpg" />
7475
<img height="500px" src="/img/lc_sidestore/6.jpg" />
7576
<img height="500px" src="/img/lc_sidestore/7.jpg" />
7677
</p>
7778

7879
## Auto-Refresh Shortcut
79-
You can use the auto-refresh shortcut just like you would with the standalone SideStore—simply replace SideStore's "Refresh All Apps" action with LiveContainer's.
80+
You can use the auto-refresh shortcut just like you would with the standalone SideStore—simply replace SideStore's "Refresh All Apps" action with LiveContainer's.
81+
82+
## Troubleshooting
83+
If you see the error "Certificate not found, did you log into built-in SideStore?" and you are confident that you did the above steps correctly, it's probably a SideStore side issue that we haven't figured out, but you can try the following workaround.
84+
85+
1. Open built-in SideStore, go to Settings, and scroll down.
86+
2. Tap "Export Signing Certificate..."
87+
3. Choose a password for the exported certificate and save it on your device
88+
4. Exit built-in SideStore and reopen LiveContainer.
89+
5. Go to Settings, tap "Import Certificate", tap "OK"
90+
6. Select the certificate you just exported, and type the password you chose
91+
7. You can check the "JIT-Less Mode Diagnose" page to verify that everything is configured correctly.
92+
93+
<p class="img-scroll">
94+
<img height="500px" src="/img/lc_sidestore/8.jpg" />
95+
<img height="500px" src="/img/lc_sidestore/10.jpg" />
96+
<img height="500px" src="/img/lc_sidestore/9.jpg" />
97+
</p>

i18n/zh-CN/docusaurus-plugin-content-docs/current/faq.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ sidebar_position: 8
4343
- LiveContainer 安装或验证失败:[安装与签名错误](./faq/installing-livecontainer.md)
4444
- 访客App导入/签名失败:[安装与签名错误](./faq/installing-livecontainer.md)
4545
- JIT-Less 导入或诊断字段错误:[免JIT模式设置与诊断](./faq/jit-less-mode-setup.md)
46+
- "证书未找到,你是否登录了内置SideStore?":[LiveContainer+SideStore 故障排除](./installation/lc_sidestore.md#troubleshooting)
4647
- App启动后崩溃:[App崩溃](./faq/app-crashes.md)
4748
- App工作不正常:[使用App](./faq/using-guest-apps.md)
4849
- 对每个App单独设置以改进兼容性:[App设置](./guides/app-settings.md)

i18n/zh-CN/docusaurus-plugin-content-docs/current/guides/add-to-home-screen.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ title: 添加到主屏幕
3939
7. 点击 `x` 关闭键盘。
4040
8. 点击播放/运行按钮测试快捷指令。若应用成功打开,说明快捷指令配置正确。
4141

42-
<p>
42+
<p class="img-scroll">
4343
<img height="500px" src="/img/add-to-home-screen/2.jpg" />
4444
<img height="500px" src="/img/add-to-home-screen/3.jpg" />
4545
<img height="500px" src="/img/add-to-home-screen/4.jpg" />
@@ -55,7 +55,7 @@ title: 添加到主屏幕
5555
12. 点击 `Image` -> `Choose File`,选择步骤 1 保存的图标文件。
5656
13. 点击 `Add`,将图标添加到主屏幕。
5757
14. 若要继续添加其他应用,可长按该快捷指令并点击 `Duplicate`,然后把 Launch URL 改成目标应用的新 URL。
58-
<p>
58+
<p class="img-scroll">
5959
<img height="500px" src="/img/add-to-home-screen/8.jpg" />
6060
<img height="500px" src="/img/add-to-home-screen/9.jpg" />
6161
<img height="500px" src="/img/add-to-home-screen/10.jpg" />
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# 检查刷新是否成功
2+
3+
我们最近注意到有报告称 LiveContainer(+SideStore) 即使在及时刷新后也会过期。虽然这超出了 LiveContainer 的范围,但本指南旨在帮助您使用 StikDebug 的"App Expiry"工具检查刷新是否被iOS认为有效,以及如何修复。
4+
5+
## 预备知识
6+
两个因素决定iOS上的App是否有效:证书和配置文件(Provisioning Profile)。
7+
8+
使用免费开发者账号进行侧载时,Apple 会颁发有效期为 365 天的证书,与有效期为 7 天的配置文件,这就是为什么免费开发者账号侧载的应用需要每 7 天刷新一次。
9+
10+
配置文件包含可以安装的设备的 UDID,最重要的是,App允许拥有的所有权限。
11+
12+
每次启动应用时,iOS 都会检查是否存在有效的配置文件,即未过期的且包含App所需所有权限的配置文件。如果其中任何一个条件不满足,iOS 会显示"<应用名称> 不再可用"错误,表示应用已过期。
13+
<img height="500px" src="/img/refresh-verification/5.jpg" />
14+
从 SideStore 0.6.0 和 AltStore 2.2.0 开始,刷新是通过安装新的配置文件来进行的。
15+
16+
17+
## 如何检查
18+
0. 首先刷新您的应用
19+
1. 在您的设备上以任何方式安装 [StikDebug 3.0.1+](https://github.com/StephenDev0/StikDebug)(SideStore、LiveContainer 等)
20+
2. 按照 [StikDebug 的官方指南](https://github.com/StephenDev0/StikDebug?tab=readme-ov-file#how-to-enable-jit) 设置 StikDebug
21+
3. 不启用 JIT,而是点击"Tools"-> "App Expiry"
22+
23+
<p class="img-scroll">
24+
<img height="500px" src="/img/refresh-verification/1.jpg" />
25+
<img height="500px" src="/img/refresh-verification/2.jpg" />
26+
</p>
27+
28+
4. 检查已安装应用的过期日期。过期日期文本的颜色表示距过期还有多少时间。最重要的是,验证每个应用的最新配置文件是否包含所有必需的权限。
29+
5. 如果您在最新配置文件中看到"Missing Entitlements",则在刷新期间安装的配置文件无效,您的应用将比预期更早过期。
30+
<p class="img-scroll">
31+
<img height="500px" src="/img/refresh-verification/3.jpg" />
32+
<img height="500px" src="/img/refresh-verification/4.jpg" />
33+
</p>
34+
35+
## 如何修复
36+
这个问题通常由 SideStore 数据库中的权限与应用实际需要的权限之间的不匹配引起。要修复此问题,请在 SideStore 中重新安装应用的 IPA 以刷新 SideStore 数据库中的权限,然后再次检查 StikDebug 以验证配置文件现在是否有效。

i18n/zh-CN/docusaurus-plugin-content-docs/current/installation/lc_sidestore.md

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ sidebar_position: 2
3636
9. 打开 iOS 设置 -> 通用 -> VPN 与设备管理,验证 LiveContainer。
3737
10. 前往下方 [安装后设置](#安装后设置) 完成后续配置。
3838

39-
<p>
39+
<p class="img-scroll">
4040
<img width="300px" src="/img/lc_sidestore/1.jpg" />
4141
<img width="300px" src="/img/lc_sidestore/2.jpg" />
4242
<img width="300px" src="/img/lc_sidestore/3.jpg" />
@@ -69,13 +69,30 @@ sidebar_position: 2
6969
4. 退出 SideStore 并返回 LiveContainer。可通过 SideStore “Apps” 页的退出按钮,或系统多任务切换器返回。
7070
5. 在 LiveContainer 设置中点击 “Import Certificate from SideStore”,并确认。
7171
6. 若按钮从 “Import Certificate” 变成 “Remove Certificate”,表示导入成功。可前往 “JIT-Less Mode Diagnose” 页面进一步验证。
72+
7. (可选)[检查刷新是否成功](/faq/refresh-verification.md)
7273

73-
<p>
74+
<p class="img-scroll">
7475
<img height="500px" src="/img/lc_sidestore/4.jpg" />
7576
<img height="500px" src="/img/lc_sidestore/5.jpg" />
7677
<img height="500px" src="/img/lc_sidestore/6.jpg" />
7778
<img height="500px" src="/img/lc_sidestore/7.jpg" />
7879
</p>
7980

8081
## 自动刷新快捷指令
81-
自动刷新快捷指令的用法与独立 SideStore 基本一致,只需将原来 SideStore 的 “Refresh All Apps” 动作替换为 LiveContainer 的对应动作。
82+
自动刷新快捷指令的用法与独立 SideStore 基本一致,只需将原来 SideStore 的 “Refresh All Apps” 动作替换为 LiveContainer 的对应动作。
83+
## 故障排除
84+
如果看到错误 "证书未找到,你是否登录了内置SideStore?",但你确实已按照上述步骤操作,那可能是SideStore自己的问题。你可以尝试以下解决方法。
85+
86+
1. 打开内置 SideStore,进入设置并向下滚动。
87+
2. 点击 "Export Signing Certificate..."。
88+
3. 为导出的证书设置密码并将其保存到设备。
89+
4. 退出内置 SideStore 并重新打开 LiveContainer。
90+
5. 进入设置,点击 "导入证书",然后点击 "好"。
91+
6. 选择你刚刚导出的证书,并输入你选择的密码。
92+
7. 你可以检查 "免JIT模式诊断" 页面以验证所有配置是否正确。
93+
94+
<p class="img-scroll">
95+
<img height="500px" src="/img/lc_sidestore/8.jpg" />
96+
<img height="500px" src="/img/lc_sidestore/10.jpg" />
97+
<img height="500px" src="/img/lc_sidestore/9.jpg" />
98+
</p>

sidebars.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ const sidebars = {
3636
'guides/multiple-livecontainers',
3737
'guides/multitask',
3838
'guides/lock-app',
39+
'guides/refresh-verification'
3940
],
4041
},
4142
{

0 commit comments

Comments
 (0)