簡體   English   中英

在iOS中的設備中構建應用程序時,Twilio崩潰

[英]Twilio crash while building the app in device in IOS

我已經通過可可豆莢添加了Twilio SDK和libJingleConnection。

Twilio庫(如libssl.a,libcryto.a)與Libjingle_Connection庫(如libwebrtc.a)發生沖突,因此twilio崩潰了。沒有集成libjingle_connection。

Twilio集成工作正常。

類似於下面的問題

使用Twilio iOS SDK並構建Cordova應用程序openssl崩潰時

但是我需要在項目中同時保留libjingle_connection和twilio。

當我在設備中構建應用程序時。 我的應用程序崩潰如下。

Twilio_Crash

我的其他鏈接器標志是-ObjC和$(繼承)

我找不到崩潰的原因。

請提出任何解決此錯誤的解決方案。

提前致謝...!

iii

請按照以下步驟將twilio集成到app中。

步驟1:導入所需的框架

在此處輸入圖片說明

步驟2:將標頭和庫文件夾復制到您的項目中。

步驟3:添加其他鏈接器標志(不僅是-ObjC,而且是-lTwilioClient,-lcrypto和-lssl)

在此處輸入圖片說明

步驟4:添加標題和庫搜索路徑

您復制的標題文件夾的路徑:$(SRCROOT)/ Headers

您復制的庫文件夾的路徑:$(SRCROOT)/庫

步驟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

在構建設置和.pch文件的路徑中,將Precompile Prefix標頭設置為yes。

完成此步驟后,您的項目應編譯並生成,可以運行它,但是,要使用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:功能令牌:

檢查此鏈接以了解如何生成功能令牌。

步驟8:創建一個makeCall.php文件,並在您的twiML應用程序(Twilio acc)中設置進行呼叫的鏈接。

步驟9:從xcode向客戶端注冊。

在您的basicPhone.h文件中

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

並且在basicPhone.m方法中,您必須具有以下功能

getCapabilityTokenWithParameters

使用您的capabilitiesToken url更改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];

這就是我的做法,它的工作沒有任何問題。

如果有幫助,我會感覺很好。

從其他鏈接器標記中刪除-objC 對我有用

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM