清单签名未成功验证

时间:2018-07-20 09:42:00

标签: ios .net passbook

我正在为我们的应用实现存折,该存折在Android上运行良好,但现在在iOS和Mac OS上运行良好,这可能是由于其签名或认证。

我有2个证书文件:

  1. company.pfx(有效期至2021年)
  2. AppleWWDRCA.cer(最新版本)

并且还具有该.pfx文件的密码。

我正在.NET MVC Webapi中使用 dotnet-passbook 框架,也可以在存储库 here 中找到我的问题。


我正在使用以下代码生成de .pkpass 文件:

     public static byte[] Generate(Models.PassKey.PassBookTicketData data)
      {
        // Generator to get the passkey
        var generator = new PassGenerator();

        string appleCertPath = (HttpContext.Current.Server.MapPath("~/Certificates/AppleWWDRCA.cer"));
        string companyCertPath = (HttpContext.Current.Server.MapPath("~/Certificates/company.pfx"));

        // Request to send
        var request = new PassGeneratorRequest()
        {
            PassTypeIdentifier = "pass.com.company",
            TeamIdentifier = "TEAM",
            Certificate = File.ReadAllBytes(companyCertPath),
            CertificatePassword = ConfigurationManager.AppSettings["PASSBOOK_PASSWORD"],
            AppleWWDRCACertificate = File.ReadAllBytes(appleCertPath),
            SerialNumber = Guid.NewGuid().ToString(),
            Description = data.Description,
            OrganizationName = "some organization",
            BackgroundColor = ColorHexToPassBookColor("#00517c"),
            ForegroundColor = ColorHexToPassBookColor("#f68700"),
            LabelColor = ColorHexToPassBookColor("#ffffff"),
            LogoText = "some text",
            GroupingIdentifier = data.EventCode
        };

             // .... images, icons, fields, etc

             return generator.Generate(request);
       }

它缺少添加字段,图像,图标的部分,但是现在不相关了,如果需要,我用整个代码创建了一个 Gist


我需要在发送新证书时使其生效吗?

1 个答案:

答案 0 :(得分:1)

我是dotnet-passbook的开发人员,我帮助Emiliano在Github上解决了此问题。

问题是用于签名清单的pfx证书。

该证书不是从Apple Developer门户生成的,因此,缺少必需的信息。我通过验证工具(https://pkpassvalidator.azurewebsites.net)进行了传递,这使我对问题出在哪里有所了解。一旦确定通过类型标识符和团队标识符值不同,便会进一步调查证书。

您可以在此处阅读问题的完整历史记录-https://github.com/tomasmcguinness/dotnet-passbook/issues/69