iOS动态库导入问题

如何区分静态库和动态库

  1. cd到.frame目录之下

    cd xxx.framework
    
  2. 使用file命令

    file xxx
    
  3. 输出信息若包含dynamically标识则代表是动态库

    xxx: Mach-O universal binary with 2 architectures: [arm_v7:Mach-O dynamically linked shared library arm_v7] [arm64]
    xxx (for architecture armv7):    Mach-O dynamically linked shared library arm_v7
    xxx (for architecture arm64):    Mach-O 64-bit dynamically linked shared library arm64
    

动态库导入问题

动态库中导入到工程与静态库不同,需要签名后导入,标准导入方式如下:

General-->Frameworks,Libraries,and Embedded Content

截屏2020-04-27 上午11.06.23.png

[iOS]Reason: image not found 错误

标准导入方式导入即可解决。

网上有说在BuildPhases-->Link Binary With Libraries中将xxx.framework选项改为Optional,实测能运行通过,但是xxx.framework的实例创建后为nil,表明并没有将动态库install成功。

[iOS] App installation failed: Could not inspect application package

若导入动态库后出现,App无法安装到真机的情况,此情况可能与xxx.framework中的Info.plist文件有关。

Info.plist与动态库签名有关,若是消失或不匹配会导致App无法安装的问题。

iOS 真机 dyld: Library not loaded: 问题

第一种情况,App bundle identifer 安装描述文件mobileprovision过期

解决办法:重新生成mobileprovision

第二种情况,手机上安装了一个或多个包含此动态库的开发App

解决办法:删除所有开发App后,再次安装

你可能感兴趣的:(iOS动态库导入问题)