Skip to content
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
2 changes: 1 addition & 1 deletion .github/workflows/dependency-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
- run: python -m unittest discover -s tests -v
- run: python -m unittest discover -s .github/scripts
- run: python -m compileall -q tools .github/scripts
- run: python tools/verify_source.py --min-apps 17
- run: python tools/verify_source.py --min-apps 18
- run: python tools/simulate_client.py --client sidestore
- run: python tools/simulate_client.py --client livecontainer

4 changes: 2 additions & 2 deletions .github/workflows/update-source.yml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ jobs:
python -m unittest discover -s tests -v
python -m unittest discover -s .github/scripts
python -m compileall -q tools tests .github/scripts
python tools/verify_source.py --min-apps 17
python tools/verify_source.py --min-apps 18

- name: 重新生成源文件
run: |
Expand All @@ -139,7 +139,7 @@ jobs:
# 凭空少一个 App。生成脚本本身在抓取失败时会沿用上一次的条目,
# 所以正常情况下这个下限永远达标,真触发了一定是有问题。
# ⚠️ 每加/删一个应用,这里都要跟着改。
python tools/verify_source.py --min-apps 17
python tools/verify_source.py --min-apps 18

- name: 核对两个客户端的解析结果
run: |
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Laincat 工具箱 — SideStore / AltStore / LiveContainer 源文件

自用的 iOS 侧载源(源名称 **Laincat 工具箱**,图标是 [@laincat](https://github.com/laincat) 的 GitHub 头像):收录 17 个 iOS 应用,**自动跟随上游 GitHub Release 更新**。
自用的 iOS 侧载源(源名称 **Laincat 工具箱**,图标是 [@laincat](https://github.com/laincat) 的 GitHub 头像):收录 18 个 iOS 应用,**自动跟随上游 GitHub Release 更新**。

三个客户端都能用:**SideStore / AltStore / LiveContainer**。

Expand Down Expand Up @@ -60,6 +60,7 @@ https://github.com/laincat/AltStore/releases/download/latest/apps.json
| AnimeFlow | `com.ligg.anime_flow` | 2.6.4 | 28.1 MB | iOS 15.0+ | 无 | [openAnimeFlow/AnimeFlow](https://github.com/openAnimeFlow/AnimeFlow) |
| AniBaka | `ani.baka` | 5.2.3 | 22.7 MB | iOS 13.0+ | 无 | [AniBakaBaka/AniBaka](https://github.com/AniBakaBaka/AniBaka) |
| AniCh | `app.anich` | 1.5.27 | 39.3 MB | iOS 12.0+ | 无 | [Sle2p/AniCh](https://github.com/Sle2p/AniCh) |
| 真果鉴 | `com.duanju.duanjuApp` | 1.0.0(100) | 28.6 MB | iOS 15.1+ | 无 | [Xanerix/guoapp](https://github.com/Xanerix/guoapp) |
| Aidoku | `app.aidoku.Aidoku` | 0.9 | 14.1 MB | iOS 15.0+ | 无 | [Aidoku/Aidoku](https://github.com/Aidoku/Aidoku) |
| ARMSX2 Nightly | `com.armsx2.ios.nightly` | 2.6.0-nightly.20261023.1332 | 38.5 MB | iOS 17.4+ | 每日构建 | [ARMSX2/ARMSX2](https://github.com/ARMSX2/ARMSX2) |
| AirCard | `com.mak5er.aircard` | 1.3.2 | 4.4 MB | iOS 18.0+ | 无 | [Mak5er/AirCard-iOS](https://github.com/Mak5er/AirCard-iOS) |
Expand Down Expand Up @@ -261,7 +262,7 @@ Action 已固定到完整 commit SHA(保留版本注释);Dependabot 每日
```bash
# 本地跑(需要 Python 3.8+,只用标准库)
python tools/build_source.py --refresh # 重新抓上游
python tools/verify_source.py --min-apps 17 # 校验(数字取「等于当前应用数」)
python tools/verify_source.py --min-apps 18 # 校验(数字取「等于当前应用数」)
```

## 目录结构
Expand Down Expand Up @@ -323,7 +324,7 @@ python tools/build_source.py --versions 4 # 稳定版轨道保留最近 4 个
## 注意事项

1. **EhPanda 需 iOS 26.0 及以上**,稳定版 2.8.1 与测试版 3.0.0 都是这个要求。
2. **免费 Apple ID 的侧载限制**:同时最多 3 个自签应用,签名 7 天过期(靠 SideStore 自身续签)。源里有 17 个应用,装不下全部。
2. **免费 Apple ID 的侧载限制**:同时最多 3 个自签应用,签名 7 天过期(靠 SideStore 自身续签)。源里有 18 个应用,装不下全部。
3. **PicaX 选的是不含 Watch 组件的包**(`PicaX-unsigned.ipa`)。带 Watch 的版本在免费账号签名时容易因附加 Target 失败。
4. **EhPanda 含 Share Extension、PicaX 含 Widget**,签名时会额外占用标识符;报错可换用不带扩展的版本。
5. **源里有四个 Venera 系阅读器**:VeneraX(`io.github.kyosee.venera`)、Venera Prime(`com.github.wgh136.venera.prime`)、VeneraNext(`com.github.cyrilpeng.veneranext`)、Venera-SSR(`com.github.kiastr.venera-ssr`)。四者是**独立应用**(Bundle ID 各不相同,分别是不同作者维护的 Venera 分支),可以同时安装 —— 但功能高度重叠,实际按需选一个就够。
Expand Down
59 changes: 57 additions & 2 deletions apps.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"identifier": "com.acgtoolbox.source",
"iconURL": "https://github.com/laincat.png?size=512",
"subtitle": "多类 iOS 自签应用源",
"description": "收录 17 款 iOS 应用:番剧类 Kazumi、Animeko、AnimeFlow、AniBaka、AniCh,漫画阅读类 EhPanda、VeneraX、Venera Prime、VeneraNext、Venera-SSR、Breeze、PicaX、Aidoku,以及 AvPlay、ARMSX2、AirCard、Rich4。所有 IPA 均直连各项目 GitHub Release 官方资产,由 SideStore / AltStore / LiveContainer 本地签名安装。",
"description": "收录 18 款 iOS 应用:番剧类 Kazumi、Animeko、AnimeFlow、AniBaka、AniCh,漫画阅读类 EhPanda、VeneraX、Venera Prime、VeneraNext、Venera-SSR、Breeze、PicaX、Aidoku,以及 AvPlay、ARMSX2、AirCard、Rich4、真果鉴。所有 IPA 均直连各项目 GitHub Release 官方资产,由 SideStore / AltStore / LiveContainer 本地签名安装。",
"tintColor": "#7C5CFF",
"apps": [
{
Expand Down Expand Up @@ -1003,6 +1003,61 @@
"downloadURL": "https://github.com/iam567/rich4-renew-app/releases/download/v0.8.0/rich4-0.8.0-unsigned.ipa",
"size": 1802804433,
"minOSVersion": "15.0"
},
{
"name": "真果鉴",
"bundleIdentifier": "com.duanju.duanjuApp",
"developerName": "Xanerix",
"subtitle": "支持多站源的短剧与影视客户端",
"localizedDescription": "Flutter 多平台短剧与影视客户端,包含全部站源,可在设置中逐个开关。支持追剧、观看记录、多用户、本地下载与备份。此处收录真果鉴全站源版;它与仅含红果站源的红果鉴共用 Bundle ID,属于同一应用的不同构建。\n\n安装包由上游发布,需自行签名安装。站源可用性取决于源站及网络;应用不解除源站 VIP 或其他授权限制。\n\n开源协议:GPL-3.0 · 项目主页:https://github.com/Xanerix/guoapp",
"iconURL": "https://raw.githubusercontent.com/Xanerix/guoapp/app-v1.0.0-100/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png",
"tintColor": "#E97642",
"category": "entertainment",
"appPermissions": {
"entitlements": [],
"privacy": {}
},
"releaseChannels": [
{
"track": "stable",
"releases": [
{
"version": "1.0.0",
"date": "2026-10-27",
"publishedAt": "2026-10-27T08:37:49Z",
"buildVersion": "100",
"buildNumber": "100",
"localizedDescription": "更新内容:\n\n界面整体重建,手机、平板、电脑和电视分别适配。\n界面与导航\n- 新主题:跟随系统取色(Android 12 及以上跟随壁纸,Windows 跟随强调色)或 6 个预设色板,浅色 / 深色 / 跟随系统照旧;主题色随备份导出。\n- 导航改为发现 / 追剧 / 我的:手机用底栏,平板和电脑用侧栏(可展开或收起,会记住选择),电视用顶部 Tab;宽屏的子页面在侧栏右侧打开。\n- 界面模式分自动识别、电视、手机、平板、窗口(只有电脑提供);手动选定后不再随窗口宽度切换。电视模式强制横屏,手机模式锁定竖屏(iPhone 上为开发快照,未在设备上验证)。\n- 焦点导航只在电视端启用:按钮获焦放大加描边,长条只显示描边,外框在元素之间平滑移动;电视页面边距统一,避免被过扫描切掉,不再显示屏幕返回按钮。手机、平板和电脑不再显示焦点外框。\n- 新应用图标:Android 改为自适应图标,支持主题图标;电视桌面横幅改为浅色底。\n发现与搜索\n- 站源切换放在站源名旁边;分类用文字 Tab:推荐 / 全部 / 各榜单 / 各题材。榜单并入分类,封面标出名次,不再显示热度。\n- 第一个 Tab 顶部有大卡片,显示本站源最近看过的剧或推荐的第一部。\n- 滑到底部自动加载下一页;下拉或点「刷新」重新拉取当前分类,不再触发整库更新。\n- 修复剧库缓存越积越大,最后提示「剧库超过本地保存上限」、无法继续加载:每个分类的缓存最多保留前 5000 部,旧版整库更新留下的大缓存会自动缩减。\n- 红果推荐改用「找剧」混排流,每次加载约 12 部;红果题材改用红果 App 的题材筛选。\n- 新搜索页:只搜当…",
"downloadURL": "https://github.com/Xanerix/guoapp/releases/download/app-v1.0.0-100/zhenguojian-1.0.0%2B100-ios-unsigned.ipa",
"size": 29959729,
"minOSVersion": "15.1",
"releaseTag": "app-v1.0.0-100",
"source": "https://github.com/Xanerix/guoapp/releases/tag/app-v1.0.0-100"
}
]
}
],
"versions": [
{
"version": "1.0.0",
"date": "2026-10-27",
"publishedAt": "2026-10-27T08:37:49Z",
"buildVersion": "100",
"buildNumber": "100",
"localizedDescription": "更新内容:\n\n界面整体重建,手机、平板、电脑和电视分别适配。\n界面与导航\n- 新主题:跟随系统取色(Android 12 及以上跟随壁纸,Windows 跟随强调色)或 6 个预设色板,浅色 / 深色 / 跟随系统照旧;主题色随备份导出。\n- 导航改为发现 / 追剧 / 我的:手机用底栏,平板和电脑用侧栏(可展开或收起,会记住选择),电视用顶部 Tab;宽屏的子页面在侧栏右侧打开。\n- 界面模式分自动识别、电视、手机、平板、窗口(只有电脑提供);手动选定后不再随窗口宽度切换。电视模式强制横屏,手机模式锁定竖屏(iPhone 上为开发快照,未在设备上验证)。\n- 焦点导航只在电视端启用:按钮获焦放大加描边,长条只显示描边,外框在元素之间平滑移动;电视页面边距统一,避免被过扫描切掉,不再显示屏幕返回按钮。手机、平板和电脑不再显示焦点外框。\n- 新应用图标:Android 改为自适应图标,支持主题图标;电视桌面横幅改为浅色底。\n发现与搜索\n- 站源切换放在站源名旁边;分类用文字 Tab:推荐 / 全部 / 各榜单 / 各题材。榜单并入分类,封面标出名次,不再显示热度。\n- 第一个 Tab 顶部有大卡片,显示本站源最近看过的剧或推荐的第一部。\n- 滑到底部自动加载下一页;下拉或点「刷新」重新拉取当前分类,不再触发整库更新。\n- 修复剧库缓存越积越大,最后提示「剧库超过本地保存上限」、无法继续加载:每个分类的缓存最多保留前 5000 部,旧版整库更新留下的大缓存会自动缩减。\n- 红果推荐改用「找剧」混排流,每次加载约 12 部;红果题材改用红果 App 的题材筛选。\n- 新搜索页:只搜当…",
"downloadURL": "https://github.com/Xanerix/guoapp/releases/download/app-v1.0.0-100/zhenguojian-1.0.0%2B100-ios-unsigned.ipa",
"size": 29959729,
"minOSVersion": "15.1",
"releaseTag": "app-v1.0.0-100",
"source": "https://github.com/Xanerix/guoapp/releases/tag/app-v1.0.0-100"
}
],
"version": "1.0.0",
"versionDate": "2026-10-27",
"versionDescription": "更新内容:\n\n界面整体重建,手机、平板、电脑和电视分别适配。\n界面与导航\n- 新主题:跟随系统取色(Android 12 及以上跟随壁纸,Windows 跟随强调色)或 6 个预设色板,浅色 / 深色 / 跟随系统照旧;主题色随备份导出。\n- 导航改为发现 / 追剧 / 我的:手机用底栏,平板和电脑用侧栏(可展开或收起,会记住选择),电视用顶部 Tab;宽屏的子页面在侧栏右侧打开。\n- 界面模式分自动识别、电视、手机、平板、窗口(只有电脑提供);手动选定后不再随窗口宽度切换。电视模式强制横屏,手机模式锁定竖屏(iPhone 上为开发快照,未在设备上验证)。\n- 焦点导航只在电视端启用:按钮获焦放大加描边,长条只显示描边,外框在元素之间平滑移动;电视页面边距统一,避免被过扫描切掉,不再显示屏幕返回按钮。手机、平板和电脑不再显示焦点外框。\n- 新应用图标:Android 改为自适应图标,支持主题图标;电视桌面横幅改为浅色底。\n发现与搜索\n- 站源切换放在站源名旁边;分类用文字 Tab:推荐 / 全部 / 各榜单 / 各题材。榜单并入分类,封面标出名次,不再显示热度。\n- 第一个 Tab 顶部有大卡片,显示本站源最近看过的剧或推荐的第一部。\n- 滑到底部自动加载下一页;下拉或点「刷新」重新拉取当前分类,不再触发整库更新。\n- 修复剧库缓存越积越大,最后提示「剧库超过本地保存上限」、无法继续加载:每个分类的缓存最多保留前 5000 部,旧版整库更新留下的大缓存会自动缩减。\n- 红果推荐改用「找剧」混排流,每次加载约 12 部;红果题材改用红果 App 的题材筛选。\n- 新搜索页:只搜当…",
"downloadURL": "https://github.com/Xanerix/guoapp/releases/download/app-v1.0.0-100/zhenguojian-1.0.0%2B100-ios-unsigned.ipa",
"size": 29959729,
"minOSVersion": "15.1"
}
],
"featuredApps": [
Expand All @@ -1013,7 +1068,7 @@
{
"title": "源已建立",
"identifier": "source-created",
"caption": "收录 17 款应用,IPA 直连各项目 GitHub Release。",
"caption": "收录 18 款应用,IPA 直连各项目 GitHub Release。",
"date": "2026-10-27",
"tintColor": "#7C5CFF",
"notify": false
Expand Down
3 changes: 2 additions & 1 deletion cache/icons.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,6 @@
"https://raw.githubusercontent.com/openAnimeFlow/AnimeFlow/v2.6.6/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png": true,
"https://raw.githubusercontent.com/iam567/rich4-renew-app/v0.7.9/game/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png": true,
"https://raw.githubusercontent.com/Sle2p/AniCh/1.5.27/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png": true,
"https://raw.githubusercontent.com/iam567/rich4-renew-app/v0.8.0/game/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png": true
"https://raw.githubusercontent.com/iam567/rich4-renew-app/v0.8.0/game/ios/App/App/Assets.xcassets/AppIcon.appiconset/AppIcon-512@2x.png": true,
"https://raw.githubusercontent.com/Xanerix/guoapp/app-v1.0.0-100/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png": true
}
28 changes: 28 additions & 0 deletions cache/probes.json
Original file line number Diff line number Diff line change
Expand Up @@ -972,5 +972,33 @@
"size": 1802804433,
"digest": "sha256:a5c7677d9f1487f9b4332e6671c6d0e72cba2ab2f7d0aa58731fae8f751dbc16"
}
},
"https://github.com/Xanerix/guoapp/releases/download/app-v1.0.0-100/hongguojian-1.0.0%2B100-ios-unsigned.ipa": {
"bundleIdentifier": "com.duanju.duanjuApp",
"version": "1.0.0",
"buildVersion": "100",
"displayName": "HongGuoJian",
"minOSVersion": "15.1",
"size": 29955552,
"assetIdentity": {
"id": 680966315,
"updated_at": "2026-10-27T08:37:41Z",
"size": 29955552,
"digest": "sha256:f46cec2ecd49eff0167044d85686751d95c4f43edf6ca46e6e7bf65b82636015"
}
},
"https://github.com/Xanerix/guoapp/releases/download/app-v1.0.0-100/zhenguojian-1.0.0%2B100-ios-unsigned.ipa": {
"bundleIdentifier": "com.duanju.duanjuApp",
"version": "1.0.0",
"buildVersion": "100",
"displayName": "ZhenGuoJian",
"minOSVersion": "15.1",
"size": 29959729,
"assetIdentity": {
"id": 680966395,
"updated_at": "2026-10-27T08:37:43Z",
"size": 29959729,
"digest": "sha256:4653061ce16d6da51a8173a22695e0758ab4289137a5a2cf81e69109c83c677e"
}
}
}
Loading
Loading