使用 .Net 为 Apple 存折创建可下载的通行证 (*.pkpass)

Posted

技术标签:

【中文标题】使用 .Net 为 Apple 存折创建可下载的通行证 (*.pkpass)【英文标题】:Create downloadable passes (*.pkpass) for Apple passbook with .Net 【发布时间】:2017-11-17 09:33:22 【问题描述】:

我需要在 .Net 中开发一个网站,该网站可以创建可作为存折文件 (*.pkpass) 下载的活动门票。我试过用。 Nuget 中提供了 Dotnet-passbook 库。但任何创建的通行证都不会在 iPhone 中打开。有没有人遇到过这个问题?对完成这项任务还有其他建议吗?

【问题讨论】:

如果可以编译通行证,则更有可能是证书或其他配置或内容问题(例如缺少图标文件),不太可能是库。 感谢您的评论。是的,它被编译并创建了 pkpass 文件。但不能在 iphone 内部工作。如果图像等丢失,是否可以不打开? “不工作”不足以诊断。当您尝试添加通行证时,iPhone 日志会显示什么?他们应该告诉你失败的原因。 :无效数据错误读取pass pass.com.cas.passbook/1212t。提供的 passTypeIdentifier 或 teamIdentifier 可能与您的证书不匹配,或者无法验证证书信任链。 :Failed to add pass:'Error Domain=PKPassKitErrorDomain Code=1 "Pass cannot be read because it is not valid."UserInfo=NSLocalizedDescription=Pass cannot be read because it is not valid., NSUnderlyingError Error Domain =PKPassKitErrorDomain Code=1 "提供的 passTypeIdentifier 或 teamIdentifier 可能与您的证书不匹配,或者无法验证证书信任链 检查您使用的是最新的 Apple WWDR 证书。与库捆绑的那个可能已于 2016 年 2 月过期。 【参考方案1】:

我也使用 C# 创建 .pkpass,您可以参考我过去的问题 这样 generate pkpass question.

我觉得最大的问题,应该是pass.json文件格式不正确。测试 .pkpass 文件的简单方法必须是使用 xcode 并创建一个 ios 模拟器,将 .pkpass 文件放入模拟器。 xcode 日志会显示您的文件不工作的原因,希望对您有所帮助。

【讨论】:

【参考方案2】:

解决了。它在使用“request.CertThumbprint”而不是引用证书的位置后起作用。谢谢。所以错误是验证通过的认证。

【讨论】:

【参考方案3】:

你需要 xcode 框架或苹果构建包,这里是信息。

https://blogs.msdn.microsoft.com/vcblog/2017/04/18/android-and-ios-development-with-c-in-visual-studio/

在这里你可以下载,视觉工作室已满。 https://www.visualstudio.com/en/downloads/

【讨论】:

感谢您的评论。我有 VS 完整的。这是网络开发而不是移动开发。我需要在线创建通行证。例如:github.com/tomasmcguinness/dotnet-passbook 哦,好吧,那你是说Web App? 我认为,您不能在 Web 应用程序上注入框架 .net,因为要做到这一点,您需要使用此集成制作一个预览应用程序,然后构建一个用于制作新应用程序的功能内容混合,ios和.net。也许你需要其他答案!,祝你好运 webapp 需要一个混合内容应用程序构建器,用于执行此操作:) 看,books.google.com/…

以上是关于使用 .Net 为 Apple 存折创建可下载的通行证 (*.pkpass)的主要内容,如果未能解决你的问题,请参考以下文章

将 div 转换为可下载的图像

如何通过可下载的链接将文本保存为 .txt 文件?

点击预测-超过1TB可下载的数据集

将div转换为可下载的图像

Apple Pay - 存折本为空

从 JSON 格式的字符串转换为可下载的 JSON 文件