美文网首页
iOS有些库只能在真机上运行,想在模拟器上运行的解决办法

iOS有些库只能在真机上运行,想在模拟器上运行的解决办法

作者: 走在长长地路上 | 来源:发表于2020-02-12 11:17 被阅读0次

在开发中,我们多少都会用到第三方的东西。有些库正好适合自己的需求,但是却只支持真机上运行,在模拟器上编译却不通过。

一般情况下,.a静态包,刚导入的时候,不管真机还是模拟器都是不会编译报错的,这说明,只有在调用到其中的方法时,编译器才会去检测.a文件是不是支持当前的设备架构。想要在模拟器上运行,就要避开模拟器上运行报错的地方。

例如下面的报错就是模拟器运行报错:


模拟器运行报错.png

解决办法:
找到报错的地方,例如第一个错误位置是JYBDScanCardManage类里面configIDScan方法中EXCARDS_Init这句代码不支持模拟器运行,所以在此对运行环境做判断

#if TARGET_IPHONE_SIMULATOR

#else
  //不支持模拟器运行的方法
#endif

修改后的代码示例

static bool initFlag = NO;
- (void)configIDScan {
    if (!initFlag) {
        
#if TARGET_IPHONE_SIMULATOR
#else
        const char *thePath = [[[NSBundle mainBundle] resourcePath] UTF8String];
        int ret = EXCARDS_Init(thePath);
        if (ret != 0) {
            NSLog(@"初始化失败:ret=%d", ret);
        }
#endif
        
        initFlag = YES;
    }
}

判断是真机还是模拟器,只有在真机情况下调用插件初始化方法。

相关文章

网友评论

      本文标题:iOS有些库只能在真机上运行,想在模拟器上运行的解决办法

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