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。它对我有用