如何在Xamarin iOS中获取iPhone已安装应用列表?是否可行?
在Xamarin iOS中获取已安装应用列表的可行性与实现
一、苹果政策与可行性
LSApplicationWorkspace属于苹果私有API,面向App Store上架的应用绝对不允许使用,苹果审核时会检测私有API调用,直接拒绝通过。- 若应用仅用于企业内部部署、测试环境或越狱设备,使用该私有API是可行的,但无法上架公开应用商店。
二、Xamarin iOS对应的C#实现代码
对应你提供的Objective-C代码,Xamarin中可通过ObjCRuntime库调用私有API,代码如下:
using ObjCRuntime; using Foundation; // 获取LSApplicationWorkspace类实例 Class lsWorkspaceClass = new Class("LSApplicationWorkspace"); Selector defaultWorkspaceSelector = new Selector("defaultWorkspace"); NSObject workspace = lsWorkspaceClass.PerformSelector(defaultWorkspaceSelector); // 调用allApplications方法获取已安装应用列表 Selector allAppsSelector = new Selector("allApplications"); NSArray installedApps = workspace.PerformSelector(allAppsSelector) as NSArray; // 遍历输出应用信息 foreach (NSObject app in installedApps) { Console.WriteLine(app.Description); }
注意事项
- 代码需引用
ObjCRuntime和Foundation命名空间。 - 该实现依赖私有API,仅适用于非App Store发布场景,上架必被拒。
内容的提问来源于stack exchange,提问作者prashanth
相关产品推荐
相关产品推荐

