应用使用Linphone在lpConfigStringForKey上崩溃

时间:2019-07-11 16:14:36

标签: ios objective-c crash linphone linphone-sdk

我有一个使用Linphone库的iOS voip应用程序。以前,该应用程序已成功运行,但我刚刚从linphone-iphone升级了linphone框架和文件:LinphoneManager.h / .m和Utils.h / .m。

从新版本的linphone-sdk添加更新的框架并更新LinphoneManager.h / m之后,我在启动应用程序时遇到崩溃。当应用程序点击

时,将发生崩溃
lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);

在lpConfigStringForKey()中。

我曾尝试删除并读取框架并检查LinphoneManager.h / .m代码,但没有找到解决方案,也没有在linphone-iphone问题中找到任何与我相似的实例。

崩溃发生在碰到下面的代码块

- (NSString *)lpConfigStringForKey:(NSString *)key inSection:(NSString *)section withDefault:(NSString *)defaultValue {
    if (!key) {
        return defaultValue;
    }
    const char *value = lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);
    return value ? [NSString stringWithUTF8String:value] : defaultValue;
}

这是我尚未修改的LinphoneManager.m中的标准功能。

具体来说,崩溃来自linphone框架中的以下功能:

lp_config_get_string(_configDb, [section UTF8String], [key UTF8String], NULL);

当应用崩溃时,我已经记录了key,section和defaultValue变量。他们是:

2019-07-11 10:58:51.033849-0500 myApp[15512:511705] KEY: debugenable_preference
2019-07-11 10:58:51.033964-0500 myApp[15512:511705] SECTION: app
2019-07-11 10:58:51.034040-0500 myApp[15512:511705] DEFAULT: (null)

lp_config_get_string指向的linphone_config_get_string的标题注释如下:

/**
 * Retrieves a configuration item as a string, given its section, key, and default value.
 *
 * The default value string is returned if the config item isn't found.
**/
LINPHONE_PUBLIC const char *linphone_config_get_string(const LinphoneConfig *lpconfig, const char *section, const char *key, const char *default_string);

以下是错误和崩溃的屏幕截图: Crash stack trace and error

我认为添加框架时会丢失一些东西,但是我还找不到它。

  • 注意-如果我注释掉lp_config_get_string调用,那么当应用程序转到下一个lp_config函数调用时,它将在那里崩溃。因此,看起来它与linphone.framework和lp_config模块有关,但是我还没有找到解决方案。

谢谢

1 个答案:

答案 0 :(得分:0)

我发现了问题。初始化函数缺少以下内容:

    [self renameDefaultSettings];
    [self copyDefaultSettings];
    [self overrideDefaultSettings];

哪个会导致lp_config出现问题