美文网首页
集成第三方SDK时,SDK界面中图片缺失

集成第三方SDK时,SDK界面中图片缺失

作者: Frankkkkk | 来源:发表于2019-08-13 10:38 被阅读0次

问题描述

近期在集成公信宝的SDK时,发现跳到SDK相关界面时,界面有图标缺失的问题;但是运行SDK demo时,三方界面又展示正常。下面来一步步排查问题。

排查步骤

1、核对集成步骤
仔细对了一遍集成步骤,发现没有任何问题,bundle目录如下图所示:

gxb_data_sdk_bundle.bundle

2、怀疑是bundle路径问题
加载不出来的图片是在gxb_data_sdk_bundle.bundle中,下面是项目目录分析:

工程目录
由上面的目录可以看出,工程目录比较复杂。
最外面是主工程,主工程里包含了FanbeiCreditSDKFanbeiCreditSDK中集成了公信宝SDK。

3、解决方案
gxb_data_sdk_bundle.bundle改成外部依赖,即放到主工程中,如下图所示:

增加外部依赖
结果:加载成功!

4、原因分析
因为gxb_data_sdk_bundle不在mainBundle中(在FanbeiCreditSDK中),所以以下代码是加载不了gxb_data_sdk_bundle中的图片资源的。

    //  主bundle,也就是可执行的工程的bundle
    NSBundle *mainBundle = [NSBundle mainBundle];
    //  放在主工程中的自定义bundle
    NSString *myBundlePath = [[NSBundle mainBundle] pathForResource:@"gxb_data_sdk_bundle" ofType:@"bundle"];
    NSBundle *myBundle = [NSBundle bundleWithPath:myBundlePath];
    //  放在自定义bundle中的图片
    NSString *imagePath = [myBundle pathForResource:@"authListHeaderbg" ofType:@"png"];
    UIImage *image = [UIImage imageWithContentsOfFile:imagePath];

综上所述,得到的解决办法是:增加主工程的外部资源依赖,即拷贝一份gxb_data_sdk_bundle到主工程中。

相关文章

网友评论

      本文标题:集成第三方SDK时,SDK界面中图片缺失

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