非越狱iOS设备的替代应用商店

2020-11-09 05:17:34

AltStore是一款iOS应用程序,只需你的苹果ID,你就可以将其他应用程序(.ipa文件)侧面加载到你的iOS设备上。AltStore用你的个人开发证书对应用程序进行注销,并将它们发送到桌面应用程序AltServer,它会使用iTunes WiFi同步将已辞职的应用程序安装回你的设备。为了防止应用程序过期,AltStore还会在与AltServer相同的WiFi上定期在后台刷新您的应用程序。

在最初的版本中,我专注于为发布我自己的应用程序--主要是Delta,我的iOS一体机模拟器--建立一个坚实的基础。不过,现在Delta已经发布了,我开始致力于增加对任何人都可以通过AltStore列出和发布他们的应用的支持(欢迎投稿!🙂)。

在后台定期刷新应用程序以防止它们过期(与AltServer在同一WiFi上时)。

为什么选择iOS 12.2+和MacOS 10.14.4+?这样做可以让我分发所有AltStore应用程序,而无需在其中嵌入SWIFT库。这帮助我减少了大约30%的下载大小,从而负担得起带宽成本,但也显著地缩短了使用AltStore安装/更新应用程序所需的时间。不过,如果您自己重新编译AltStore和/或AltServer,您应该能够将它们的部署目标分别降低到iOS 12.0和MacOS 10.14.0,没有任何问题。

AltStore只是一个常规的沙箱iOS应用程序。AltStore应用目标包含AltStore的绝大多数功能,包括通过AltStore下载和更新应用的所有逻辑。AltStore大量使用大多数iOS开发者熟悉的标准iOS框架和技术,例如:

AltServer也只是一个普通的沙盒MacOS应用程序。不过,AltServer比AltStore简单得多,因此只有几个文件。

AltSign是我的内部框架,AltStore和AltServer都使用它来与苹果的服务器通信并退出应用程序。有关更多信息,请查看AltSign Repo。

Roxas是我在所有iOS项目中使用的内部框架,开发它是为了简化iOS开发中使用的各种常见任务。有关更多信息,请查看Roxas回购。

如果您已经是iOS或MacOS开发人员,AltStore和AltServer的编译和运行都相当简单。要编译AltStore和/或AltServer:

打开AltStore.xcworkspace并在项目导航器中选择AltStore项目。在Signing&;Capability选项卡上,将团队从Yvette Testut更改为您自己的帐户。

(仅限AltStore)将Info.plist中的ALTDeviceID的值更改为您的设备的UDID。通常,AltServer在安装过程中会将设备的UDID嵌入到AltStore的Info.plist中。在运行Xcode时,你需要自己设置值,否则AltStore不会为合适的设备放弃(甚至安装)应用程序。

(仅限AltStore)将Info.plist中的ALTServerID的值更改为您的AltServer的服务器ID。这是由AltServer在安装过程中嵌入的,以帮助AltStore区分同一网络上的多个AltServer,您可以通过使用Bonjour浏览应用程序并记下AltServer通告的serverID来找到这一点。这并不是绝对必要的,因为如果AltStore找不到嵌入了服务器ID的AltServer,它仍然会退回到尝试另一个AltServer。但是,这在有多个AltServer在运行的情况下会有所帮助(加上错误消息更有帮助)。

(仅限AltServer)安装Carthage(如果您使用的是Homebrew,则可以使用BREW Install Carthage执行此操作)。然后在存储库的根目录中运行Carthage update。

由于AltStore使用的一些依赖项需要许可,我别无选择,只能在AGPLv3许可下分发AltStore。话虽如此,我对AltStore的目标是让它成为一个开放源码项目,任何人都可以不受限制地使用,所以我明确允许任何人以任何形式使用、修改和分发我在这个项目中的所有原始代码,不管有没有归属,而不用担心法律后果(然而,依赖关系仍然受其原始许可证的约束)。