LSApplicationWorkspace获取iOS应用列表:TrollStore与Xcode编译差异疑问
问题原因分析
核心差异:权限与签名机制
TrollStore安装的应用:
该仓库分发的IPA预先配置了访问私有API所需的特殊权限(Entitlements),比如调用LSApplicationWorkspace相关接口的私有权限。同时TrollStore的安装机制绕过了苹果常规的签名验证流程,允许应用持有这类苹果不对外公开的权限,因此能正常调用allApplications()获取完整的已安装应用列表。Xcode编译安装的应用:
Xcode默认使用开发证书为应用签名,这类签名仅允许使用苹果公开的权限与API。LSApplicationWorkspace属于苹果私有框架,其allApplications()方法需要特定私有权限才能调用,但苹果的开发者签名机制会严格校验权限合法性,私有权限无法通过验证,因此调用后无法获取应用列表。
额外说明
LSApplicationWorkspace是苹果用于系统级应用管理的私有组件,正常情况下第三方应用(包括开发签名的应用)没有访问权限。TrollStore作为越狱生态下的特殊安装工具,才使得应用能够突破这一限制。
内容的提问来源于stack exchange,提问作者ToQuery
相关产品推荐
相关产品推荐

