ExtensionList: 一个快速获取App Extension列表的Tweak.

English Version
Or you can directly go to my github page for further infomation.

ExtensionList 现已上架Bigboss源. 戳这里
Reveal2Loader也已上架,戳这里

Reveal升级2.0之后可以看Plugins,但是RevealLoader配合Applist只能看到用户安装的App,因此抽时间仿照Applist写了ExtensionList并且开源。顺便重写了下RevealLoader,也开源在Reveal2Loader。

ExtensionList

ExtensionList使用的是LSApplicationWorkspaceinstalledPlugins函数来获取所有安装的Plugin,其中包含Today Widget, AppleWatch App等各种App Extension,并支持predicate过滤。

详细用法可以参考Applist的使用说明。

ALSectionDescriptors

  • avaliable-extensions
    ExtensionList移除了ALSectionDescriptors字段suppress-hidden-apps参数。并增加了avaliable-extensions的BOOL属性,用于过滤系统版本要求高于当前设备iOS版本的Plugin。默认值是true

  • predicate
    ExtensionList获取到的是LSPlugInKitProxy实例的数组,predicate是针对这个类的属性进行过滤。LSPlugInKitProxy其中一个属性是protocol,对应的是iOS私有服务的ID。如你需要过滤today extension,就可以在predicate字段写入protocol contains 'com.apple.widget-extension'

关于App Extension的类型,以及对应的ID,可以参考官网文档,或者看extension(*.appex)对应的Info.plist中的NSExtensionPointIdentifier字段。

  • A demo of ALSectionDescriptors
ALSectionDescriptors = (
    {
        title = "Custom Keyboard";
        predicate = "protocol contains 'keyboard-service'";
        "icon-size" = 29;
        "cell-class-name" = ELSwitchCell;
        "avaliable-extensions" = 0;
    },
)

Reveal2Loader

内置了一个RevealServer-2的framework。路径在/Library/Frameworks/RevealServer.framework,可以自己替换。
这个没什么好说,只是改了下PreferenceLoader目录下的plist。

ExtensionList: 一个快速获取App Extension列表的Tweak._第1张图片
IMG_2937.PNG
ExtensionList: 一个快速获取App Extension列表的Tweak._第2张图片
IMG_2938.PNG
ExtensionList: 一个快速获取App Extension列表的Tweak._第3张图片
IMG_2939.PNG

你可能感兴趣的:(ExtensionList: 一个快速获取App Extension列表的Tweak.)