标签: passkit

PushSharp发送passkit push时无效的DeviceToken长度

我尝试在Apple passkit相关项目中使用PushSharp.

我目前的问题是关于passkit推送.

当我尝试创建我的通知时,它说

device tokent length无效(确切的异常消息:无效的DeviceToken长度.

var notif = new ApnsNotification(token, payload);
Run Code Online (Sandbox Code Playgroud)

当我注册一个新的passkit优惠券时,它的令牌长度是32.对我来说似乎没问题.

应该是什么问题?PushSharp是否支持passkit?正如我所见,有些人使用它,但我找不到任何关于它的官方信息.

请注意,我知道PushSharp使用它发送普通推送消息,它已经工作多年没有任何问题.我的问题是与passkit相关的推动.

非常感谢!

编辑

在Baris Akar的建议改变代码之后,问题得到解决,但另一个问题出现了:

Apple Notification Failed: ID=1, Code=ConnectionError

2016-11-18 11:07:22.de.[INFO]停止:等待任务2016-11-18 11:07:22.de.[INFO]等待所有任务1 2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:发送批次ID = 1,Count = 1 2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:已发送批处理,等待可能的响应... Apple Notification Failed:ID = 1,Code = ConnectionError 2016-11-18 11:07:22.de.[INFO]所有任务完成2016-11-18 11:07:22.de.[INFO]通过时所有2016-11-18 11:07:22.de.[INFO] Broker IsCompleted 2016-11-18 11:07:22.de.[DEBUG]经纪人任务结束2016-11-18 11:07:22.de.[INFO]停止:完成等待任务2016-11-18 11:07:22.de.[INFO] APNS-Client [1]:批量读取= 1,重置批量计时器...

c# apple-push-notifications pushsharp passkit

12
推荐指数
1
解决办法
591
查看次数

iOS 13上的ApplePay错误“无法连接到远程警报视图服务”

我已经完成了ApplePay的全面工作。都可以在iOS10、11和12上正常运行。

从iOS 13和Xcode 11的第一个测试版开始至今(iOS13GM和Xcode 11GM),ApplePay授权模式不会出现。

PKPaymentRequest应该没问题,因为它可以在以前的OS版本上运行,并且当我尝试演示时,PKPaymentAuthorizationViewController可以在控制台中找到它:

[General] Connection to remote alert view service failed
Run Code Online (Sandbox Code Playgroud)

我查看了其他问题,并尝试关闭并重新打开ApplePay功能几次,然后进行硬清理,重新启动。我什至用新的商家ID和证书创建了一个新应用,仍然得到了相同的结果-在iOS 12上可以运行,在iOS 13GM上则不能。

更新:

使用在iOS 12.2模拟器上运行的Xcode 11GM,一切都可以正常工作。iOS 13GM模拟器上的相同代码不起作用。

xcode passkit swift applepay ios13

10
推荐指数
0
解决办法
375
查看次数

使用 SwiftUI 实现 Apple Pay

这是我第一次在一个大项目中使用 PassKit 和 SwiftUI。我正在尝试实现 Apple Pay SwiftUI,并且由于还没有本地方式来实现,因此我尝试将 PKPaymentAuthorizationViewController 包装在 UIViewControllerRepresentable 中,但我不确定我是否正确执行此操作。

该视图显示正确,并且在单击它付款时似乎可以正常工作。我通过将视图绑定到 isPresentingApplePay bool 来控制显示窗口(见下文)。应该关闭窗口时会发生问题。点击cancel按钮不会关闭视图;有时它甚至不调用 paymentAuthorizationViewControllerDidFinish 委托函数。提交付款也会发生同样的事情。有时会调用 didFinish 委托,但不会取消视图。我尝试传递绑定变量 isPresentingApplePay 并将其从 didFinish设置为false但它没有做任何事情。让视图消失的唯一方法是点击苹果支付窗口的任何部分。

有谁知道我做错了什么?有什么我完全想念的吗?

通过将视图绑定到 if statement

这是我的 PKPaymentAuthorizationViewController 包装器:

import Foundation
import PassKit
import SwiftUI

struct ApplePayController: UIViewControllerRepresentable {
    @Environment(\.presentationMode) var presentationMode
    @EnvironmentObject var userData: UserData
    @Binding var purchase: Purchase
    @Binding var isPresenting: Bool

    let items: [PKPaymentSummaryItem]

    func updateUIViewController(_ uiViewController: PKPaymentAuthorizationViewController, context: Context) {

    }

    typealias UIViewControllerType = PKPaymentAuthorizationViewController


    func makeUIViewController(context: Context) …
Run Code Online (Sandbox Code Playgroud)

ios passkit applepay swiftui uiviewrepresentable

10
推荐指数
1
解决办法
2587
查看次数

为什么PKPass采用错误指针?

根据Apple的文档,在Swift中初始化PKPass需要两个元素,Pass数据和错误指针.

init(data data: NSData,
error error: NSErrorPointer)
Run Code Online (Sandbox Code Playgroud)

根据Apple的Swift文档,错误处理段落,

在Cocoa中,产生错误的方法将NSError指针参数作为其最后一个参数,如果发生错误,该参数将使用NSError对象填充其参数.Swift会自动将产生错误的Objective-C方法转换为根据Swift的本机错误处理功能引发错误的方法.

但有一个说明:

消耗错误的方法(例如使用NSError对象参数获取完成处理程序的委托方法或方法)不会成为Swift导入时抛出的方法.

由于该方法似乎并不消耗,而是在需要时使用指针设置错误,这似乎违背了Apple对错误处理的解释.我期待更多的代码:

  do {
      let modifiedPass : PKPass = try PKPass(data: data)
     } catch let errorCaught as NSError
     {
        print("Error: \(errorCaught.domain)")
    }
Run Code Online (Sandbox Code Playgroud)

我可悲的误解是什么,或者可能是什么原因造成这种明显的不匹配?

ios passkit swift

9
推荐指数
0
解决办法
397
查看次数

应用程序在App Store中显示"支持钱包",即使钱包在功能中已关闭

我们最近在应用商店推出了iOS应用.一些代码文件引用了Passkit框架.此外,还添加了权利

com.apple.developer.pass-type-identifiers 
Run Code Online (Sandbox Code Playgroud)

关键和各自的团队ID.但在内部应用程序功能中,我们已禁用Wallet.但仍然在应用程序商店的应用程序描述中支持它显示钱包.有人遇到过同样的问题吗?有没有人知道它为什么显示?是因为我们添加的权利还是因为引用Passkit.

app-store entitlements ios passkit wallet

8
推荐指数
1
解决办法
523
查看次数

将它添加到Apple Wallet时,您可以控制通行证的顺序吗?

我正在使用此API将多个分组的传递添加到Apple Wallet.我意识到钱包中添加的传递不遵循我给它给这个API的数组[PKPass]的顺序.

public func addPasses(passes: [PKPass], withCompletionHandler completion: ((PKPassLibraryAddPassesStatus) -> Void)?)
Run Code Online (Sandbox Code Playgroud)

这里要注意的有趣的事情是,当我View All在添加通行证之前点击它确实按顺序显示所有通行证但是在点击Add All之后然后启动钱包应用程序以查看添加的顺序通过它不再相同.

任何线索为什么会发生这种情况以及如何维持秩序?

ios passbook passkit swift wallet

7
推荐指数
1
解决办法
912
查看次数

"拒绝访问PassKit共享缓存文件......"?

iOS 11下的我的应用程序正在记录:

Access to PassKit Shared Cache file denied. Please verify sandbox exceptions and/or file a Radar.
Run Code Online (Sandbox Code Playgroud)

之前没见过.有没有人知道这是从哪里来的?

(我的应用程序使用低级别的钥匙串方法而不是PassKit.但HockeyApp似乎.)

ios passkit ios11

7
推荐指数
1
解决办法
628
查看次数

删除对Passkit的引用是否允许我将App从One Developer Account转移到另一个Developer帐户?

我无法将我的iOS应用程序从一个开发人员帐户转移到另一个开发人员帐户,因为它包含引用PassKit.framework.如果我删除,是否可以转移应用程序PassKit.framework.

我的应用不包含任何类型的电子钱包权利.

ios passkit app-transfer wallet

7
推荐指数
0
解决办法
89
查看次数

错误:Apple pay 未完成

我已经使用 Passkit 框架在我的 iOS 应用程序中实现了 Apple Pay。我做了所有 这些事情来设置 Apple Pay。我正在使用沙箱帐户。我在钱包应用程序中添加了卡片,这些卡片是我从这个链接复制的测试卡片。我正在使用的这段代码:

 print("\(((self.grandTotalLabel.text!).replacingOccurrences(of: "$", with: "")))")

        let paymentNetworks = [PKPaymentNetwork.amex]

        if PKPaymentAuthorizationViewController.canMakePayments(usingNetworks: paymentNetworks){

            paymentRequest.supportedNetworks = paymentNetworks
            paymentRequest.merchantCapabilities = .capability3DS
            paymentRequest.requiredShippingAddressFields = [.all]
            paymentRequest.paymentSummaryItems = self.itemToSell(shipping: 10.0)

                            let sameDayShipping = PKShippingMethod(label: "Same day divilery", amount: 12.99)
            sameDayShipping.detail = "Same day divilery Detail"
            sameDayShipping.identifier = "sameDay"

            let twDaysShipping = PKShippingMethod(label: "Two days divilery", amount: 4.99)
            twDaysShipping.detail = "Two days divilery Detail"
            twDaysShipping.identifier = "twoDays"

            let freeShipping = …
Run Code Online (Sandbox Code Playgroud)

ios passkit swift applepay

6
推荐指数
1
解决办法
4446
查看次数

iOS PassKit部分更新和隐私

我们想向用户发送iPhone电子钱包卡,其中包含他们随时需要携带的重要健康信息。

出于隐私方面的考虑,我们只想使用Web表单,让用户输入必填字段,包括其姓名和生日等,生成通行证,然后丢弃用户信息,以保护其隐私。

然而,我们也想更新pkpass文件(或内吧,pass.json在未来,如果信息发生变化的一些点文件)。似乎无法进行部分更新(!)?

您将如何解决?

澄清细节

根据@PassKit的回答,我想验证是否可以通过在请求中包括以下完整的 JSON文件来更新“优惠券”卡背面的某些文本:

{
  "coupon": {
     "backFields": [
       {
           "key": "info",
           "label": "Important Information",
           "value": "THIS INFORMATION CHANGED."
       }
     ]
  }
}
Run Code Online (Sandbox Code Playgroud)

iphone json ios passkit wallet

6
推荐指数
1
解决办法
85
查看次数