我已经通过可可豆荚添加了Twilio SDK和libJingleConnection。
像libssl.a,libcryto.a这样的Twilio库与libwebrtc.a之类的Libjingle_Connection库发生冲突,所以twilio崩溃了..没有集成libjingle_connection。
Twilio集成工作正常。
类似于以下问题
When using Twilio iOS sdk and building Cordova app openssl crashes
但我需要在我的项目中保留libjingle_connection和twilio。
当我在设备中构建应用程序时。我的应用程序崩溃如下..
我的其他链接器标志是-ObjC和$(继承)
我无法找到崩溃的原因..
请建议任何解决方法以解决错误..
提前致谢...!
答案 0 :(得分:2)
Hiii,
请按照步骤在应用中集成twilio。
第1步:导入所需的框架
第2步:将标题和图书馆文件夹复制到您的项目中。
步骤3:添加其他链接器标志(不仅是-ObjC而且是-lTwilioClient,-lcrypto,-lssl)
第4步:添加标题和库搜索路径
您复制的标头文件夹的路径:$(SRCROOT)/标头
您复制的Library文件夹的路径:$(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
在构建设置中将Precompile Prefix标头设置为yes,以及.pch文件的路径。
完成此步骤后,您的项目应该编译和构建,您可以运行它,但是,要使用twilio,您需要生成功能令牌。
步骤6:从Twilio的BasicPhone示例中复制项目中的basicPhone.h和basicPhone.m文件。
然后在Appdelegate中创建一个我们可以在项目中访问的全局对象。
在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)中设置它的拨打链接。
第9步:从xcode注册到客户端。
在你的basicPhone.h文件中
#define BPDefaultClientName @"abc"
#define BPCapabilityTokenKeyIncomingClient @"abc"
在你的basicPhone.m方法中你必须有函数
getCapabilityTokenWithParameters
使用您的capabilitiesToken网址更改urlString。
如果您想要传入和传出,那么您的功能令牌网址应该是这样的:
https://abc.herokuapp.com/token?allowOutgoing=true&client=abc
步骤10:在你的viewcontroller.h中登录twilio
创建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];
这就是我的做法,它的工作没有任何问题。
如果有帮助,我会感觉很好。
答案 1 :(得分:0)
从其他链接器标志中删除-objC
。它对我有用