Twilio在iOS设备中构build应用程序时崩溃

我已经通过cocoa豆荚添加了Twilio SDK和libJingleConnection。

诸如libssl.a,libcryto.a之类的Twilio库与libwebtc.a之类的libjingle_Connection库发生冲突,所以twilio崩溃了。没有集成libjingle_connection。

Twilio集成工作正常。

它类似于下面的问题

当使用Twilio iOS SDK和build立cordova应用程序openssl崩溃

但是我需要在我的项目中保留libjingle_connection和twilio。

当我在设备上构build应用程序。 我的应用程序崩溃,如下所示..

Twilio_Crash

我的其他链接器标志是-ObjC和$(inheritance)

我无法find崩溃的原因..

请提出任何解决scheme来解决错误..

提前致谢…!

Hiii,

请按照步骤将twilio集成到应用程序中。

第1步:导入所需的框架

在这里输入图像说明

第2步:将标题和库文件夹复制到您的项目中。

步骤3:添加其他链接器标志(不仅是-ObjC,而且还有-lTwilioClient,-lcrypto,-lssl)

在这里输入图像说明

第4步:添加标题和库searchpath

$(SRCROOT)/ Headers

您复制的库文件夹的path:$(SRCROOT)/ Libraries

第5步:添加前缀头文件

#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 

在构build设置中将Precompile Prefix标头设置为yes,并使用.pch文件的path。

经过这个步骤你的项目应该编译和构build,你可以运行它,但是要使用twilio,你需要生成权能令牌。

第6步:从Twilio的BasicPhone示例复制basicPhone.h和basicPhone.m文件到您的项目中。

然后在Appdelegate中创build一个全局对象,我们可以通过项目访问。

在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步:function令牌:

检查此链接以了解如何生成function令牌。

第8步:创build一个makeCall.php文件,并在您的twiML应用程序(Twilio acc)设置它的链接进行调用。

第9步:从xcode注册客户端。

在你的基本Phone.h文件中

 #define BPDefaultClientName @"abc" #define BPCapabilityTokenKeyIncomingClient @"abc" 

而在你的基本Phone.m方法中你必须有这个function

 getCapabilityTokenWithParameters 

使用您的capabilitiesToken url更改urlString。

如果你想要传入和传出,那么你的能力令牌url应该是这样的:

 https://abc.herokuapp.com/token?allowOutgoing=true&client=abc 

第10步:在你的viewcontroller.hlogin到twilio

创build一个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 。 它为我工作