Compare commits

...
Sign in to create a new pull request.

33 commits

Author SHA1 Message Date
Christophe Deschamps
190d4f90a9 Fix call merge into conference with video conf server 2024-11-19 08:24:53 +01:00
Christophe Deschamps
3a6ba3fa40 Fix crash toggling video when call is not in streams running state 2024-11-14 11:38:03 +01:00
Christophe Deschamps
25dd82a4da - Clone address in startCall to avoid potential crash with c pointer beeing unrefed.
- Do not force unwrap of incoming call that could be nil
2024-10-15 09:29:27 +02:00
Christophe Deschamps
414e0f613d Fix potential crash 2024-10-15 08:29:59 +02:00
Christophe Deschamps
9715c98da1 Fix crash if activating video but call is not established yet 2024-10-14 12:33:53 +02:00
Christophe Deschamps
7ce40f5b4d Fix crash when no proxy is provided 2024-10-11 07:11:26 +02:00
Christophe Deschamps
851c488c92 Fix password change with flexiapi 2024-10-10 11:34:35 +02:00
Christophe Deschamps
4f3ad2382b Fix crash after removing an account 2024-10-10 08:16:44 +02:00
Christophe Deschamps
57a5ddc59f 5.2.3 build 9 2024-10-09 11:55:40 +02:00
Christophe Deschamps
d40e86cdbf Update contacts use message location based on Apple comments 2024-10-09 11:55:15 +02:00
Christophe Deschamps
5f7167a999 Translation update 2024-10-09 07:59:17 +02:00
Christophe Deschamps
dd5bc2f5cf Ask user permission for smart address book 2024-10-03 14:07:55 +02:00
Christophe Deschamps
614a44d096 Fix external URL opening 2024-10-03 11:50:42 +02:00
Christophe Deschamps
c605914d80 SDK update to 5.3.86 2024-10-02 10:38:29 +02:00
Christophe Deschamps
e712f37d15 Force disable linphone_core_set_chat_messages_aggregation_enabled which could be disabled by installing 6.0 on same device 2024-10-02 10:38:19 +02:00
Christophe Deschamps
6ae50c3d8c Force auto-iterate 2024-09-26 12:59:42 +02:00
Christophe Deschamps
c3bca8d8bf Remove USE_CRASHLYTICS=1 from project.pbxproj 2024-09-26 10:29:56 +02:00
Christophe Deschamps
7f863fde39 5.2.3 - build 4 2024-09-24 12:28:57 +02:00
Christophe Deschamps
d228bceb13 Refresh UI for audio memos when download complete 2024-09-24 12:27:31 +02:00
Christophe Deschamps
4ee930b821 Update change log with audio memo download fix 2024-09-19 19:58:56 +02:00
Christophe Deschamps
776be65518 Prevent Audio memo download in service extension + auto download them in app if configured as such 2024-09-19 19:58:05 +02:00
Christophe Deschamps
abea256244 5.2.3 change log update 2024-09-17 18:45:17 +02:00
Christophe Deschamps
792d3a1a77 5.2.3 build 1 2024-09-17 18:39:21 +02:00
Christophe Deschamps
3ae70487c2 Do not display <xml in chat list when last received messaged is an attechement 2024-09-17 18:38:09 +02:00
Christophe Deschamps
41dbeae626 Fix crash on recorded calls player 2024-09-17 18:37:57 +02:00
Christophe Deschamps
4682482852 Prevent call blind call decline if previous registration had failed 2024-09-17 18:10:43 +02:00
Christophe Deschamps
27021d447e Utility to clear folder recursively 2024-09-17 18:08:30 +02:00
Christophe Deschamps
d6eced6e3c SDK update 5.3.83 2024-09-17 18:08:06 +02:00
Christophe Deschamps
43ea270cff Fix crash on audio player 2024-09-17 18:02:50 +02:00
QuentinArguillere
5588de20f0 Update changelog, podfile and xcodeproj for 5.2.2 version 2024-02-16 11:03:17 +01:00
Christophe Deschamps
f85e0b5118 Fix message display missing when going from a conversation with few messages (not enough to fill screen) to conversation with many messages 2024-02-16 08:03:52 +01:00
Christophe Deschamps
965ee5a476 Fix crash when calling on simulators 2024-02-14 12:34:13 +01:00
Christophe Deschamps
ed47abfe51 Hide broadcast add button in conference history detail 2024-02-14 12:32:41 +01:00
27 changed files with 784 additions and 147 deletions

View file

@ -9,8 +9,29 @@ Group changes to describe their impact on the project, as follows:
Removed for deprecated features removed in this release.
Fixed for any bug fixes.
Security to invite users to upgrade in case of vulnerabilities.
## [5.2.0] - 2023-28-12
## [5.2.3] - 2024-17-09
### Fixed
- Crash when attempting to play audio memo with nil path (multi device sending situation for example)
- Crash playing recorded call
- Callkit ignoring incoming call if a registration failure occured earlier (incl. network connection problems)
- Displaying of <?xml in chat list when last chat message received is a voice memo
- Fix audio memo downlowing when opened from the notification
## [5.2.2] - 2023-28-12
### Added
- Log sending option will now give a link to download the logs, rather than send the whole log file
- Taping a notification when app is started now properly opens the conversation
- Open call history when taping a missed call notification
### Changed
- Update linphone SDK to 5.3.20
### Fixed
- Fix replying to images not displaying the image preview in the reply window
- Various UI fixes in chatrooms
## [5.2.1] - 2023-28-12
### Added
- Added extra Czech and Japanese translations

View file

@ -20,6 +20,7 @@
#import "PhoneMainView.h"
#import "LinphoneManager.h"
#import "LinphoneIOSVersion.h"
#import "linphoneapp-Swift.h"
@implementation AboutView
@ -79,29 +80,21 @@ static UICompositeViewDescription *compositeDescription = nil;
- (IBAction)onLinkTap:(id)sender {
UIGestureRecognizer *gest = sender;
NSString *url = ((UILabel *)gest.view).text;
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (IBAction)onPolicyTap {
NSString *url = @"https://www.linphone.org/privacy-policy";
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (IBAction)onLicenceTap {
NSString *url = @"https://www.gnu.org/licenses/gpl-3.0.html";
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (IBAction)onTranslateTap {
NSString *url = @"https://weblate.linphone.org/projects/linphone-iphone";
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (IBAction)onDialerBackClick:(id)sender {

View file

@ -29,6 +29,7 @@
#import "UITextField+DoneButton.h"
#import "LinphoneAppDelegate.h"
#import "SVProgressHUD.h"
#import "linphoneapp-Swift.h"
#ifdef DEBUG
#define PROVIDER_NAME "apns.dev"
@ -100,9 +101,7 @@ static UICompositeViewDescription *compositeDescription = nil;
- (IBAction)onContactTap {
NSString *url = @"https://www.linphone.org/contact";
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"[Assistant] Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (void)viewDidLoad {
@ -1928,9 +1927,7 @@ UIColor *previousColor = (UIColor*)[sender backgroundColor]; \
- (IBAction)onLinkTap:(id)sender {
NSString *url = @"https://subscribe.linphone.org";
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"[Assistant] Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
- (IBAction)onAcceptTermsClick:(id)sender {

View file

@ -681,11 +681,11 @@
goto bad_proxy;
}
// use proxy as route if outbound_proxy is enabled
if (linphone_account_params_set_server_address(newAccountParams, proxy_addr) == -1) {
if (proxy_addr && linphone_account_params_set_server_address(newAccountParams, proxy_addr) == -1) {
error = NSLocalizedString(@"Invalid proxy address", nil);
goto bad_proxy;
}
if (linphone_account_params_set_routes_addresses(newAccountParams, isOutboundProxy ? bctbx_list_new((void*)proxy_addr) : NULL) == -1) {
if (proxy_addr && linphone_account_params_set_routes_addresses(newAccountParams, isOutboundProxy ? bctbx_list_new((void*)proxy_addr) : NULL) == -1) {
error = NSLocalizedString(@"Invalid route", nil);
goto bad_proxy;
}

View file

@ -1452,8 +1452,20 @@ void popup_link_account_cb(LinphoneAccountCreator *creator, LinphoneAccountCreat
linphone_core_cbs_set_conference_state_changed(cbs, linphone_iphone_conference_state_changed);
bool reEnableRls = false;
if (![LinphoneManager.instance lpConfigBoolForKey:@"use_rls_presence_requested"] && [LinphoneManager.instance lpConfigBoolForKey:@"use_rls_presence"]) {
[LinphoneManager.instance lpConfigSetBool:false forKey:@"use_rls_presence"];
reEnableRls = true;
}
theLinphoneCore = linphone_factory_create_shared_core_with_config(factory, _configDb, NULL, [kLinphoneMsgNotificationAppGroupId UTF8String], true);
if (bctbx_list_size(linphone_core_get_account_list(theLinphoneCore)) > 0 && reEnableRls) { // Do not request rls allowance for users who had it before.
[LinphoneManager.instance lpConfigSetBool:true forKey:@"use_rls_presence"];
}
linphone_core_enable_auto_iterate(theLinphoneCore, true);
linphone_core_set_chat_messages_aggregation_enabled(theLinphoneCore, false);
linphone_core_add_callbacks(theLinphoneCore, cbs);
[ConfigManager.instance setDbWithDb:_configDb];
@ -2247,6 +2259,8 @@ static int comp_call_state_paused(const LinphoneCall *call, const void *param) {
NSString *filter = @"*";
if ([self lpConfigBoolForKey:@"contact_filter_on_default_domain"]) {
LinphoneAccount *account = linphone_core_get_default_account(theLinphoneCore);
if (!account)
return filter;
LinphoneAccountParams const *accountParams = linphone_account_get_params(account);
if (account && linphone_account_params_get_server_addr(accountParams)) {
return [NSString stringWithCString:linphone_account_params_get_domain(accountParams)

View file

@ -140,14 +140,16 @@
const char *url = linphone_chat_message_get_external_body_url(message);
const LinphoneContent *last_content = linphone_chat_message_get_file_transfer_information(message);
// Last message was a file transfer (image) so display a picture...
if ((url || last_content) && message) {
if (linphone_chat_message_get_utf8_text(message))
return [NSString stringWithUTF8String:linphone_chat_message_get_utf8_text(message)];
return @"🗻";
} else {
const char *text = linphone_chat_message_get_utf8_text(message) ?: "";
if (url || last_content) {
if (linphone_chat_message_has_text_content(message) && linphone_chat_message_get_utf8_text(message) && !strstr(linphone_chat_message_get_utf8_text(message),"<?xml version"))
return [NSString stringWithUTF8String:linphone_chat_message_get_utf8_text(message)];
return @"📎";
} else if (linphone_chat_message_has_text_content(message)){
const char *text = linphone_chat_message_get_utf8_text(message) ?: "";
return [NSString stringWithUTF8String:text] ?: [NSString stringWithCString:text encoding:NSASCIIStringEncoding]
?: NSLocalizedString(@"(invalid string)", nil);
} else {
return @"📎";
}
}

View file

@ -149,8 +149,6 @@
- (IBAction)onSubscribeTap:(id)sender {
UIGestureRecognizer *gest = sender;
NSString *url = ((UILabel *)gest.view).text;
if (![UIApplication.sharedApplication openURL:[NSURL URLWithString:url]]) {
LOGE(@"Failed to open %@, invalid URL", url);
}
[SwiftUtil openUrlWithUrlString:url];
}
@end

View file

@ -42,7 +42,7 @@
- (instancetype)initWithFilePath:(NSString *)filePath {
if (self = [super initWithNibName:NSStringFromClass(self.class) bundle:[NSBundle mainBundle]]) {
player = linphone_core_create_local_player(LC, NULL, "IOSDisplay", NULL);
cbs = linphone_player_get_callbacks(player);
cbs = linphone_factory_create_player_cbs(linphone_factory_get());
linphone_player_set_user_data(player, (__bridge void *)self);
linphone_player_cbs_set_eof_reached(cbs, on_eof_reached);
file = filePath;

View file

@ -400,9 +400,11 @@ static UICompositeViewDescription *compositeDescription = nil;
[_settingsController dismiss:self];
// Set observer
[NSNotificationCenter.defaultCenter removeObserver:self name:kIASKAppSettingChanged object:nil];
thiz = nil;
}
- (void)viewWillAppear:(BOOL)animated {
thiz = self;
[super viewWillAppear:animated];
// Sync settings with linphone core settings
@ -418,10 +420,11 @@ static UICompositeViewDescription *compositeDescription = nil;
#pragma mark - Account Creator callbacks
void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
SettingsView *thiz = (__bridge SettingsView *)(linphone_account_creator_cbs_get_user_data(
linphone_account_creator_get_callbacks(creator)));
static SettingsView *thiz = nil;
void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStatus status, const char *resp) {
if (thiz == nil)
return;
switch (status) {
case LinphoneAccountCreatorStatusRequestOk:
[thiz updatePassword:creator];
@ -954,15 +957,23 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat
message:NSLocalizedString(@"Please enter and confirm your new password", nil)
preferredStyle:UIAlertControllerStyleAlert];
[alertView addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = NSLocalizedString(@"Password", nil);
textField.placeholder = NSLocalizedString(@"Actual password", nil);
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.secureTextEntry = YES;
}];
[alertView addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = NSLocalizedString(@"Confirm password", nil);
textField.placeholder = NSLocalizedString(@"New password", nil);
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.secureTextEntry = YES;
}];
[alertView addTextFieldWithConfigurationHandler:^(UITextField *textField) {
textField.placeholder = NSLocalizedString(@"Confirm new password", nil);
textField.clearButtonMode = UITextFieldViewModeWhileEditing;
textField.borderStyle = UITextBorderStyleRoundedRect;
textField.secureTextEntry = YES;
@ -975,8 +986,21 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat
UIAlertAction* continueAction = [UIAlertAction actionWithTitle:NSLocalizedString(@"Save", nil)
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {
NSString * pwd = alertView.textFields[0].text;
NSString * conf_pwd = alertView.textFields[1].text;
NSString * oldpwd = alertView.textFields[0].text;
NSString * pwd = alertView.textFields[1].text;
NSString * conf_pwd = alertView.textFields[2].text;
if (!oldpwd || [oldpwd isEqualToString:@""]) {
UIAlertController *errView = [UIAlertController alertControllerWithTitle:NSLocalizedString(@"Error while changing your password", nil)
message:NSLocalizedString(@"Please enter your actual password", nil)
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action) {}];
[errView addAction:defaultAction];
[self presentViewController:errView animated:YES completion:nil];
return;
}
if (pwd && ![pwd isEqualToString:@""]) {
if ([pwd isEqualToString:conf_pwd]) {
_tmpPwd = pwd;
@ -1030,25 +1054,17 @@ void update_hash_cbs(LinphoneAccountCreator *creator, LinphoneAccountCreatorStat
completion:nil];
return;
}
linphone_account_creator_set_algorithm(account_creator, "");
linphone_account_creator_set_algorithm(account_creator, linphone_auth_info_get_algorithm(ai));
linphone_account_creator_set_username(account_creator, linphone_auth_info_get_username(ai));
if (linphone_auth_info_get_passwd(ai) && !(strcmp(linphone_auth_info_get_passwd(ai),"") == 0)) {
linphone_account_creator_set_password(account_creator, linphone_auth_info_get_passwd(ai));
} else {
linphone_account_creator_set_ha1(account_creator, linphone_auth_info_get_ha1(ai));
}
linphone_account_creator_set_password(account_creator, oldpwd.UTF8String);
linphone_account_creator_set_domain(account_creator, linphone_auth_info_get_domain(ai));
linphone_account_creator_set_user_data(
account_creator, (void *)pwd.UTF8String);
linphone_account_creator_cbs_set_update_account(
linphone_account_creator_get_callbacks(
account_creator),
update_hash_cbs);
linphone_account_creator_cbs_set_user_data(
linphone_account_creator_get_callbacks(
account_creator),
(__bridge void *)(self));
LinphoneAccountCreatorCbs * cbs = linphone_factory_create_account_creator_cbs(linphone_factory_get());
linphone_account_creator_cbs_set_update_account(cbs, update_hash_cbs);
linphone_account_creator_cbs_set_user_data(cbs,(__bridge void *)(self));
linphone_account_creator_add_callbacks(account_creator, cbs);
linphone_account_creator_update_account(
account_creator);
} else {

View file

@ -44,7 +44,7 @@ import AVFoundation
@objc var nextCallIsTransfer: Bool = false
var referedFromCall: String?
var referedToCall: String?
var endCallkit: Bool = false
var lastRegistrationFailed: Bool = false
var globalState : GlobalState = .Off
var actionsToPerformOnceWhenCoreIsOn : [(()->Void)] = []
var conference: Conference?
@ -271,12 +271,11 @@ import AVFoundation
// for outgoing call. There is not yet callId
@objc func startCall(addr: OpaquePointer?, isSas: Bool, isVideo: Bool, isConference: Bool = false) {
if (addr == nil) {
guard addr != nil, let sAddr = Address.getSwiftObject(cObject: addr!).clone() else {
Log.i("Can not start a call with null address!")
return
}
let sAddr = Address.getSwiftObject(cObject: addr!)
if (CallManager.callKitEnabled() && !CallManager.instance().nextCallIsTransfer && lc?.conference?.isIn != true) {
let uuid = UUID()
let name = FastAddressBook.displayName(for: addr) ?? "unknow"
@ -512,15 +511,15 @@ import AVFoundation
CallManager.instance().providerDelegate.endCall(uuid: call.value)
}
CallManager.instance().endCallkit = true
CallManager.instance().lastRegistrationFailed = true
} else {
CallManager.instance().endCallkit = false
CallManager.instance().lastRegistrationFailed = false
}
}
func isConferenceCall(call:Call) -> Bool {
let remoteAddress = call.remoteAddress?.asStringUriOnly()
return remoteAddress?.contains("focus") == true || remoteAddress?.contains("audiovideo") == true
return remoteAddress?.contains("focus") == true || remoteAddress?.contains("audiovideo") == true || remoteAddress == lc?.defaultAccount?.params?.audioVideoConferenceFactoryAddress?.asStringUriOnly()
}
func incomingDisplayName(call:Call) -> String {
@ -536,10 +535,24 @@ import AVFoundation
return FastAddressBook.displayName(for: call.remoteAddress?.getCobject) ?? "Unknown"
}
}
var reactivateAudioSessionWhenCallMerged = false
func onCallStateChanged(core: Core, call: Call, state cstate: Call.State, message: String) {
let callLog = call.callLog
let callId = callLog?.callId ?? ""
if (cstate == .Released && reactivateAudioSessionWhenCallMerged && core.callsNb == 1) {
reactivateAudioSessionWhenCallMerged = false
DispatchQueue.main.async {
Log.directLog(BCTBX_LOG_MESSAGE, text: "reactivating audio session in merge call scenario")
Core.get().activateAudioSession(activated: true)
}
}
if (cstate == .Released && reactivateAudioSessionWhenCallMerged && core.callsNb == 0) {
reactivateAudioSessionWhenCallMerged = false
}
if (cstate == .PushIncomingReceived) {
displayIncomingCall(call: call, handle: "Calling", hasVideo: false, callId: callId, displayName: "Calling")
} else {
@ -652,11 +665,13 @@ import AVFoundation
} else {
if CallManager.instance().isConferenceCall(call: call) {
let uuid = UUID()
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit: outgoing call to conference server \(uuid) and callId \(callId)")
CallManager.instance().providerDelegate.uuids["\(call.callLog!.callId)"] = uuid;
let callInfo = CallInfo.newOutgoingCallInfo(addr: call.remoteAddress!, isSas: call.params?.mediaEncryption == .ZRTP, displayName: VoipTexts.conference_default_title, isVideo: call.params?.videoEnabled == true, isConference:true)
CallManager.instance().providerDelegate.callInfos.updateValue(callInfo, forKey: uuid)
CallManager.instance().providerDelegate.uuids.updateValue(uuid, forKey: "")
CallManager.instance().providerDelegate.reportOutgoingCallStartedConnecting(uuid: uuid)
Core.get().activateAudioSession(actived: true)
reactivateAudioSessionWhenCallMerged = true
} else {
CallManager.instance().referedToCall = callId
}
@ -763,7 +778,7 @@ import AVFoundation
// Audio messages
@objc func activateAudioSession() {
lc?.activateAudioSession(actived: true)
lc?.activateAudioSession(activated: true)
}
@objc func getSpeakerSoundCard() -> String? {
@ -784,7 +799,7 @@ import AVFoundation
// Local Conference
@objc func startLocalConference() {
if (CallManager.callKitEnabled()) {
if (CallManager.callKitEnabled() && lc?.defaultAccount?.params?.audioVideoConferenceFactoryAddress == nil) {
let calls = lc?.calls
if (calls == nil || calls!.isEmpty) {
return
@ -810,15 +825,21 @@ import AVFoundation
}
func addAllToLocalConference() {
do {
if let core = lc, let params = try? core.createConferenceParams(conference: nil) {
params.videoEnabled = false // We disable video for local conferencing (cf Android)
params.subject = VoipTexts.conference_local_title
let conference = core.conference != nil ? core.conference : try core.createConferenceWithParams(params: params)
try conference?.addParticipants(calls: core.calls)
if let currentCall = lc?.currentCall, currentCall.state == .StreamsRunning {
try? currentCall.pause()
}
DispatchQueue.main.async {
do {
if let core = self.lc, let params = try? core.createConferenceParams(conference: nil) {
params.videoEnabled = false // We disable video for local conferencing (cf Android)
params.subject = VoipTexts.conference_local_title
let conference = core.conference != nil ? core.conference : try core.createConferenceWithParams(params: params)
try conference?.addParticipants(calls: core.calls)
}
} catch {
Log.directLog(BCTBX_LOG_ERROR, text: "creating local conference failed \(error)")
}
} catch {
Log.directLog(BCTBX_LOG_ERROR, text: "accept call failed \(error)")
}
}

View file

@ -113,7 +113,7 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
override func viewWillDisappear(_ animated: Bool) {
if ChatConversationTableViewModel.sharedModel.getNBMessages() > 0 {
scrollToBottom(animated: false)
scrollToBottom(animated: false, async:false)
}
NotificationCenter.default.removeObserver(self, name: Notification.Name("LinphoneFriendPresenceUpdate"), object: nil)
NotificationCenter.default.removeObserver(self)
@ -130,8 +130,12 @@ class ChatConversationTableViewSwift: UIViewController, UICollectionViewDataSour
self.collectionView.scrollToItem(at: IndexPath(row: messageIndex, section: 0), at: .bottom, animated: false)
}
func scrollToBottom(animated: Bool){
DispatchQueue.main.async{
func scrollToBottom(animated: Bool, async: Bool = true){
if (async) {
DispatchQueue.main.async{
self.collectionView.scrollToItem(at: IndexPath(item: 0, section: 0), at: .top, animated: animated)
}
} else {
self.collectionView.scrollToItem(at: IndexPath(item: 0, section: 0), at: .top, animated: animated)
}
ChatConversationViewSwift.markAsRead(ChatConversationViewModel.sharedModel.chatRoom?.getCobject)

View file

@ -176,6 +176,8 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
let newStackViewReactionsItem = UILabel()
var stackViewReactionsCounter = UILabel()
var reused = false
override init(frame: CGRect) {
super.init(frame: frame)
initCell()
@ -592,7 +594,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
ephemeralIcon.isHidden = true
}
func initPlayerAudio(message: ChatMessage){
func initPlayerAudio(message: ChatMessage, justForDisplay: Bool = false){
let recordingPlayButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_color_button("vr_play"))
let recordingStopButton = CallControlButton(width: 40, height: 40, buttonTheme:VoipTheme.nav_color_button("vr_stop"))
let recordingWaveView = UIProgressView()
@ -646,7 +648,11 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
recordingDurationTextView.text = recordingDuration(filePathRecording)
recordingPlayButton.onClickAction = {
self.playRecordedMessage(voiceRecorder: filePathRecording, recordingPlayButton: recordingPlayButton, recordingStopButton: recordingStopButton, recordingWaveView: recordingWaveView, message: message)
if (message.audioContent()?.downloaded() == true) {
self.playRecordedMessage(voiceRecorder: filePathRecording, recordingPlayButton: recordingPlayButton, recordingStopButton: recordingStopButton, recordingWaveView: recordingWaveView, message: message)
} else {
message.downloadAudioContent(ok: {if (!self.reused) {self.initPlayerAudio(message: message, justForDisplay: true)}}, ko: {if (!self.reused) {self.initPlayerAudio(message: message, justForDisplay: true)}})
}
}
recordingStopButton.onClickAction = {
self.stopVoiceRecordPlayer(recordingPlayButton: recordingPlayButton, recordingStopButton: recordingStopButton, recordingWaveView: recordingWaveView, message: message)
@ -661,6 +667,10 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
NSLayoutConstraint.activate(recordingWaveConstraints)
}
if (Core.get().autoDownloadVoiceRecordingsEnabled && !justForDisplay) {
message.downloadAudioContent(ok: {if (!self.reused) {self.initPlayerAudio(message: message, justForDisplay: true)}}, ko: {if (!self.reused){self.initPlayerAudio(message: message, justForDisplay: true)}})
}
recordingView.isHidden = false
}
@ -722,7 +732,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
override func prepareForReuse() {
super.prepareForReuse()
reused = true
deleteItemCheckBox.removeFromSuperview()
eventMessageView.removeFromSuperview()
contactDateLabel.removeFromSuperview()
@ -1620,6 +1630,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
deleteItemCheckBox.isHidden = true
deleteItemCheckBox.width(0).done()
}
reused = false
}
@objc func showMyViewControllerInACustomizedSheet(_ sender: UITapGestureRecognizer? = nil) {
@ -1717,6 +1728,11 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
chatMessageDelegate = ChatMessageDelegateStub(
onMsgStateChanged: { (message: ChatMessage, state: ChatMessage.State) -> Void in
self.displayImdnStatus(message: message, state: state)
if (message.hasAudioContent() && state == .FileTransferDone) {
if (!self.reused) {
self.initPlayerAudio(message: message)
}
}
},
onNewMessageReaction: { (message: ChatMessage, messageReaction: ChatMessageReaction) -> Void in
ChatConversationTableViewModel.sharedModel.reloadCollectionViewCell()
@ -1806,7 +1822,7 @@ class MultilineMessageCell: SwipeCollectionViewCell, UICollectionViewDataSource,
AudioPlayer.sharedModel.fileChanged.value = voiceRecorder
recordingPlayButton.isHidden = true
recordingStopButton.isHidden = false
AudioPlayer.startSharedPlayer(voiceRecorder)
isPlayingVoiceRecording = true

View file

@ -186,6 +186,7 @@ import linphonesw
cell.selectionStyle = .none
cell.scheduleConfParticipantAddress = tableView.tag == 1 ? data.conferenceInfo.participants.filter {$0.weakEqual(address2: data.conferenceInfo.organizer!)}.first : data.conferenceInfo.participants[indexPath.row]
cell.limeBadge.isHidden = true
cell.addButton.isHidden = true
return cell
}

View file

@ -0,0 +1,101 @@
/*
* Copyright (c) 2010-2020 Belledonne Communications SARL.
*
* This file is part of linphone-iphone
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import Foundation
import linphonesw
class DownloadListener {
private var chatMessageDelegate : ChatMessageDelegateStub? = nil
var messageId: String
init(message:ChatMessage, ok: @escaping ()->Void, ko: ()->Void) {
messageId = message.messageId
chatMessageDelegate = ChatMessageDelegateStub(
onFileTransferProgressIndication: { (message: ChatMessage, content: Content, offset: Int, total: Int) -> Void in
if (content.name == message.audioContent()?.name && offset >= total) {
message.removeDelegate(delegate: self.chatMessageDelegate!)
ok()
}
})
message.addDelegate(delegate: chatMessageDelegate!)
}
}
extension Content {
func downloaded() -> Bool {
if (!isFileTransfer) {
return true
}
let isVfs = VFSUtil.vfsEnabled(groupName: kLinphoneMsgNotificationAppGroupId)
if let path = isVfs ? exportPlainFile() : filePath {
let downloaded = FileUtil.fileExistsAndIsNotEmpty(path: path)
if (isVfs) {
FileUtil.delete(path: path)
}
return downloaded
} else {
return false
}
}
}
extension ChatMessage {
static var downloadListeners:[DownloadListener] = []
func downloadInProgress() -> Bool {
return state == .FileTransferInProgress
}
func downloadError() -> Bool {
return state == .FileTransferError
}
func hasAudioContent() -> Bool {
return audioContent() != nil
}
func audioContent() -> Content? { // Messages can have only one voice recording.
return contents.filter({$0.isVoiceRecording}).first
}
func downloadAudioContent(ok: @escaping ()->Void, ko: ()->Void) {
if let audioContent = audioContent() {
let downloadListener = DownloadListener(message: self, ok: {
ChatMessage.downloadListeners.removeAll(where: {$0.messageId == self.messageId})
ok()
}, ko: {
ChatMessage.downloadListeners.removeAll(where: {$0.messageId == self.messageId})
ko()
})
if (!audioContent.downloaded()) {
audioContent.filePath = LinphoneManager.imagesDirectory() + audioContent.name!
ChatMessage.downloadListeners.append(downloadListener)
let _ = downloadContent(content: audioContent)
} else {
ok()
}
} else {
ok()
}
}
}

View file

@ -136,4 +136,14 @@ import linphonesw
}
}
@objc public class func deleteRecurse(appGroupName:String) {
let fileManager = FileManager.default
do {
let fileURLs = try fileManager.contentsOfDirectory(at: FileUtil.sharedContainerUrl(appGroupName: appGroupName), includingPropertiesForKeys: nil)
fileURLs.forEach{delete(path: $0.absoluteURL.path)}
} catch {
Log.e("Error while enumerating files \(error.localizedDescription)")
}
}
}

View file

@ -114,10 +114,15 @@ class ProviderDelegate: NSObject {
//CallManager.instance().setHeldOtherCalls(exceptCallid: callId ?? "")
provider.reportNewIncomingCall(with: uuid, update: update) { error in
if error == nil {
if CallManager.instance().endCallkit {
if CallManager.instance().lastRegistrationFailed {
let call = CallManager.instance().lc?.getCallByCallid(callId: callId ?? "")
if (call?.state == .PushIncomingReceived) {
try? call?.terminate()
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit / reportNewIncomingCall: last registration failed, trying to refresh registers ... context = call with call-id: [\(String(describing: callId))] and UUID: [\(uuid.description)] ")
DispatchQueue.main.async {
CallManager.instance().lc?.accountList.forEach {
$0.refreshRegister()
}
}
}
}
} else {
@ -204,23 +209,25 @@ extension ProviderDelegate: CXProviderDelegate {
let callId = callInfo?.callId
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit: answer call with call-id: \(String(describing: callId)) and UUID: \(uuid.description).")
let call = CallManager.instance().callByCallId(callId: callId)
if (UIApplication.shared.applicationState != .active) {
CallManager.instance().backgroundContextCall = call
CallManager.instance().backgroundContextCameraIsEnabled = call?.params?.videoEnabled == true || call?.callLog?.wasConference() == true
/*if #available(iOS 16.0, *) {
if (call?.cameraEnabled == true) {
call?.cameraEnabled = AVCaptureSession().isMultitaskingCameraAccessSupported
}
} else {
call?.cameraEnabled = false // Disable camera while app is not on foreground
}*/
if let call = CallManager.instance().callByCallId(callId: callId) {
if (UIApplication.shared.applicationState != .active) {
CallManager.instance().backgroundContextCall = call
CallManager.instance().backgroundContextCameraIsEnabled = call.params?.videoEnabled == true || call.callLog?.wasConference() == true
/*if #available(iOS 16.0, *) {
if (call?.cameraEnabled == true) {
call?.cameraEnabled = AVCaptureSession().isMultitaskingCameraAccessSupported
}
} else {
call?.cameraEnabled = false // Disable camera while app is not on foreground
}*/
}
CallManager.instance().callkitAudioSessionActivated = false
CallManager.instance().lc?.configureAudioSession()
CallManager.instance().acceptCall(call: call, hasVideo: call.params?.videoEnabled ?? false)
action.fulfill()
} else {
endCall(uuid: uuid)
}
CallManager.instance().callkitAudioSessionActivated = false
CallManager.instance().lc?.configureAudioSession()
CallManager.instance().acceptCall(call: call!, hasVideo: call!.params?.videoEnabled ?? false)
action.fulfill()
}
func provider(_ provider: CXProvider, perform action: CXSetHeldCallAction) {
@ -273,7 +280,7 @@ extension ProviderDelegate: CXProviderDelegate {
// Callkit's design is not consistent, or its documentation imcomplete, wich is somewhat disapointing.
//
Log.directLog(BCTBX_LOG_DEBUG, text: "Assuming AudioSession is active when executing a CXSetHeldCallAction with isOnHold=false.")
CallManager.instance().lc?.activateAudioSession(actived: true)
CallManager.instance().lc?.activateAudioSession(activated: true)
CallManager.instance().callkitAudioSessionActivated = true
}
}
@ -298,6 +305,7 @@ extension ProviderDelegate: CXProviderDelegate {
if (addr == nil) {
Log.directLog(BCTBX_LOG_ERROR, text: "CallKit: can not call a null address!")
action.fail()
return
}
CallManager.instance().lc?.configureAudioSession()
@ -352,13 +360,13 @@ extension ProviderDelegate: CXProviderDelegate {
func provider(_ provider: CXProvider, didActivate audioSession: AVAudioSession) {
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit: audio session activated.")
CallManager.instance().lc?.activateAudioSession(actived: true)
CallManager.instance().lc?.activateAudioSession(activated: true)
CallManager.instance().callkitAudioSessionActivated = true
}
func provider(_ provider: CXProvider, didDeactivate audioSession: AVAudioSession) {
Log.directLog(BCTBX_LOG_MESSAGE, text: "CallKit: audio session deactivated.")
CallManager.instance().lc?.activateAudioSession(actived: false)
CallManager.instance().lc?.activateAudioSession(activated: false)
CallManager.instance().callkitAudioSessionActivated = nil
}
}

View file

@ -121,5 +121,53 @@ import linphonesw
return log.dir == .Incoming && [.Missed,.Aborted,.EarlyAborted].contains(log.status)
}
@objc static func openUrl(urlString:String) {
if let url = URL(string: urlString) {
UIApplication.shared.open(url, options: [:], completionHandler: { success in
if (!success) {
Log.e("Unable to open URL \(urlString)")
}
})
} else {
Log.e("Invalid URL \(urlString)")
}
}
@objc static func requestRLSPresenceAllowance() {
let rls = UIAlertController(
title: VoipTexts.accept_rls_title,
message: VoipTexts.accept_rls,
preferredStyle: .actionSheet)
let accept = UIAlertAction(
title: VoipTexts.dialog_accept,
style: .default,
handler: { action in
Core.get().config?.setInt(section: "app", key: "use_rls_presence", value: 1)
Core.get().config?.setInt(section: "app", key: "use_rls_presence_requested", value: 1)
Core.get().friendListSubscriptionEnabled = true
})
let refuse = UIAlertAction(
title: VoipTexts.dialog_later,
style: .default,
handler: { action in
Core.get().config?.setInt(section: "app", key: "use_rls_presence", value: 0)
Core.get().config?.setInt(section: "app", key: "use_rls_presence_requested", value: 1)
Core.get().friendListSubscriptionEnabled = false
})
let pp = UIAlertAction(
title: VoipTexts.dialog_privacy_policy,
style: .default,
handler: { action in
openUrl(urlString: "https://www.linphone.org/privacy-policy")
})
rls.addAction(accept)
rls.addAction(pp)
rls.addAction(refuse)
rls.popoverPresentationController?.sourceView = PhoneMainView.instance().mainViewController.statusBarView
PhoneMainView.instance()?.present(rls, animated: true)
}
}

View file

@ -55,11 +55,15 @@ class AudioPlayer {
NotificationCenter.default.post(name: NSNotification.Name(rawValue: "LinphoneVoiceMessagePlayerEOF"), object: nil, userInfo: userInfo as [AnyHashable : Any])
}
CallManager.instance().changeRouteToSpeaker()
do{
try linphonePlayer?.open(filename: path!)
try linphonePlayer?.start()
}catch{
Log.e(error.localizedDescription)
if let path = path, FileUtil.fileExists(path: path) {
do{
try linphonePlayer?.open(filename: path)
try linphonePlayer?.start()
}catch{
Log.e(error.localizedDescription)
}
} else {
Log.e("[Voice Message] unable to play file, \(path != nil ? path : "nil") does not exist of is empty.")
}
}

View file

@ -250,4 +250,11 @@ import UIKit
static let conference_info_confirm_removal_delete = NSLocalizedString("DELETE",comment:"")
static let conference_unable_to_share_via_calendar = NSLocalizedString("Unable to add event to calendar. Check permissions",comment:"")
static let screenshot_restrictions = NSLocalizedString("Can't take a screenshot due to app restrictions", comment: "")
@objc static let dialog_later = NSLocalizedString("Maybe later",comment:"")
@objc static let dialog_privacy_policy = NSLocalizedString("Privacy policy",comment:"")
@objc static let accept_rls_title = NSLocalizedString("Enable smart address book", comment:"")
@objc static let accept_rls = NSLocalizedString("To improve your experience, well store your contacts' phone numbers to show you which friends are using the app. Your data will be securely stored and only used according to our privacy policy.\n You can disable this at any time.",comment:"")
}

View file

@ -156,7 +156,7 @@ class ControlsViewModel {
}
} else {
let state = currentCall.state
if (state == Call.State.End || state == Call.State.Released || state == Call.State.Error) {
if (state != .StreamsRunning) {
return
}
isVideoUpdateInProgress.value = true

View file

@ -123,14 +123,14 @@ import AVKit
// Picture in picture on video call
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
if (CallsViewModel.shared.currentCallData.value??.call.state == .StreamsRunning && pipController.isPictureInPicturePossible) {
if (pipController != nil && CallsViewModel.shared.currentCallData.value??.call.state == .StreamsRunning && pipController.isPictureInPicturePossible) {
pipController.startPictureInPicture()
}
}
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
if pipController.isPictureInPictureActive {
if pipController != nil && pipController.isPictureInPictureActive {
pipController.stopPictureInPicture()
}
}

View file

@ -216,7 +216,11 @@
BOOL success = FALSE;
if(granted){
LOGD(@"CNContactStore authorization granted");
dispatch_async(dispatch_get_main_queue(), ^{
if (bctbx_list_size(linphone_core_get_account_list(LC)) == 0 && ![LinphoneManager.instance lpConfigBoolForKey:@"use_rls_presence_requested"]) {
//[SwiftUtil requestRLSPresenceAllowance];
}
});
NSError *contactError;
CNContactStore* store = [[CNContactStore alloc] init];
[store containersMatchingPredicate:[CNContainer predicateForContainersWithIdentifiers:@[ store.defaultContainerIdentifier]] error:&contactError];

View file

@ -5,7 +5,7 @@ source "https://github.com/CocoaPods/Specs.git"
def all_pods
if ENV['PODFILE_PATH'].nil?
pod 'linphone-sdk', '~>5.3.4'
pod 'linphone-sdk', '~>5.3.86'
else
pod 'linphone-sdk', :path => ENV['PODFILE_PATH'] # local sdk
end

View file

@ -103,7 +103,8 @@
<key>NSCameraUsageDescription</key>
<string>Share photos with your friends and customize avatars</string>
<key>NSContactsUsageDescription</key>
<string>Make calls with your friends</string>
<string>To improve your experience, well store your contacts' phone numbers to show you which friends are using the app. Your data will be securely stored and only used according to our Privacy Policy.
You can disable this at any time.</string>
<key>NSLocalNetworkUsageDescription</key>
<string>Stream audio and video through the local network</string>
<key>NSLocationWhenInUseUsageDescription</key>

View file

@ -7,6 +7,8 @@
objects = {
/* Begin PBXBuildFile section */
0630CB9061F23021B1DBF3E5 /* Pods_msgNotificationContent.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 60E8ED274FA16330872945FB /* Pods_msgNotificationContent.framework */; };
131D0AB0F2BC0F1952D51CFE /* Pods_CallUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A53B959BF2158A56EC9BAE72 /* Pods_CallUITests.framework */; };
152F22361B15E889008C0621 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22351B15E889008C0621 /* libxml2.dylib */; };
1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */; };
1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; };
@ -625,6 +627,7 @@
669B140C27A29D140012220A /* FloatingScrollDownButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 669B140B27A29D140012220A /* FloatingScrollDownButton.swift */; };
66E399F72857869300E73456 /* menu_notifications_off.png in Resources */ = {isa = PBXBuildFile; fileRef = 66E399F52857869200E73456 /* menu_notifications_off.png */; };
66E399F82857869300E73456 /* menu_notifications_on.png in Resources */ = {isa = PBXBuildFile; fileRef = 66E399F62857869200E73456 /* menu_notifications_on.png */; };
6B3B4E172D73EDB529D34614 /* Pods_msgNotificationService.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9CABE0F1DD25F3C2B1A42DBB /* Pods_msgNotificationService.framework */; };
70E542F313E147E3002BA2C0 /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F213E147E3002BA2C0 /* OpenGLES.framework */; };
70E542F513E147EB002BA2C0 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 70E542F413E147EB002BA2C0 /* QuartzCore.framework */; };
8C2595DF1DEDCC8E007A6424 /* CallKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C2595DE1DEDCC8E007A6424 /* CallKit.framework */; };
@ -849,6 +852,7 @@
C6548820292D32FA00BF646B /* SingleCallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C654881E292D32FA00BF646B /* SingleCallView.swift */; };
C6548821292D32FA00BF646B /* ConferenceCallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C654881F292D32FA00BF646B /* ConferenceCallView.swift */; };
C6548823292D369500BF646B /* AbstractCallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6548822292D369500BF646B /* AbstractCallView.swift */; };
C65DC9722C9D722A00EBC1E3 /* ChatMessageExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C65DC9712C9D722A00EBC1E3 /* ChatMessageExtensions.swift */; };
C66B03BB26E8EB1A009B5EDC /* UIChatReplyBubbleView.xib in Resources */ = {isa = PBXBuildFile; fileRef = C66B03BD26E8EB1A009B5EDC /* UIChatReplyBubbleView.xib */; };
C66B040A26EFDA55009B5EDC /* reply_cancel.png in Resources */ = {isa = PBXBuildFile; fileRef = C66B040926EFDA54009B5EDC /* reply_cancel.png */; };
C66B040E26F095D1009B5EDC /* cancel_forward.png in Resources */ = {isa = PBXBuildFile; fileRef = C66B040D26F095CE009B5EDC /* cancel_forward.png */; };
@ -995,6 +999,7 @@
F0938159188E629800A55DFA /* iTunesArtwork in Resources */ = {isa = PBXBuildFile; fileRef = F0938158188E629800A55DFA /* iTunesArtwork */; };
F0B026F31AA710AF00FF49F7 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B026F21AA710AF00FF49F7 /* libiconv.dylib */; };
F0B89C2218DC89E30050B60E /* MediaPlayer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F0B89C2118DC89E30050B60E /* MediaPlayer.framework */; };
FFB3929E755B4246D1DBE670 /* Pods_linphone.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0254C760D6A88C5E0C18C2EE /* Pods_linphone.framework */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@ -1055,6 +1060,8 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
0254C760D6A88C5E0C18C2EE /* Pods_linphone.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_linphone.framework; sourceTree = BUILT_PRODUCTS_DIR; };
0F04AD4F6375B3BBD90E7010 /* Pods-msgNotificationService.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationService.debug.xcconfig"; path = "Target Support Files/Pods-msgNotificationService/Pods-msgNotificationService.debug.xcconfig"; sourceTree = "<group>"; };
152F22351B15E889008C0621 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
1D3623240D0F684500981E51 /* LinphoneAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinphoneAppDelegate.h; sourceTree = "<group>"; };
@ -1109,17 +1116,23 @@
24BFAA9D209B0630004F47A7 /* linphone_logo@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "linphone_logo@2x.png"; sourceTree = "<group>"; };
24E1C7B91F9A235500D3F981 /* Contacts.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Contacts.framework; path = System/Library/Frameworks/Contacts.framework; sourceTree = SDKROOT; };
288765FC0DF74451002DB57D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
28B4576D02DAC5687EFB5E10 /* Pods-msgNotificationService.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationService.distribution.xcconfig"; path = "Target Support Files/Pods-msgNotificationService/Pods-msgNotificationService.distribution.xcconfig"; sourceTree = "<group>"; };
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
32CA4F630368D1EE00C91783 /* linphone_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = linphone_Prefix.pch; sourceTree = "<group>"; };
340751961506459A00B89C47 /* CoreTelephony.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreTelephony.framework; path = System/Library/Frameworks/CoreTelephony.framework; sourceTree = SDKROOT; };
344ABDEF14850AE9007420B6 /* libc++.1.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libc++.1.dylib"; path = "usr/lib/libc++.1.dylib"; sourceTree = SDKROOT; };
344ABDF014850AE9007420B6 /* libstdc++.6.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = "libstdc++.6.dylib"; path = "usr/lib/libstdc++.6.dylib"; sourceTree = SDKROOT; };
3677A6CD9CA274FCC4821EAD /* Pods-CallUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CallUITests.debug.xcconfig"; path = "Target Support Files/Pods-CallUITests/Pods-CallUITests.debug.xcconfig"; sourceTree = "<group>"; };
3DA745CBF9F6A2ACE390E917 /* Pods-msgNotificationContent.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationContent.release.xcconfig"; path = "Target Support Files/Pods-msgNotificationContent/Pods-msgNotificationContent.release.xcconfig"; sourceTree = "<group>"; };
4ADDC4A3A6FCAE17EED5083D /* Pods-linphone.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-linphone.debug.xcconfig"; path = "Target Support Files/Pods-linphone/Pods-linphone.debug.xcconfig"; sourceTree = "<group>"; };
56F9C8820DE587701439D3DA /* Pods-msgNotificationService.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationService.release.xcconfig"; path = "Target Support Files/Pods-msgNotificationService/Pods-msgNotificationService.release.xcconfig"; sourceTree = "<group>"; };
570742571D5A0691004B9C84 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/ShopView.xib; sourceTree = "<group>"; };
5707425F1D5A09B8004B9C84 /* ShopView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ShopView.m; sourceTree = "<group>"; };
570742601D5A09B8004B9C84 /* ShopView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ShopView.h; sourceTree = "<group>"; };
570742661D5A63DB004B9C84 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; };
5E58962520DCE5700030868C /* UserNotificationsUI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UserNotificationsUI.framework; path = System/Library/Frameworks/UserNotificationsUI.framework; sourceTree = SDKROOT; };
5EF0C33820C806A5005081B0 /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
60E8ED274FA16330872945FB /* Pods_msgNotificationContent.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_msgNotificationContent.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6112A01B243B31A600DBD5F5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
6112A01D243B5FD500DBD5F5 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };
6130C85B22BBB493009CC79C /* LaunchScreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LaunchScreen.h; sourceTree = "<group>"; };
@ -1769,6 +1782,7 @@
63F1DF431BCE618E00EDED90 /* UIAddressTextField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIAddressTextField.m; sourceTree = "<group>"; };
63FB30331A680E73008CA393 /* UIRoundedImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIRoundedImageView.h; sourceTree = "<group>"; };
63FB30341A680E73008CA393 /* UIRoundedImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIRoundedImageView.m; sourceTree = "<group>"; };
661C30CDE7F1385A34649FDD /* Pods-CallUITests.distributionadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CallUITests.distributionadhoc.xcconfig"; path = "Target Support Files/Pods-CallUITests/Pods-CallUITests.distributionadhoc.xcconfig"; sourceTree = "<group>"; };
662553B327EDFB35007F67D8 /* MagicSearch.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MagicSearch.swift; sourceTree = "<group>"; };
662B73322A73C331002135F3 /* CopyableLabel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CopyableLabel.swift; sourceTree = "<group>"; };
662F13B52887E8A10084C28C /* UITestsUtils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UITestsUtils.swift; sourceTree = "<group>"; };
@ -1806,6 +1820,7 @@
66EADB022A939487002DDCEE /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
70E542F213E147E3002BA2C0 /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
70E542F413E147EB002BA2C0 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
8B2E8912E038474F194FB30F /* Pods-linphone.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-linphone.release.xcconfig"; path = "Target Support Files/Pods-linphone/Pods-linphone.release.xcconfig"; sourceTree = "<group>"; };
8C1A1F7C1FA331D40064BE00 /* libsoci_sqlite3.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsoci_sqlite3.a; path = "liblinphone-sdk/apple-darwin/lib/libsoci_sqlite3.a"; sourceTree = "<group>"; };
8C23BCB71D82AAC3005F19BB /* linphone.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = linphone.entitlements; sourceTree = "<group>"; };
8C2595DE1DEDCC8E007A6424 /* CallKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CallKit.framework; path = System/Library/Frameworks/CallKit.framework; sourceTree = SDKROOT; };
@ -1891,6 +1906,12 @@
8CF25D941F9F336100BEA0C1 /* check_unselected.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = check_unselected.png; sourceTree = "<group>"; };
8CF25D9B1F9F76BC00BEA0C1 /* chat_group_informations.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = chat_group_informations.png; sourceTree = "<group>"; };
8CF25D9C1F9F76BD00BEA0C1 /* chat_group_informations@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "chat_group_informations@2x.png"; sourceTree = "<group>"; };
95EFE52BE7F26B9EDE0069BC /* Pods-linphone.distributionadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-linphone.distributionadhoc.xcconfig"; path = "Target Support Files/Pods-linphone/Pods-linphone.distributionadhoc.xcconfig"; sourceTree = "<group>"; };
9CABE0F1DD25F3C2B1A42DBB /* Pods_msgNotificationService.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_msgNotificationService.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A2BF1A58F43597EE4FCC00DC /* Pods-msgNotificationService.distributionadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationService.distributionadhoc.xcconfig"; path = "Target Support Files/Pods-msgNotificationService/Pods-msgNotificationService.distributionadhoc.xcconfig"; sourceTree = "<group>"; };
A53B959BF2158A56EC9BAE72 /* Pods_CallUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CallUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A843B29FA3A92B57B1A56CD7 /* Pods-CallUITests.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CallUITests.distribution.xcconfig"; path = "Target Support Files/Pods-CallUITests/Pods-CallUITests.distribution.xcconfig"; sourceTree = "<group>"; };
C2C514E23CC99DF19C6FB68D /* Pods-CallUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CallUITests.release.xcconfig"; path = "Target Support Files/Pods-CallUITests/Pods-CallUITests.release.xcconfig"; sourceTree = "<group>"; };
C61B1BF12667D075001A4E4A /* menu_security_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_security_default.png; sourceTree = "<group>"; };
C61B1BF32667D202001A4E4A /* more_menu_default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = more_menu_default.png; sourceTree = "<group>"; };
C61B1BF62667EC6B001A4E4A /* ephemeral_messages_color_A.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ephemeral_messages_color_A.png; sourceTree = "<group>"; };
@ -2075,6 +2096,7 @@
C654881E292D32FA00BF646B /* SingleCallView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleCallView.swift; sourceTree = "<group>"; };
C654881F292D32FA00BF646B /* ConferenceCallView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ConferenceCallView.swift; sourceTree = "<group>"; };
C6548822292D369500BF646B /* AbstractCallView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AbstractCallView.swift; sourceTree = "<group>"; };
C65DC9712C9D722A00EBC1E3 /* ChatMessageExtensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatMessageExtensions.swift; sourceTree = "<group>"; };
C66B03BC26E8EB1A009B5EDC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/UIChatReplyBubbleView.xib; sourceTree = "<group>"; };
C66B03C126E8EB82009B5EDC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/UIChatReplyBubbleView.strings; sourceTree = "<group>"; };
C66B03C326E8EB87009B5EDC /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/UIChatReplyBubbleView.strings; sourceTree = "<group>"; };
@ -2102,6 +2124,7 @@
C6E3E7ED291D648D00DDFC46 /* side_menu_voip_meeting_schedule@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "side_menu_voip_meeting_schedule@2x.png"; sourceTree = "<group>"; };
C6F55644287CC69F0056E213 /* voip_meeting_schedule.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = voip_meeting_schedule.png; sourceTree = "<group>"; };
C6F55646287CCFB60056E213 /* menu_voip_meeting_schedule.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = menu_voip_meeting_schedule.png; sourceTree = "<group>"; };
C75E2A9663680FD9806FD8B9 /* Pods-msgNotificationContent.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationContent.distribution.xcconfig"; path = "Target Support Files/Pods-msgNotificationContent/Pods-msgNotificationContent.distribution.xcconfig"; sourceTree = "<group>"; };
C90FAA7615AF54E6002091CB /* HistoryDetailsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HistoryDetailsView.h; sourceTree = "<group>"; };
C90FAA7715AF54E6002091CB /* HistoryDetailsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HistoryDetailsView.m; sourceTree = "<group>"; };
C9B3A6FD15B485DB006F52EE /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = Utils/Utils.h; sourceTree = "<group>"; };
@ -2253,6 +2276,8 @@
D7CF13722A2E225200D92165 /* emoji.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = emoji.png; sourceTree = "<group>"; };
D7DA18702A02598700FABA0D /* TextViewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextViewer.swift; sourceTree = "<group>"; };
D7F067472AAA1BFB0044CC87 /* ReactionCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReactionCell.swift; sourceTree = "<group>"; };
E3BC214E5FF4FDC832F68EF0 /* Pods-linphone.distribution.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-linphone.distribution.xcconfig"; path = "Target Support Files/Pods-linphone/Pods-linphone.distribution.xcconfig"; sourceTree = "<group>"; };
E5DA3F16C865FA3E648B62B4 /* Pods-msgNotificationContent.distributionadhoc.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationContent.distributionadhoc.xcconfig"; path = "Target Support Files/Pods-msgNotificationContent/Pods-msgNotificationContent.distributionadhoc.xcconfig"; sourceTree = "<group>"; };
EA5F25D9232BD3E200475F2E /* msgNotificationService.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = msgNotificationService.appex; sourceTree = BUILT_PRODUCTS_DIR; };
EA5F25DB232BD3E200475F2E /* NotificationService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationService.swift; sourceTree = "<group>"; };
EA5F25DD232BD3E200475F2E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@ -2317,6 +2342,7 @@
F0BB8C34193624C800974404 /* libresolv.9.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libresolv.9.dylib; path = usr/lib/libresolv.9.dylib; sourceTree = SDKROOT; };
F0BB8C4A193631B300974404 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
F0FF66AA1ACAEEB0008A4486 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = ../../../../Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/IOKit.framework; sourceTree = "<group>"; };
F846D02BFBE0B27A3449C750 /* Pods-msgNotificationContent.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-msgNotificationContent.debug.xcconfig"; path = "Target Support Files/Pods-msgNotificationContent/Pods-msgNotificationContent.debug.xcconfig"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -2326,6 +2352,7 @@
files = (
EA88F3AC241BD05200E66528 /* UserNotificationsUI.framework in Frameworks */,
EA88F3AB241BD05200E66528 /* UserNotifications.framework in Frameworks */,
0630CB9061F23021B1DBF3E5 /* Pods_msgNotificationContent.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2366,6 +2393,7 @@
F05BAA621A5D594E00411815 /* libz.dylib in Frameworks */,
344ABDF114850AE9007420B6 /* libc++.1.dylib in Frameworks */,
22D1B68112A3E0BE001AE361 /* libresolv.dylib in Frameworks */,
FFB3929E755B4246D1DBE670 /* Pods_linphone.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2373,6 +2401,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
6B3B4E172D73EDB529D34614 /* Pods_msgNotificationService.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2387,6 +2416,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
131D0AB0F2BC0F1952D51CFE /* Pods_CallUITests.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2726,6 +2756,10 @@
5E58962520DCE5700030868C /* UserNotificationsUI.framework */,
63CE583F1C85EBF400304800 /* VideoToolbox.framework */,
C6909F6B2AA0DC2A0011D273 /* NetworkExtension.framework */,
A53B959BF2158A56EC9BAE72 /* Pods_CallUITests.framework */,
0254C760D6A88C5E0C18C2EE /* Pods_linphone.framework */,
60E8ED274FA16330872945FB /* Pods_msgNotificationContent.framework */,
9CABE0F1DD25F3C2B1A42DBB /* Pods_msgNotificationService.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@ -3474,6 +3508,22 @@
75AA7090378DBBA5417E4370 /* Pods */ = {
isa = PBXGroup;
children = (
3677A6CD9CA274FCC4821EAD /* Pods-CallUITests.debug.xcconfig */,
C2C514E23CC99DF19C6FB68D /* Pods-CallUITests.release.xcconfig */,
A843B29FA3A92B57B1A56CD7 /* Pods-CallUITests.distribution.xcconfig */,
661C30CDE7F1385A34649FDD /* Pods-CallUITests.distributionadhoc.xcconfig */,
4ADDC4A3A6FCAE17EED5083D /* Pods-linphone.debug.xcconfig */,
8B2E8912E038474F194FB30F /* Pods-linphone.release.xcconfig */,
E3BC214E5FF4FDC832F68EF0 /* Pods-linphone.distribution.xcconfig */,
95EFE52BE7F26B9EDE0069BC /* Pods-linphone.distributionadhoc.xcconfig */,
F846D02BFBE0B27A3449C750 /* Pods-msgNotificationContent.debug.xcconfig */,
3DA745CBF9F6A2ACE390E917 /* Pods-msgNotificationContent.release.xcconfig */,
C75E2A9663680FD9806FD8B9 /* Pods-msgNotificationContent.distribution.xcconfig */,
E5DA3F16C865FA3E648B62B4 /* Pods-msgNotificationContent.distributionadhoc.xcconfig */,
0F04AD4F6375B3BBD90E7010 /* Pods-msgNotificationService.debug.xcconfig */,
56F9C8820DE587701439D3DA /* Pods-msgNotificationService.release.xcconfig */,
28B4576D02DAC5687EFB5E10 /* Pods-msgNotificationService.distribution.xcconfig */,
A2BF1A58F43597EE4FCC00DC /* Pods-msgNotificationService.distributionadhoc.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
@ -3606,6 +3656,7 @@
C63F71C4285A24B10066163B /* PayloadType.swift */,
C63F71C5285A24B10066163B /* CallExtensions.swift */,
C63F71C6285A24B10066163B /* ConferenceExtensions.swift */,
C65DC9712C9D722A00EBC1E3 /* ChatMessageExtensions.swift */,
);
path = LinphoneCore;
sourceTree = "<group>";
@ -4013,6 +4064,7 @@
isa = PBXNativeTarget;
buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "linphone" */;
buildPhases = (
A46CF8119C77EACBA624EE47 /* [CP] Check Pods Manifest.lock */,
1D60588D0D05DD3D006BFB54 /* Resources */,
63DCC71D1A07B08E00916627 /* Run Script */,
1D60588E0D05DD3D006BFB54 /* Sources */,
@ -4020,6 +4072,7 @@
8CDC89061EAF89A8006B5652 /* Embed Frameworks */,
5EF0C35020C806A5005081B0 /* Embed App Extensions */,
614D0A1821E77F5300C43EDF /* ShellScript */,
F9509827424CB5E9F26CDA6A /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@ -4054,9 +4107,11 @@
isa = PBXNativeTarget;
buildConfigurationList = 6637AF99288593AF00965733 /* Build configuration list for PBXNativeTarget "CallUITests" */;
buildPhases = (
7405AA130B51C93DABCBF9AA /* [CP] Check Pods Manifest.lock */,
6637AF89288593AF00965733 /* Sources */,
6637AF8A288593AF00965733 /* Frameworks */,
6637AF8B288593AF00965733 /* Resources */,
C7EF2D368DEACA97A95F8F0B /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@ -4072,6 +4127,7 @@
isa = PBXNativeTarget;
buildConfigurationList = EA5F25E1232BD3E300475F2E /* Build configuration list for PBXNativeTarget "msgNotificationService" */;
buildPhases = (
D880A151F70DA115B23228D2 /* [CP] Check Pods Manifest.lock */,
EA5F25D5232BD3E200475F2E /* Sources */,
203E6292C3E84CD13778F720 /* Frameworks */,
EA88A406242A6224007FEC61 /* Resources */,
@ -4090,6 +4146,7 @@
isa = PBXNativeTarget;
buildConfigurationList = EA8CB834239F96CA00C330CC /* Build configuration list for PBXNativeTarget "msgNotificationContent" */;
buildPhases = (
E08AF6A67F136A2A8D9107CA /* [CP] Check Pods Manifest.lock */,
EA8CB823239F96CA00C330CC /* Sources */,
143EFEE2501CB14E6BB244EF /* Frameworks */,
EA88F3AE241BD1ED00E66528 /* Resources */,
@ -5017,6 +5074,258 @@
shellPath = /bin/sh;
shellScript = "$SRCROOT/Tools/git_version.sh\n";
};
7405AA130B51C93DABCBF9AA /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-CallUITests-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
A46CF8119C77EACBA624EE47 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-linphone-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
C7EF2D368DEACA97A95F8F0B /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-CallUITests/Pods-CallUITests-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCoreExtension/FirebaseCoreExtension.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCrashlytics/FirebaseCrashlytics.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseSessions/FirebaseSessions.framework",
"${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
"${BUILT_PRODUCTS_DIR}/PromisesSwift/Promises.framework",
"${BUILT_PRODUCTS_DIR}/linphone-sdk/linphonesw.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-ios.framework/bctoolbox-ios",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-tester.framework/bctoolbox-tester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox.framework/bctoolbox",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belcard.framework/belcard",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belle-sip.framework/belle-sip",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belr.framework/belr",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/lime.framework/lime",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/limetester.framework/limetester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphone.framework/linphone",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphonetester.framework/linphonetester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mediastreamer2.framework/mediastreamer2",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msamr.framework/msamr",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mscodec2.framework/mscodec2",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msopenh264.framework/msopenh264",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mssilk.framework/mssilk",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mswebrtc.framework/mswebrtc",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/ortp.framework/ortp",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreExtension.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCrashlytics.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfigInterop.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSessions.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Promises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonesw.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-tester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belcard.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belle-sip.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belr.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/lime.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/limetester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphone.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonetester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mediastreamer2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/msamr.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mscodec2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/msopenh264.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mssilk.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mswebrtc.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ortp.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CallUITests/Pods-CallUITests-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
D880A151F70DA115B23228D2 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-msgNotificationService-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
E08AF6A67F136A2A8D9107CA /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-msgNotificationContent-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
F9509827424CB5E9F26CDA6A /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-linphone/Pods-linphone-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/DropDown/DropDown.framework",
"${BUILT_PRODUCTS_DIR}/EmojiPicker/EmojiPicker.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCore/FirebaseCore.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCoreExtension/FirebaseCoreExtension.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCoreInternal/FirebaseCoreInternal.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseCrashlytics/FirebaseCrashlytics.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseInstallations/FirebaseInstallations.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework",
"${BUILT_PRODUCTS_DIR}/FirebaseSessions/FirebaseSessions.framework",
"${BUILT_PRODUCTS_DIR}/GoogleDataTransport/GoogleDataTransport.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${BUILT_PRODUCTS_DIR}/IQKeyboardManager/IQKeyboardManager.framework",
"${BUILT_PRODUCTS_DIR}/PromisesObjC/FBLPromises.framework",
"${BUILT_PRODUCTS_DIR}/PromisesSwift/Promises.framework",
"${BUILT_PRODUCTS_DIR}/SVProgressHUD/SVProgressHUD.framework",
"${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework",
"${BUILT_PRODUCTS_DIR}/SwipeCellKit/SwipeCellKit.framework",
"${BUILT_PRODUCTS_DIR}/linphone-sdk/linphonesw.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-ios.framework/bctoolbox-ios",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox-tester.framework/bctoolbox-tester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/bctoolbox.framework/bctoolbox",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belcard.framework/belcard",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belle-sip.framework/belle-sip",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/belr.framework/belr",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/lime.framework/lime",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/limetester.framework/limetester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphone.framework/linphone",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/linphonetester.framework/linphonetester",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mediastreamer2.framework/mediastreamer2",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msamr.framework/msamr",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mscodec2.framework/mscodec2",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/msopenh264.framework/msopenh264",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mssilk.framework/mssilk",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/mswebrtc.framework/mswebrtc",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/linphone-sdk/ortp.framework/ortp",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/DropDown.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/EmojiPicker.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCore.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreExtension.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCoreInternal.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseCrashlytics.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseInstallations.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfigInterop.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSessions.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleDataTransport.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/IQKeyboardManager.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FBLPromises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Promises.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SVProgressHUD.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SwipeCellKit.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonesw.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/nanopb.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-ios.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox-tester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/bctoolbox.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belcard.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belle-sip.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/belr.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/lime.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/limetester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphone.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/linphonetester.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mediastreamer2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/msamr.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mscodec2.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/msopenh264.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mssilk.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/mswebrtc.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/ortp.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-linphone/Pods-linphone-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@ -5232,6 +5541,7 @@
639E9C801C0DB13D00019A75 /* UICheckBoxTableView.m in Sources */,
CF7602E72108759A00749F76 /* UIRecordingCell.m in Sources */,
D3807FF615C2894A005BE9BC /* IASKSpecifier.m in Sources */,
C65DC9722C9D722A00EBC1E3 /* ChatMessageExtensions.swift in Sources */,
D3807FF815C2894A005BE9BC /* IASKPSSliderSpecifierViewCell.m in Sources */,
C63F726A285A24B10066163B /* StyledDatePicker.swift in Sources */,
C63F7237285A24B10066163B /* CallStatisticsData.swift in Sources */,
@ -5812,6 +6122,7 @@
/* Begin XCBuildConfiguration section */
1D6058940D05DD3E006BFB54 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 4ADDC4A3A6FCAE17EED5083D /* Pods-linphone.debug.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ALWAYS_SEARCH_USER_PATHS = NO;
@ -5826,7 +6137,7 @@
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 9;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = Z2V957B3D6;
ENABLE_BITCODE = NO;
@ -5838,6 +6149,7 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
"USE_CRASHLYTICS=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
@ -5858,16 +6170,16 @@
"$(inherited)",
);
LINK_WITH_STANDARD_LIBRARIES = YES;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.3;
OTHER_CFLAGS = (
"-DBCTBX_LOG_DOMAIN=\\\"ios\\\"",
"-DCHECK_VERSION_UPDATE=FALSE",
"-DENABLE_QRCODE=TRUE",
"-DENABLE_SMS_INVITE=TRUE",
"$(inherited)",
"-DLINPHONE_SDK_VERSION=\\\"5.3.0-alpha.173+990473d73\\\"",
"-DLINPHONE_SDK_VERSION=\\\"5.3.86\\\"",
);
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone;
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)app";
PRODUCT_NAME = linphone;
@ -5940,6 +6252,7 @@
};
228B19A71302902F00F154D3 /* DistributionAdhoc */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 95EFE52BE7F26B9EDE0069BC /* Pods-linphone.distributionadhoc.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ALWAYS_SEARCH_USER_PATHS = NO;
@ -5954,7 +6267,7 @@
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 9;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = Z2V957B3D6;
ENABLE_BITCODE = NO;
@ -5963,7 +6276,10 @@
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = linphone_Prefix.pch;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@ -5983,16 +6299,16 @@
"$(inherited)",
);
LINK_WITH_STANDARD_LIBRARIES = YES;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.3;
OTHER_CFLAGS = (
"-DBCTBX_LOG_DOMAIN=\\\"ios\\\"",
"-DCHECK_VERSION_UPDATE=FALSE",
"-DENABLE_QRCODE=TRUE",
"-DENABLE_SMS_INVITE=TRUE",
"$(inherited)",
"-DLINPHONE_SDK_VERSION=\\\"5.3.0-alpha.173+990473d73\\\"",
"-DLINPHONE_SDK_VERSION=\\\"5.3.86\\\"",
);
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone;
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)app";
PRODUCT_NAME = linphone;
@ -6064,6 +6380,7 @@
};
22F3D55613CC3C9100A0DA02 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 8B2E8912E038474F194FB30F /* Pods-linphone.release.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ALWAYS_SEARCH_USER_PATHS = NO;
@ -6078,7 +6395,7 @@
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 9;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = Z2V957B3D6;
ENABLE_BITCODE = NO;
@ -6087,7 +6404,10 @@
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = linphone_Prefix.pch;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@ -6107,16 +6427,16 @@
"$(inherited)",
);
LINK_WITH_STANDARD_LIBRARIES = YES;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.3;
OTHER_CFLAGS = (
"-DBCTBX_LOG_DOMAIN=\\\"ios\\\"",
"-DCHECK_VERSION_UPDATE=FALSE",
"-DENABLE_QRCODE=TRUE",
"-DENABLE_SMS_INVITE=TRUE",
"$(inherited)",
"-DLINPHONE_SDK_VERSION=\\\"5.3.0-alpha.173+990473d73\\\"",
"-DLINPHONE_SDK_VERSION=\\\"5.3.86\\\"",
);
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone;
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)app";
PRODUCT_NAME = linphone;
@ -6187,6 +6507,7 @@
};
22F51EE8107FA53D00F98953 /* Distribution */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E3BC214E5FF4FDC832F68EF0 /* Pods-linphone.distribution.xcconfig */;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)";
ALWAYS_SEARCH_USER_PATHS = NO;
@ -6201,7 +6522,7 @@
CODE_SIGN_STYLE = Automatic;
COMPRESS_PNG_FILES = NO;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 1;
CURRENT_PROJECT_VERSION = 9;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = Z2V957B3D6;
ENABLE_BITCODE = NO;
@ -6210,7 +6531,10 @@
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = linphone_Prefix.pch;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
GCC_TREAT_WARNINGS_AS_ERRORS = NO;
@ -6230,16 +6554,16 @@
"$(inherited)",
);
LINK_WITH_STANDARD_LIBRARIES = YES;
MARKETING_VERSION = 5.2.1;
MARKETING_VERSION = 5.2.3;
OTHER_CFLAGS = (
"-DBCTBX_LOG_DOMAIN=\\\"ios\\\"",
"-DCHECK_VERSION_UPDATE=FALSE",
"-DENABLE_QRCODE=TRUE",
"-DENABLE_SMS_INVITE=TRUE",
"$(inherited)",
"-DLINPHONE_SDK_VERSION=\\\"5.3.0-alpha.173+990473d73\\\"",
"-DLINPHONE_SDK_VERSION=\\\"5.3.86\\\"",
);
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone;
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)app";
PRODUCT_NAME = linphone;
@ -6431,6 +6755,7 @@
};
6637AF95288593AF00965733 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3677A6CD9CA274FCC4821EAD /* Pods-CallUITests.debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -6442,7 +6767,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)";
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
@ -6492,6 +6817,7 @@
};
6637AF96288593AF00965733 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = C2C514E23CC99DF19C6FB68D /* Pods-CallUITests.release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -6503,7 +6829,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)";
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
@ -6539,6 +6865,7 @@
};
6637AF97288593AF00965733 /* Distribution */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A843B29FA3A92B57B1A56CD7 /* Pods-CallUITests.distribution.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -6550,7 +6877,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)";
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
@ -6586,6 +6913,7 @@
};
6637AF98288593AF00965733 /* DistributionAdhoc */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 661C30CDE7F1385A34649FDD /* Pods-CallUITests.distributionadhoc.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
@ -6597,7 +6925,7 @@
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = "$(inherited)";
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
@ -6680,6 +7008,7 @@
};
EA5F25E2232BD3E300475F2E /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 0F04AD4F6375B3BBD90E7010 /* Pods-msgNotificationService.debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6711,6 +7040,7 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
@ -6721,7 +7051,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6735,6 +7065,7 @@
};
EA5F25E3232BD3E300475F2E /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 56F9C8820DE587701439D3DA /* Pods-msgNotificationService.release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6762,7 +7093,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -6772,7 +7106,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6786,6 +7120,7 @@
};
EA5F25E4232BD3E300475F2E /* Distribution */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 28B4576D02DAC5687EFB5E10 /* Pods-msgNotificationService.distribution.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6812,7 +7147,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -6822,7 +7160,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6836,6 +7174,7 @@
};
EA5F25E5232BD3E300475F2E /* DistributionAdhoc */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A2BF1A58F43597EE4FCC00DC /* Pods-msgNotificationService.distributionadhoc.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6863,7 +7202,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -6873,7 +7215,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationService;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6887,6 +7229,7 @@
};
EA8CB835239F96CA00C330CC /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = F846D02BFBE0B27A3449C750 /* Pods-msgNotificationContent.debug.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6918,6 +7261,7 @@
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"DEBUG=1",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
@ -6928,7 +7272,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationContent;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6942,6 +7286,7 @@
};
EA8CB836239F96CA00C330CC /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 3DA745CBF9F6A2ACE390E917 /* Pods-msgNotificationContent.release.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -6969,7 +7314,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -6979,7 +7327,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationContent;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -6993,6 +7341,7 @@
};
EA8CB837239F96CA00C330CC /* Distribution */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = C75E2A9663680FD9806FD8B9 /* Pods-msgNotificationContent.distribution.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -7019,7 +7368,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -7029,7 +7381,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationContent;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
@ -7043,6 +7395,7 @@
};
EA8CB838239F96CA00C330CC /* DistributionAdhoc */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = E5DA3F16C865FA3E648B62B4 /* Pods-msgNotificationContent.distributionadhoc.xcconfig */;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
@ -7070,7 +7423,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
"USE_CRASHLYTICS=1",
);
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
@ -7080,7 +7436,7 @@
MARKETING_VERSION = 5.2.0;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
OTHER_SWIFT_FLAGS = "$(inherited)";
OTHER_SWIFT_FLAGS = "$(inherited) -DUSE_CRASHLYTICS";
PRODUCT_BUNDLE_IDENTIFIER = org.linphone.phone.msgNotificationContent;
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";

View file

@ -233,6 +233,21 @@ class NotificationService: UNNotificationServiceExtension {
NotificationService.logDelegate = try! LinphoneLoggingServiceManager(config: config!, log: NotificationService.log, domain: "msgNotificationService")
}
lc = try! Factory.Instance.createSharedCoreWithConfig(config: config!, systemContext: nil, appGroupId: APP_GROUP_ID, mainCore: false)
// Disable auto downloads in service extension
// Save config values
let configMaxSizeForAutoDownloadIncomingFiles = config?.getInt(section: "app", key: "auto_download_incoming_files_max_size", defaultValue: -1)
let configAutoDownloadVoiceRecordingsEnabled = config?.getBool(section: "app", key: "auto_download_incoming_voice_recordings", defaultValue: true)
// Disable downloads in service extension (API calls below will set the core attributes value + config)
lc?.maxSizeForAutoDownloadIncomingFiles = -1
lc?.autoDownloadVoiceRecordingsEnabled = false
// restore the config values for the app
config?.setInt(section: "app", key: "auto_download_incoming_files_max_size", value: configMaxSizeForAutoDownloadIncomingFiles!)
config?.setBool(section: "app", key: "auto_download_incoming_voice_recordings", value: configAutoDownloadVoiceRecordingsEnabled!)
}
func stopCore() {