美文网首页
apicloud初接触

apicloud初接触

作者: Mr_LS | 来源:发表于2020-12-08 10:19 被阅读0次

作为一个纯原生开发的小白,最近项目需要对接apicloud,遇到了诸多小白级的问题,在这赘述一番,大佬勿喷.

先在平台注册账号,然后就可以创建项目,选择项目所需的模块,就可以云编译出相对应的sdk,后再SuperWebview中调用,详细见开发指南

原生与apicloud建立连接

    #import "AppDelegate.h"
    #import "APIManager.h"

    @interface AppDelegate ()

    @end

    @implementation AppDelegate


    - (BOOL)application:(UIApplication *)application        didFinishLaunchingWithOptions:(NSDictionary         *)launchOptions {
// Override point for customization after application       launch.
        APIConfiguration *configuration = [[APIConfiguration alloc] init];
        [[APIManager sharedManager] initSDKWithLaunchOptions:launchOptions  configuration:configuration];
        return YES;
}

初始化方法

NSString *url = @"widget://html/start.html";
NSString *name = @"start";
APIWindowContainer *windowContainer = [APIWindowContainer windowContainerWithAttribute:@{@"url":url, @"name":name} widget:nil];
[windowContainer startLoad];
[self.navigationController pushViewController:windowContainer animated:YES];

问题1

导入三方SDK.framework之后,启动崩溃之后如下:


截屏2020-12-08 10.12.21.png

在正常导入framework之后,做如下操作:

2225109-f4a7f038028f451c.png

问题2

在一个IOS项目中,使用superWebview,集成两套widget引发的问题:

在一个项目中,使用superwebview的方式,集成了两套widget,并命名为,widget和widget1;通过配置解析路径的方式,使原生界面的两个按钮,分别指向、打开这两个widget。初始化似乎只能初始化名为widget的那个,后找到相关解释用以下方法解决:

初始化页面的时候都可以指定widget
+ (instancetype)windowContainerWithAttribute: (NSDictionary *)attribute widget: (UZWidget *)widget

那么问题又来了,UZWidget该如何初始化呢?遂继续寻找到:

 /*!
 通过指定config.xml文件来创建一个widget对象
  @param path config.xml文件的绝对路径
 @return 返回一个widget对象
  */
 - (id)initWithConfigPath:(NSString *)path;

没太明白,只得放弃,改用另一种解决方式:把另一个项目的widget1放到widget目录内部,通过路径指向widget即可:

NSString *url = @"widget://widget1/index.html";
NSString *name = @"index";
APIWindowContainer *windowContainer = [APIWindowContainer windowContainerWithAttribute:@{@"url":url, @"name":name} widget:nil];
[windowContainer startLoad];
[self.navigationController pushViewController:windowContainer animated:YES];

问题3 在官方文档中介绍了3.1.2 工程设置:

找到项目工程的TARGETS -> Build Phases -> Link Binary With Libraries,添加SDK用到的必需的库WebKit.framework、libz.tbd、libicucore.tbd。若使用了模块可能还需要额外添加一些相应的库
那么问题是使用了模块需要添加哪些相应的库如何得知呢?,现在还是蒙圈的,有路过的大佬求解释一下,我临时是做如下解决:

截屏2020-12-08 10.03.41.png

大部分是链接相关的错误,是跟C++相关的,不知道之前为什么可以,于是尝试添加c++相关的库

1254885-cb97cab804dca195.png

然后错误减少,继续寻找:

 Undefined symbols for architecture x86_64: 
“_res_9_setservers”, referenced from: 
_setup_dns_server in QNResolvUtil.o 
“_res_9_ninit”, referenced from: 
+[QNResolver systemDnsServer] in QNResolver.o 
_setup_dns_server in QNResolvUtil.o 
“_res_9_getservers”, referenced from: 
+[QNResolver systemDnsServer] in QNResolver.o 
“_res_9_ns_parserr”, referenced from: 
_query_ip_v4 in QNResolver.o 
_query_ip in QNTxtResolver.o 
“_res_9_ns_name_uncompress”, referenced from: 
_query_ip_v4 in QNResolver.o 
“_res_9_nquery”, referenced from: 
_query_ip_v4 in QNResolver.o 
_query_ip in QNTxtResolver.o 
“_res_9_ns_initparse”, referenced from: 
_query_ip_v4 in QNResolver.o 
_query_ip in QNTxtResolver.o 
“_res_9_ndestroy”, referenced from: 
_query_ip_v4 in QNResolver.o 
+[QNResolver systemDnsServer] in QNResolver.o 
_query_ip in QNTxtResolver.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这个错导入 libresolv.9.tbd 解决


 Undefined symbols for architecture x86_64: 
“_crc32”, referenced from: 
+[QNCrc32 data:] in QNCrc32.o 
+[QNCrc32 file:error:] in QNCrc32.o 
    -[MarvellSmartConfig xmitterTask:password:] in MarvellSmartConfig.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

这个错导入 libz.tbd 解决


Undefined symbols for architecture x86_64: 
“_utf8_nextCharSafeBody”, referenced from: 
_validate_dispatch_data_partial_string in SRWebSocket.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

这个错导入 libicucore.tbd 解决


其他问题还有路上....

相关文章

网友评论

      本文标题:apicloud初接触

      本文链接:https://www.haomeiwen.com/subject/kwrfgktx.html