IOS 在设备中构建应用程序时 Twilio 崩溃
Twilio crash while building the app in device in IOS
我已经通过 cocoa pods 添加了 Twilio SDK 和 libJingleConnection。
像 libssl.a、libcryto.a 这样的 Twilio 库与像 libwebrtc.a 这样的 Libjingle_Connection 库发生冲突,所以 twilio 正在崩溃。没有集成 libjingle_connection。
Twilio 集成工作正常!
类似下面的问题
但我需要在我的项目中同时保留 libjingle_connection 和 twilio。
当我在设备中构建应用程序时。我的应用崩溃如下..
我的其他链接器标志是 -ObjC 和 $(inherited)
我找不到崩溃的原因..
请提出解决错误的任何解决方案..
提前致谢...!
嗨,
请按照步骤将 twilio 集成到应用中。
第 1 步:导入所需的框架
第 2 步:将 Header 和库文件夹复制到您的项目中。
第 3 步:添加其他链接器标志(不仅是 -ObjC,还有 -lTwilioClient、-lcrypto、-lssl)
第 4 步:添加 Header 和库搜索路径
您复制的 header 文件夹的路径:$(SRCROOT)/Headers
您复制的库文件夹路径:$(SRCROOT)/Libraries
第 5 步:添加前缀 header 文件
#import <Availability.h>
#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#endif
在构建设置和 .pch 文件路径中将预编译前缀 header 设为是。
完成此步骤后,您的项目应该编译和构建,您可以 运行 但是,要使用 twilio,您需要生成功能令牌。
第 6 步:从 Twilio 的 BasicPhone 示例复制 [=84=] 和 basicPhone.m 文件到您的项目中。
然后在 Appdelegate 中创建一个全局 object,我们可以在项目中访问它。
在appdelegate.h
@class BasicPhone;
@interface AppDelegate : UIResponder <UIApplicationDelegate>{
BasicPhone *_phone;
}
@property (strong, nonatomic)BasicPhone *phone;
在 appDelegate.m 文件中合成它
@synthesize phone = _phone;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
/* iOS 8.0 later */
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|
UIUserNotificationTypeBadge|
UIUserNotificationTypeSound
categories:nil]];
}
self.phone = [[BasicPhone alloc] init];
}
第 7 步:功能令牌:
查看此 Link 以了解如何生成功能令牌。
第 8 步:创建一个 makeCall.php 文件并在您的 twiML 应用程序 (Twilio acc) 中将其设置为 link 以进行调用。
第 9 步:从 xcode 向客户端注册。
在你的 basicPhone.h 文件中
#define BPDefaultClientName @"abc"
#define BPCapabilityTokenKeyIncomingClient @"abc"
在你的 basicPhone.m 方法中你必须有函数
getCapabilityTokenWithParameters
用您的 capabilitiesToken url 更改 url 字符串。
如果您想要传入和传出,那么您的功能令牌 url 应该是这样的:
https://abc.herokuapp.com/token?allowOutgoing=true&client=abc
第 10 步:在 viewcontroller.h 中登录到 twilio
创建一个 object 的 basicPhone
@class BasicPhone;
@interface ViewController : UIViewController{
BasicPhone* _phone;
}
@property (nonatomic,retain) BasicPhone* phone;
在ViewController.m
@synthesize phone=_phone;
- (void)viewDidLoad {
[super viewDidLoad];
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
BasicPhone* basicPhone = delegate.phone;
[basicPhone login];
}
拨打外拨电话:
NSDictionary* dictParams = [NSDictionary dictionaryWithObjectsAndKeys:@"xyz", @"To", nil];
NSLog(@"%@",dictParams);
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
BasicPhone* basicPhone = delegate.phone;
[basicPhone connectWithParams:dictParams];
我就是这样做的,而且没有任何问题。
如果有帮助,我会感觉很好。
从其他链接器标志中删除 -objC
。它对我有用
我已经通过 cocoa pods 添加了 Twilio SDK 和 libJingleConnection。
像 libssl.a、libcryto.a 这样的 Twilio 库与像 libwebrtc.a 这样的 Libjingle_Connection 库发生冲突,所以 twilio 正在崩溃。没有集成 libjingle_connection。
Twilio 集成工作正常!
类似下面的问题
但我需要在我的项目中同时保留 libjingle_connection 和 twilio。
当我在设备中构建应用程序时。我的应用崩溃如下..
我的其他链接器标志是 -ObjC 和 $(inherited)
我找不到崩溃的原因..
请提出解决错误的任何解决方案..
提前致谢...!
嗨,
请按照步骤将 twilio 集成到应用中。
第 1 步:导入所需的框架
第 2 步:将 Header 和库文件夹复制到您的项目中。
第 3 步:添加其他链接器标志(不仅是 -ObjC,还有 -lTwilioClient、-lcrypto、-lssl)
第 4 步:添加 Header 和库搜索路径
您复制的 header 文件夹的路径:$(SRCROOT)/Headers
您复制的库文件夹路径:$(SRCROOT)/Libraries
第 5 步:添加前缀 header 文件
#import <Availability.h>
#ifndef __IPHONE_4_0
#warning "This project uses features only available in iOS SDK 4.0 and later."
#endif
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
#endif
在构建设置和 .pch 文件路径中将预编译前缀 header 设为是。
完成此步骤后,您的项目应该编译和构建,您可以 运行 但是,要使用 twilio,您需要生成功能令牌。
第 6 步:从 Twilio 的 BasicPhone 示例复制 [=84=] 和 basicPhone.m 文件到您的项目中。
然后在 Appdelegate 中创建一个全局 object,我们可以在项目中访问它。
在appdelegate.h
@class BasicPhone;
@interface AppDelegate : UIResponder <UIApplicationDelegate>{
BasicPhone *_phone;
}
@property (strong, nonatomic)BasicPhone *phone;
在 appDelegate.m 文件中合成它
@synthesize phone = _phone;
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if ([UIApplication instancesRespondToSelector:@selector(registerUserNotificationSettings:)]){
/* iOS 8.0 later */
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|
UIUserNotificationTypeBadge|
UIUserNotificationTypeSound
categories:nil]];
}
self.phone = [[BasicPhone alloc] init];
}
第 7 步:功能令牌:
查看此 Link 以了解如何生成功能令牌。
第 8 步:创建一个 makeCall.php 文件并在您的 twiML 应用程序 (Twilio acc) 中将其设置为 link 以进行调用。
第 9 步:从 xcode 向客户端注册。
在你的 basicPhone.h 文件中
#define BPDefaultClientName @"abc"
#define BPCapabilityTokenKeyIncomingClient @"abc"
在你的 basicPhone.m 方法中你必须有函数
getCapabilityTokenWithParameters
用您的 capabilitiesToken url 更改 url 字符串。
如果您想要传入和传出,那么您的功能令牌 url 应该是这样的:
https://abc.herokuapp.com/token?allowOutgoing=true&client=abc
第 10 步:在 viewcontroller.h 中登录到 twilio
创建一个 object 的 basicPhone
@class BasicPhone;
@interface ViewController : UIViewController{
BasicPhone* _phone;
}
@property (nonatomic,retain) BasicPhone* phone;
在ViewController.m
@synthesize phone=_phone;
- (void)viewDidLoad {
[super viewDidLoad];
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
BasicPhone* basicPhone = delegate.phone;
[basicPhone login];
}
拨打外拨电话:
NSDictionary* dictParams = [NSDictionary dictionaryWithObjectsAndKeys:@"xyz", @"To", nil];
NSLog(@"%@",dictParams);
AppDelegate* delegate = (AppDelegate*)[UIApplication sharedApplication].delegate;
BasicPhone* basicPhone = delegate.phone;
[basicPhone connectWithParams:dictParams];
我就是这样做的,而且没有任何问题。
如果有帮助,我会感觉很好。
从其他链接器标志中删除 -objC
。它对我有用