Custom Capability 是uwp开发中普通开发者较为不常用的内容,但是在一些OEM和驱动厂商,使用频率比较高
Custom Capability 有两种用户:
1.普通应用程序开发者;
2.Custom Capability 拥有者(一般为OEM,驱动厂商,比如Realtek,Dolby,Intel)
一、对于应用程序的开发者
(可以去这儿看微软的官方文档:https://docs.microsoft.com/en-us/windows-hardware/drivers/devapps/using-a-custom-capability-to-pair-hsa-with-driver)
1.获取自己 App 的 PFN (Package Family Name)
注意:PFN不能自己填,在 Windows Developer Center 中创建 你自己的 App 后,PFN就已经定下来了,不能更改,所以可以去 微软开发者中心的 Dashborad 中,查看自己 App 的 PFN.
2.获取 Certificate Signature Hash
C:\Windows\System32\certutil.exe -dump 证书名称
在打印出的信息中,找到 “Signature Hash”
注意:证书需要使用最终上传应用商店所使用的证书,这个证书会在你创建上传往商店的程序包时,VS自动生成,后缀为 ".cer"。
3.提交1、2步骤取得的 PFN 和 Hash 值,一般是发送给你需要使用的 Custom Capability 的提供者,他们会为你生成一个 SCCD (Signed custom capability Descriptor) 文件
注意:其实很大程度上,app 的开发者就是 custom capability 的提供者,如果真不是,你可以选择电话,邮件,微信和提供者取得联系。
4.将SCCD文件放到你App工程根目录,并在工程中引用,并将该文件的 Build Action 设置成为 Content
5.在 App 的配置清单文件中添加对该 Custom Capability 的引用
<Capabilities> <uap4:CustomCapability Name=”CompanyName.customCapabilityName_Publisher ID” /> Capabilities>
至此,就可以使用该 Custom Capability 所支持的 Driver 或者 RPC service 了。
备注:
通常 Custom Capability 的拥有者对你的应用添加签名需要一定时间,十天半个月是有可能的,所以为了不影响你的开发进度,可以在开发者模式下,使用一个测试的 SCCD 文件,文件配置如下
xml version="1.0" encoding="utf-8"?> <CustomCapabilityDescriptor xmlns="http://schemas.microsoft.com/appx/2016/sccd" xmlns:s="http://schemas.microsoft.com/appx/2016/sccd"> <CustomCapabilities> <CustomCapability Name="你要使用的 Custom Capability 的名称">CustomCapability> CustomCapabilities> <AuthorizedEntities> <AuthorizedEntity AppPackageFamilyName="你的 APP 的 PFN " CertificateSignatureHash="64个字母数字组合">AuthorizedEntity> AuthorizedEntities> <Catalog>FFFFCatalog> CustomCapabilityDescriptor>
等到正式的 SCCD 文件签名完成后,就可以替换这个 测试版的文件了。
待续......