ToB企服应用市场:ToB评测及商务社交产业平台

标题: iOS之怎样创建.framework静态库 [打印本页]

作者: 耶耶耶耶耶    时间: 2024-9-5 20:10
标题: iOS之怎样创建.framework静态库
番外:想要查看怎样创建.a静态库可前往看我iOS之怎样创建.a静态库-CSDN博客这篇文章。

一、创建framework项目

     

二、配置framework

1. Build Settings 配置

     2. Build Phases 配置

     三、创建Bundle

如果项目中用到了图片、Xib等资源时需要创建一个Bundle:File - New - Target - macOS - Bundle。

   温馨提示
在创建Bundle时的名称不能和framework的名称一样,一样会导致失败。 
    配置Bundle
  
    将创建好的Bundle添加到framework项目的依赖中去。 
  

五、使用Bundle

在framework中使用bundle中的资源不能直接通过资源的名称来获取。
  1. [UIImage imageNamed:@"logo.png"];
复制代码
这种方法获取不到logo.png图片。
正确的方式是:先获取到bundle的路径,然后再将资源文件的路径拼接到bundle路径背面才气获取到资源。如下
  1. NSString *bundlePath = [[NSBundle mainBundle] pathForResource:@"PrintFramework.bundle" ofType:@"bundle"];
  2. NSString *imagePath = [bundlePath stringByAppendingString:@"/logo.png"];
  3. UIImage *image = [UIImage imageNamed:imagePath];
复制代码
六、编译项目

   编译生成framework静态库之前先将framework对应的scheme中的run 的值改成 Release
  编译真机项目

编译模拟器项目

之后会看到在products 分组下的PrintFramework.framework变成黑色。
选中PrintFramework.framework右键,选择Open In Finder 可以看到编译好的两个bundle文件。
七、合成模拟器和真机通用的framework静态库

之前编译生成的两个静态库分别支持模拟器和真机的使用。但是在实际开发中需要即支持模拟器又支持真机使用的静态库怎么办?这个问题当然可以办理,那就是将两个静态库合并生成一个通用的静态库。可以在mac终端中使用下面的下令合成

  1. lipo -create path1/PrintFramework.bundle/PrintFramework path2/PrintFramework.bundle/PrintFramework -output path3/PrintFramework
复制代码
path1和path2分别是模拟器和真机的静态库的路径。path3是合成之后的文件的存放路径。
八、framework 的使用


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4