Kazumi icon indicating copy to clipboard operation
Kazumi copied to clipboard

[ios](高版本ios自签相关)是什么原因导致了Kazumi无法直接使用sidestore侧载

Open louvyu opened this issue 9 months ago • 25 comments

issue 内容

不清楚这个问题适不适合提issue,想弄清楚这个问题主要是因为:如果能正常使用sidestore自签的话,基本上可以实现在高版本ios且无法硬件越狱的ios设备上近乎永久地使用kazumi看番了 QwQ

  • [ ]
  • [ ] 我原本认为是sidestore软件本身的问题导致了side store自签kazumi报错,但是使用feather企业证书(过期证书)签名后并重新打包出来的kazumi ipa安装包是可以正常使用sidestore自签的。
  • [ ]
  • [ ] 这时候我怀疑是没有企业签名签过的安装包会导致side store自签报错。我尝试了使用其他常见的ios签名软件(gbox、e-sign和魔力签等)以及爱思助手使用相同的企业证书签名,与预期不符的是,签名出来的ipa使用sidestore自签还是会报错。
  • [ ]
  • [ ] 于是我怀疑是不是打包方式决定了sidestore自签是否报错。然而我完全没有ios开发经验,只能在此提供我目前的一些发现。
  • [ ]

设备信息 系统ios18.3.1 在复现问题前,我先删了原先安装好的的1.6.0版本kazmi以及side store,并下载了截止目前最新的1.6.2版本的kazumi。 以下是使用side store1.6.2版本的报错信息,与#799一致 Image

提交前确认

  • [x] issue 列表中,没有我的新功能需求 / 问题

louvyu avatar Mar 21 '25 08:03 louvyu

首先我先在feather中导入了一张过期的企业证书,并使用该证书签名了1.6.2版本的kazumi。 接下来是和很多签名软件不同的一点,这个软件可以自定义签名ipa安装包的属性。暂时不清楚具体是哪个属性让kazumi变得能正常使用sidestore签名,总之我把所有属性的状态截图了下来。(注:图中的注入第三方库和修改Dylibs功能我已检查过并不是默认勾选的)

Image

Image

Image

Image

louvyu avatar Mar 21 '25 08:03 louvyu

我没有可以测试的 iOS 设备,我稍后查看 mpv framework 打包流程中的问题,因为根据反馈在我们不使用 mpv 的版本可以正常自签。

@ErBWs 对此有什么看法吗,你在使用什么方式自签。

Predidit avatar Mar 21 '25 08:03 Predidit

这个是使用feather打包后的kazumi ipa文件,经过测试可以正常使用side store自签

Image

Image

louvyu avatar Mar 21 '25 08:03 louvyu

我并不使用自签软件

ErBWs avatar Mar 21 '25 08:03 ErBWs

我的设备太新无法像老设备那样硬件越狱或使用巨魔,老设备由于电池健康度过低挂掉了。目前还没有ios18降级方法。该问题对我使用kazumi影响不大,不过或许对于不熟悉ios自签的用户来说自行解决会比较困难。或许可以对比两个ipa安装包的区别来找到问题所在。 feather打包后的kazumi ipa文件

louvyu avatar Mar 21 '25 08:03 louvyu

唔,我现在很确定问题在 mpv xcframework 的编译流程中。

我对比了 fvp 捆绑的 mdk.xcframework 的文件结构和我们现在的 mpv.xcframework 的文件结构。

很明显,我们缺失了一些东西,例如 _CodeSignature 文件夹 (非常可疑) 以及 PrivacyInfo.xcprivacy (似乎是隐私清单)

可惜我并没有设备来进行测试,等待对这个问题感兴趣的开发者进行尝试。

Predidit avatar Mar 21 '25 09:03 Predidit

这是 https://github.com/altstoreio/AltStore/issues/1034

我看到它链接到 https://github.com/RyanYuuki/AnymeX/pull/93 这一有效的解决方案

很明显,altstore 无法签名捆绑了未签名的 xcframework 的 ipa 。

这很明显是一个 altstore 或是 sidestore 实现中的一个错误。

上面的解决方案是使用过期的企业证书进行签名,就像 @louvyu 做的那样,我怀疑 @louvyu 在有些场合的失败是某些签名软件不会签名 xcframework 而只签名本体。

如果我们一定要修复这一问题,我们只能使用过期证书签名我们的 mpv.xcframework,或是使用过期证书签名 kazumi.ipa 的所有内容。

@ErBWs 你对此怎么看,我觉得使用过期证书存在合规风险,并且我担心这种被滥用的过期证书可能导致一些未预期的问题。

Predidit avatar Mar 21 '25 09:03 Predidit

https://github.com/altstoreio/AltStore/issues/1034#issuecomment-2467259464

我觉得可以把 feather 重打包的侧载方式写在每次的 release note 或者单独写个侧载方式文档链接到 readme 里面

ErBWs avatar Mar 21 '25 10:03 ErBWs

为了防止因为我不熟练的分卷压缩而产生额外错误,我将3个签名软件签名的版本都临时放到了这个仓库的Releases中。其中i4_kazumi是使用爱思助手签名的,gbox_Kazumi是使用gbox签名的,feather_kazumi是使用feather签名的。目前能直接使用SIdeStore自签的仅有feather_kazumi。另外附上feather的仓库链接。希望这能对解决这个issue有所帮助。

louvyu avatar Mar 21 '25 13:03 louvyu

这三个包的大小差异非常大,很自然地想到 xcframework 符号链接相关问题。

可能不是 xcframework 未签名问题,不知道其他更加熟悉 macOS/iOS 的开发者怎么看。

Predidit avatar Mar 21 '25 13:03 Predidit

首先我先在feather中导入了一张过期的企业证书,并使用该证书签名了1.6.2版本的kazumi。 接下来是和很多签名软件不同的一点,这个软件可以自定义签名ipa安装包的属性。暂时不清楚具体是哪个属性让kazumi变得能正常使用sidestore签名,总之我把所有属性的状态截图了下来。(注:图中的注入第三方库和修改Dylibs功能我已检查过并不是默认勾选的) Image Image Image Image 有人在这个回答中提到过 altstoreio/AltStore#1034 (comment)

该方法就是参照这个issue里面的

louvyu avatar Mar 21 '25 14:03 louvyu

首先我先在羽毛中导入了一张过期的企业证书,并使用该证书签名了1.6.2版本的kazumi。接下来是和很多签名软件不同的一点,这个软件可以自定义签名ipa安装包的属性。暂时不清楚具体是哪个属性让kazumi变得能正常使用sidestore签名,总之我把所有属性的状态截图了下来。(注:图中的注入第三方库和修改Dylibs功能,我已检查过并不是默认勾选的) Image Image Image Image 有人在这个回答中提到过 altstoreio/AltStore#1034 (评论)

该方法就是参照这个问题里面的

好的好的,我现在使用的是sideloadly,能稳定侧载,但是自签软件都会报这个错,期待大佬给出稳定自签方案

nanbloom001 avatar Mar 21 '25 14:03 nanbloom001

不过奇怪的是,我前几天使用e-sign并没有成功。现在看到这个issue里面新的回复中,使用e-sign重新打包后的安装包可以在SideStore中自签。或许我应该重新尝试这种方法,并将打包的结果上传到我的临时仓库中。

louvyu avatar Mar 21 '25 14:03 louvyu

首先我先在羽毛中导入了一张过期的企业证书,并使用该证书签名了1.6.2版本的kazumi。接下来是和很多签名软件不同的一点,这个软件可以自定义签名ipa安装包的属性。暂时不清楚具体是哪个属性让kazumi变得能正常使用sidestore签名,总之我把所有属性的状态截图了下来。(注:图中的注入第三方库和修改Dylibs功能,我已检查过并不是默认勾选的) Image Image Image Image 有人在这个回答中提到过 altstoreio/AltStore#1034 (评论)

该方法就是参照这个问题里面的

好的好的,我现在使用的是sideloadly,能稳定侧载,但是自签软件都会报这个错,期待大佬给出稳定自签方案

我认为我目前使用SideStore(这个软件似乎是用Altstore改的但与Altstore不同)的方案还是很不错的,目前用了2个多月没什么大问题。期间我有长达一个月不在我的电脑身边也能使用ios看番。另外我用爱思助手自签的时候好像没报过这个错,所以我前几个月都是用爱思助手来自签Kazumi,直到不久发现SideStore

louvyu avatar Mar 21 '25 14:03 louvyu

@Predidit 更正我的一个错误,或许是因为我原先设备的e-sign本身的问题,使用e-sign重新打包之后的Kazumi无法使用SideStore自签(该app是随着我的老设备迁移数据过来的)。现在在我安装了较新的e-sign之后,e-sign重新打包的kazumi可用SideStore自签。另外我注意到,e-sign中可以使用3种不同的压缩方法来压缩安装包,分别是速度(文件较大)、兼容(文件大小中等)、以及大小(文件较小)。我现在已将这三个ipa分别命名为"e-sign_Kazumi_large.ipa""e-sign_Kazumi_medium.ipa""e-sign_Kazumi_small.ipa"这三种压缩方式打包出来的文件均可以正常使用SideStore侧载Kazumi。我已上传到我之前的临时仓库中。

我同时检查了其他我用来签过Kazumi的自签软件(gbox、魔力签和爱思助手),目前均为最新版本。应该不会有软件版本原因带来的影响了。

louvyu avatar Mar 21 '25 15:03 louvyu

@louvyu 尝试侧载 1.4.4 版本 kazumi

我尝试解压了爱思助手和 feather 打包的 ipa ,里面的内容基本没有区别,都有 _CodeSignature 文件夹,主要的区别是一些文件的类型识别问题,爱思助手和 e-sign 里的文件多被识别为 Unix 可执行文件,而 feather 里的是文稿

Image

ErBWs avatar Mar 23 '25 08:03 ErBWs

@ErBWs

1.4.4 在之前的 Issue反馈中是可以侧载的,1.4.4 还在使用 fvp ,其对应的 xcframework 是有签名的,也就是 _CodeSign

话说你对 syncPlay 协议的实现有兴趣吗,我在延时补偿遇到了相当大的问题

Predidit avatar Mar 23 '25 09:03 Predidit

有兴趣,但不是现在

从来没接触过 socket 编程,尝试实现会对我面试有非常大的帮助,但是毕设 ddl 又提前了。。

ErBWs avatar Mar 23 '25 09:03 ErBWs

其对应的 xcframework 是有签名的,也就是 _CodeSign

爱思助手打包的 ipa 里面每个 framework 文件都有这个文件夹,但是不能侧载。我不是很理解这里面发生了什么

ErBWs avatar Mar 23 '25 09:03 ErBWs

@louvyu 尝试侧载 1.4.4 版本 kazumi

我尝试解压了爱思助手和 feather 打包的 ipa ,里面的内容基本没有区别,都有 _CodeSignature 文件夹,主要的区别是一些文件的类型识别问题,爱思助手和 e-sign 里的文件多被识别为 Unix 可执行文件,而 feather 里的是文稿

Image

1.4.4版本的kazumi可以直接使用SideStore侧载

louvyu avatar Mar 23 '25 13:03 louvyu

我在想能不能上传 testflight,90天有效和 10000 安装应该是非常足够的

ErBWs avatar Apr 01 '25 03:04 ErBWs

@ErBWs

如果愿意使用自己的 Apple 开发者账号,我们可以上架 testflight

其实审核的问题比较大,我们应该很难通过审核

Predidit avatar Apr 01 '25 04:04 Predidit

我也觉得审核可能过不了

ErBWs avatar Apr 01 '25 04:04 ErBWs

大佬们,请原谅我在这里发问: 首先我使用的是高版本的IOS 18,同时使用高版本的Mac。根据官方文档,我在Mac上使用Sideloadly自签失败,失败的原因如下: Install failed: Guru Meditation f65043@1006:23a71c Invalid file 根据一些查阅,该问题与我在手机上使用AltStore自签失败的原因似乎一致:ldid.cpp(1461): _assert(): end >= size - 0x10。也同“题主”用SideStore的报错似乎一致。 现在我想知道,该问题是否已经存在解决方案。当然我有看[iOS] 自签名注意事项 #819 ,由于其中的方法与官方文档有一定的出处,所以我想先验证官方文档的可行性,见谅!

Jacob0502 avatar Oct 11 '25 17:10 Jacob0502

我也觉得审核可能过不了

試試偽裝應用呢,大部分的免費影視和小說軟件都是通過這種方式上架的

WingChunWong avatar Nov 20 '25 02:11 WingChunWong