我想将用于支付的 venmo 库集成到 iOS 应用程序中。
我按照venmo github 项目创建了它的演示。
根据下面 github 项目的描述,是在浏览器中显示 venmo app/open venmo 的代码:
- (IBAction)payButtonPressed:(UIButton *)sender
{
// App crashes here. Does not crash if I comment this line.
venmoClient = [VenmoClient clientWithAppId:AppId secret:AppSecret];
VenmoTransaction *venmoTransaction = [[VenmoTransaction alloc] init];
venmoTransaction.type = VenmoTransactionTypePay;
venmoTransaction.amount = [NSDecimalNumber decimalNumberWithString:@"5"];
venmoTransaction.note = @"Payment for something";
venmoTransaction.toUserHandle = @"Name";
VenmoViewController *venmoViewController = [venmoClient viewControllerWithTransaction:
venmoTransaction];
if (venmoViewController) {
[self presentViewController:venmoViewController animated:YES completion:nil];
}
}
当我运行项目时,它在方法的第一行崩溃。如果我将其注释掉,则它不会崩溃。
以下是它抛出的错误消息:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSBundle 名称]:无法识别的选择器已发送到实例 0x17556e00”
有人用过venmo吗?
更新:我从venmo-ios-sdk下载了项目。打开示例项目并尝试运行。但它甚至不编译。
然后我尝试通过添加 venmo ios sdk 来创建一个新的演示。根据 gihub 自述文件,我必须添加
吊舱 'venmo-ios-sdk', :git => ' https://github.com/venmo/venmo-ios-sdk '
到 Podfile。但它会引发错误:
[!] 给定 podspec 的名称
Venmo-iOS-SDK
与预期的不匹配venmo-ios-sdk
然后我尝试添加
pod 'Venmo-iOS-SDK', :git => ' https://github.com/venmo/venmo-ios-sdk '
它允许安装。
现在,根据教程,有两种付款方式。
- 切换到 Venmo 应用程序:尝试此操作会引发错误
Transaction failed with error: The current session is not open.
- 使用 Venmo API:这会抛出
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Venmo handleOpenURL:]: unrecognized selector sent to instance 0x8e8a410'
. 这很清楚,因为在Venmo.m文件中没有实现这样的方法。但它是在Venmo.h文件中声明的。