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应用程序。 我的应用程序崩溃,如下所示..
我的其他链接器标志是-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
。 它为我工作