我正在尝试.p12
使用共享扩展将邮件附件(这是一个文件)导出到我的 iOS 应用程序。
这是处理共享扩展附件的功能:
@IBAction func processAttachment() {
guard let item = self.extensionContext?.inputItems[0] as? NSExtensionItem,
let provider = item.attachments?.first,
provider.hasItemConformingToTypeIdentifier("com.rsa.pkcs-12") else {
extensionContext!.completeRequest(returningItems: [], completionHandler: nil);
return
}
provider.loadDataRepresentation(forTypeIdentifier: "com.rsa.pkcs-12") { (p12Data, error) in
//Process Data here
}
我遇到的问题是,-26275
当This certificate could not be decoded
我尝试使用SecPKCS12Import
.
我尝试了相同的方法,通过使用本地文件加载替换闭包中的数据:
let pkcsFileURL = Bundle.main.url(forResource: "certificate", withExtension: "p12")!
let pkcsData = try! Data(contentsOf: pkcsFileURL)
到目前为止,从本地文件中解码数据是成功的。
然后,我意识到来自附件和本地文件的数据不匹配。虽然来自附件的数据是9856 bytes
,但本地的数据是5747 bytes
。
我从安装在应用程序中的 iOS Outlook 应用程序共享,显示原始文件为 6KB(更接近从本地文件读取的数据)。
也许附件中的数据没有正确解码,奇怪的是错误数据的大小几乎是原始数据的两倍。
我正在正确读取附件数据吗?
更新
我认为所有问题都是因为附件是作为二进制文件共享的。