介绍
独立开发者Riley Testut最近研发了一个私人商店应用,AltStore。AltStore 是非越狱设备的替代应用程序商店,用户只需要用苹果 ID,即可使用它来安装那些通不过苹果审核的App。
使用方法
通过官方下载
从altstore.io下载AltServer,然后将手机连接电脑进行安装。
通过Github
初次安装,需要先从github上AltStoreclone代码并运行到手机中。
需要Mac电脑中有如下配置:
- Xcode 11
- iOS 12.2+ (AltStore)
- macOS 10.14.4+ (AltServer)
- Swift 5+
- 从github上clone代码到本地
git clone https://github.com/rileytestut/AltStore.git
- 更新git子模块
cd AltStore
git submodule update --init --recursive
- 打开AltStore.xcworkspace,选择运行的scheme为AltStore,并更改
Signing & Capabilities
中的BundleId和Team为自己的账号(无需开发者)。 注意,Mac要连着手机,否则会提示 Failed to create provisioning profile. There are no devices registered in your account on the developer website. Plug in and select a device to have Xcode register it。
4&5. 修改AltStore目录下的Info.plist文件,将ALTDeviceID和ALTServerID修改为自己的手机设备UDID和网络服务ID,其中ALTServerID不是必须的,可以通过Bonjour软件获取。
-
用carthage安装第三方依赖。如果之前已有carthage则在目录下执行命令
carthage update
,否则先安装brew install carthage
。 -
运行app到手机中。
实现方式
从作者的博客Introducing AltStore中可得知,利用的是苹果对于普通开发者调试应用的签名机制。
正常每个用户都可以通过Xcode安装App到自己的手机中,在7天内可以正常运行。作者通过WIFI服务将Mac和手机相连,在使用期过期前通过Mac后台重新对App签名,让安装的App可以继续使用。
同时为了绕开每个用户只能本地安装3个App的限制,会在每次安装新App时,将所有已安装App的provisioning profiles
拷贝并先移除,让系统误以为没有安装过任何应用,最后新App安装完成后再讲之前的provisioning profiles
重新安装到手机中。
更多实现细节可以查看作者的博客
现状&思考
这种安装方式在目前市场上还是非常独特的,但AltStore还只能上传作者自己的应用,从9月份发布到现在还是只有两三个应用,商店能存活下来还在于应用数量,只有解决了该问题,让其他开发者可以直接上传应用才有可能推广。
另外,首次安装需要电脑来签名,后续续签也需要连入WIFT时电脑也是开启状态,但如作者所说,主要是面向未申请个人开发者的用户,无需再付费去签名,所以预计该应用商店并不会有很多受众,但在这些用户群体里还是很有用的。
最后就是安全问题,安装应用需要将苹果账号密码提交给AltStore,作者能获取到所有账号信息,这使安全得不到保证,后期是否能用区块链技术来实现去中心化还有待探究。