【问题标题】:The passTypeIdentifier or teamIdentifier provided may not match your certificate, or the certificate trust chain could not be verified提供的 passTypeIdentifier 或 teamIdentifier 可能与您的证书不匹配,或者无法验证证书信任链
【发布时间】:2012-10-11 20:50:19
【问题描述】:

每当我尝试通过按“添加”按钮安装手动打包的存折应用程序时,标题中都会出现错误。我可以成功安装使用“signpass”工具打包的存折应用,但我现在需要在 unix 服务器上创建动态包。

我一直在尝试将我的存折应用程序与来自网络的各种包手动打包,每个包都给我同样的错误。这是我尝试过的几个软件包: https://github.com/maater/TCSH-PKPass https://github.com/devartis/passbook https://github.com/pcperini/PyPKPass

这是创建和压缩的 pass.json(请注意,teamIdentifier 和 passTypeIdentifier 都已填充):

{
  "formatVersion" : 1,
  "passTypeIdentifier" : "pass.votizen.membership",
  "serialNumber" : "ASDF",
  "webServiceURL" : "https://www.votizen.com/passbook/",
  "authenticationToken" : "AUTH_TOKEN",
  "teamIdentifier" : "MY_TEAM_IDENTIFIER",
  "organizationName" : "Matthew Snider",
  "description" : "Your voter registration card",
  "logoText" : "VOTIZEN",
  "labelColor": "#B7B0A8",
  "foregroundColor" : "#5F6062",
  "backgroundColor" : "#FCFAF5",
  "generic" : {
    "headerFields": [
      {
        "key" : "reg_date",
        "label": "VOTER SINCE",
        "value" : "2002"
      }
    ],
    "primaryFields" : [
      {
        "key" : "party",
        "label": "REGISTERED PARTY",
        "value" : "Democrat"
      }
    ],
    "secondaryFields" : [
      {
        "key" : "election",
        "label" : "NEXT ELECTION",
        "value" : "November 6, 2012"
      },
    ],
    "auxiliaryFields" : [
      {
        "key" : "polling_place",
        "label" : "POLLING PLACE",
        "value" : "268 E Julian Street, San Jose, CA 95112",
        "textAlignment" : "PKTextAlignmentLeft"
      }
    ],
    "backFields" : [
      {
        "key" : "elections",
        "label" : "ELECTIONS YOU VOTED IN",
        "value" : "2010 General\n2008 General\n2008 Primary\n2004 General"
      },
      {
        "key" : "polling",
        "label" : "DIRECTIONS TO YOUR POLLING PLACES",
        "value" : "https://maps.apple.com/maps?q=268+E+Julian+Street,+San+Jose,+CA+95112"
      },
      {
        "key" : "website",
        "label" : "Powered by Votizen",
        "value" : "https://www.votizen.com/"
      }
    ]
  }
}

我按照苹果上的步骤生成我的 Pass Type ID 证书,下载并安装在我的 Keychain Access 中。然后我将它导出为“Certificates.p12”并运行以下命令来生成 certificate.pem 和 key.pem:

set P12 = Certificates.p12
sef PASSWORD = MY_PASSWORD
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -clcerts -nokeys -out certificate.pem 
openssl pkcs12 -passin pass:$PASSWORD -in "$P12" -nocerts -out key.pem -passout pass:$PASSWORD

清单文件创建后我运行:

openssl smime -passin pass:$PASSWORD -binary -sign -certfile wwdr.pem -signer certificate.pem -inkey key.pem -in manifest.json -out signature xs-outform DER

我通过将 Apple 全球开发者关系证书颁发机构导出为隐私增强邮件文件来创建 wwdr.pem。

我在某处读到您需要安装 Apple 根证书颁发机构(我已经安装了),所以这里是我已安装的证书列表:

  • Apple 应用程序集成证书颁发机构 Apple 根 CA
  • Apple 根证书颁发机构申请全球开发者关系
  • 认证机构
  • com.apple.idms.appleid.prd.4f3756614a59746e554a36344e6b55426b64576441413d3d
  • com.apple.ubiquity.peer-uuid.207240B0-758A-4C1E-B173-D1B70FF03533
  • com.apple.ubiquity.peer-uuid.C5D1968F-8923-48E4-A09D-8C9AE485A88B
  • com.apple.ubiquity.ssl-cert.C5D1968F-8923-48E4-A09D-8C9AE485A88B
  • iPhone 开发者:Matthew Snider 通行证类型 ID:
  • pass.votizen.membership

很明显,我使用的证书或我打包它的方式有问题。我不知道我做错了什么。我希望有人有一个想法。

【问题讨论】:

    标签: ios passbook


    【解决方案1】:

    我想通了。在创建 p12 文件时,我没有意识到您需要同时选择证书和私钥。我假设导出证书也将包含私钥,但事实并非如此。当您在 Keychain Access 中导出 Pass Type ID 时,请确保它显示“Export 2 Items”,而不是“Export Pass Type ID: ...”。

    【讨论】:

    • 很高兴您解决了问题!顺便说一句,PyPKPass 只需要私钥进行签名,从中派生证书信息。
    • 我在执行 try 时遇到错误! PKPass.init(数据:对象为!数据)。无效数据错误读取 pass.airarabia.airarabia/62488078_003_SHJ_CGP_2388312279。提供的 passTypeIdentifier 或 teamIdentifier 可能与您的证书不匹配,或者无法验证证书信任链。致命错误:“试试!”表达式意外引发错误:Error Domain=PKPassKitErrorDomain Code=1“无法读取通行证,因为它无效。”通过 API 调用检索的数据在 Andriod 中工作。
    • @MuhammadMaqsood 你能解决这个问题吗?我遇到了同样的错误。
    • @Stephan,对我来说,问题在于我们服务器端的证书到期,它与 Apple 服务器通信以生成 PKPASS。我创建了一个新证书并用过期的证书替换它,它开始工作。
    【解决方案2】:

    我知道这是一个古老的问题,但最近又出现了。问题是“新”Apple WWDR 证书与同样由 Apple 创建的 pass 证书不兼容。

    解决方案是在签名通过时使用“旧”WWDR 证书,该证书将于 2023 年到期。

    【讨论】:

    • 这是我花费无数小时搜索的任何地方都没有提到的解决方案。谢谢好先生。你是救命恩人!!!
    • 它已过期,但它可以工作......而新的没有!
    猜你喜欢
    • 2010-12-03
    • 2021-04-13
    • 2015-07-09
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 2011-10-31
    • 2015-01-17
    • 2019-01-27
    相关资源
    最近更新 更多