iOS 制作私有库framework + 图片资源的使用

这篇具有很好参考价值的文章主要介绍了iOS 制作私有库framework + 图片资源的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 库的分类

  1. 开源库:公开源代码,能看到具体实现
  2. ** 闭源库**:不公开源代码,是经过编译后的二进制文件,看不到具体实现;其中包括:静态库和动态库

2. 开源库的制作

我了解的开源库的制作,就是将代码上传到cocopods上,提供其他人下载使用。
优点:制作简单
缺点:暴露源码
cocopods上传的步骤:
将代码上传到cocopods

3. 静态私有库framework的制作

3.1 用xcode创建一个framework工程:

iOS 制作私有库framework + 图片资源的使用
iOS 制作私有库framework + 图片资源的使用iOS 制作私有库framework + 图片资源的使用
创建后的工程如下:
iOS 制作私有库framework + 图片资源的使用

3.2 添加代码

将准备好的代码添加到工程里
iOS 制作私有库framework + 图片资源的使用
添加对应的代码文件目录如下:
iOS 制作私有库framework + 图片资源的使用
iOS 制作私有库framework + 图片资源的使用

3.3 配置工程文件

设置兼容最低的iOS系统
iOS 制作私有库framework + 图片资源的使用

设置Build Active Architecture Only 值 为NO。如下图(适配所有版本的模拟器和真机)
iOS 制作私有库framework + 图片资源的使用

设置Mach-O Type值为Static Library(静态库)。如下图
iOS 制作私有库framework + 图片资源的使用

设置Excluded Architectures下的 Any ios Simulator SDK 值为 arm64。(模拟器生成的.framework, 不需要arm64架构)。如下图 切记taget不要看错了。
iOS 制作私有库framework + 图片资源的使用
iOS 制作私有库framework + 图片资源的使用

3.4 设置暴露的头文件

将需要别人引用的头文件设置public。默认在project(不可见,私有)。
iOS 制作私有库framework + 图片资源的使用

在自动生成的IGLiveSDK的.h 文件中,加入需要暴露的头文件, 格式应该是用"<>“
iOS 制作私有库framework + 图片资源的使用
注意:设置public的文件,与在LGLiveSDK 设置的头文件要保持一致,不然编译不通过。

3.5 引用到其他的三方库时的操作

如果代码中引用到了其他的三方库,例如AFN, Masonry等等,那么也需要在framework的工程中集成过来,保证能编译成功。
用命令行进入项目文件下:
执行”pod init“
iOS 制作私有库framework + 图片资源的使用

在Podfile 中,添加对应的其他三方库
iOS 制作私有库framework + 图片资源的使用

回到命令行,执行“pod install”
iOS 制作私有库framework + 图片资源的使用

3.6 设置编译模式 release

iOS 制作私有库framework + 图片资源的使用

3.7 编译

先选择真机编译 ,command+b 生成真机.framework,如果不成功,看看是什么问题
iOS 制作私有库framework + 图片资源的使用

选择模拟器,command+b 生成模拟器.framework
iOS 制作私有库framework + 图片资源的使用

3.8 真机和模拟器都编译成功后,合并生成对应的framework

在project下的新建一个run script, 执行后自动生成合并后的framework
Project --> TARGETS --> Build Phases -> + --> New Run Script Phases 如下:
iOS 制作私有库framework + 图片资源的使用
在新建的run script 下添加如下的代码:

# Type a script or drag a script file from your workspace to insert its path.
if [ "${ACTION}" = "build" ]
then
INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework
DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework
SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework
# 如果真机包或模拟包不存在,则退出合并
if [ ! -d "${DEVICE_DIR}" ] || [ ! -d "${SIMULATOR_DIR}" ]
then
exit 0
fi

# 如果合并包已经存在,则替换
if [ -d "${INSTALL_DIR}" ]
then
rm -rf "${INSTALL_DIR}"
fi
mkdir -p "${INSTALL_DIR}"
cp -R "${DEVICE_DIR}/" "${INSTALL_DIR}/"
# 使用lipo命令将其合并成一个通用framework  
# 最后将生成的通用framework放置在工程根目录下新建的Products目录下  
lipo -create "${DEVICE_DIR}/${PROJECT_NAME}" "${SIMULATOR_DIR}/${PROJECT_NAME}" -output "${INSTALL_DIR}/${PROJECT_NAME}"
#合并完成后打开目录
open "${SRCROOT}/Products"
fi

添加后的效果如下:
iOS 制作私有库framework + 图片资源的使用
真机模拟器 都各编译完一次后,才能执行这段代码,执行步骤,就是common + B, 编译完后,会在工程目录下生成对应的framework,如下图:
iOS 制作私有库framework + 图片资源的使用

3.9 使用framework

将framework拖到需要使用的工程目录下,为了方便管理添加的framework库,我在工程目录下创建了一个“Library”文件夹,我添加的路径,如下图
iOS 制作私有库framework + 图片资源的使用
打开工程,添加对应的framework
iOS 制作私有库framework + 图片资源的使用
添加后的样子
iOS 制作私有库framework + 图片资源的使用
在 target下的general 的Framework 、libraries 下 点击" + " 选择 “ Add file” 将 对应的Framework添加进来,并将值设置为“Do Not Embed”
iOS 制作私有库framework + 图片资源的使用
在需要的地方添加引用逻辑即可。

4. Framework中需要用到资源的添加

回到制作Framework的工程中,在生成的framework 目录即 Product 下,与 framework平级下添加一个.bundle, 如下图
iOS 制作私有库framework + 图片资源的使用
将图片资源放到进去,然后在使用Framework的工程中,也添加这个bundle文件,如下图:
iOS 制作私有库framework + 图片资源的使用iOS 制作私有库framework + 图片资源的使用

Framework中 图片的获取,注意需要区分@2x.png 和 @3x.png , 图片的名称必须写全,否则会找不到图片的。

- (UIImage *)getImageWithName:(NSString *)imageName {
    NSBundle *bundle = [NSBundle bundleForClass:[self class]];
    //IGLiveSDK 需要修改成创建的对应的bundle名
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"IGLiveSDK.bundle/%@@2x.png",imageName] inBundle:bundle compatibleWithTraitCollection:nil];
    if (image == nil) {
        image = [UIImage imageNamed:imageName];
    }
    return image;
}

—结束—

参考文档:

iOS制作framework
iOS Framework合并文章来源地址https://www.toymoban.com/news/detail-495631.html

到了这里,关于iOS 制作私有库framework + 图片资源的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Webpack5 处理图片资源

    过去在 Webpack4 时,我们处理图片资源通过 file-loader 和 url-loader 进行处理 现在 Webpack5 已经将两个 Loader 功能内置到 Webpack 里了,我们只需要简单配置即可处理图片资源 src/images/1.jpeg src/images/2.png src/images/3.gif src/less/index.less src/sass/index.sass src/styl/index.styl 打开 index.html 页面查看

    2024年02月13日
    浏览(42)
  • 05_Unity动态加载图片资源

    本文归纳了Unity中加载图片资源的常用方法,包括url和本地路径的加载。 在工具类中封装如下方法: 一般是放在单例中,如:GameManager 创建一个Image物体 在本地存放一张图片,Guide1.png 放置在: Resources/Image/Guide1.png 路径下 在物体上挂接一个测试脚本 执行前: 执行后: 还是刚

    2024年02月05日
    浏览(116)
  • 如何在Qt项目中引入图片资源

    首先,在Qt项目里创建一个目录 icon ,然后将图片资源放 icon 目录中 在Qt creator中创建resource file 右键项目 myqtdesign Add New... Qt Qt Resource File 输入文件名 myimage ,并在 CMakeLists.txt 加入 myimage.qrc 并保存(control + s) 3. 添加前缀 /images 右键 myimage.qrc 文件 Add Prefix... ,结果如下图: 添

    2024年02月13日
    浏览(52)
  • vue如何动态加载显示本地图片资源

    在实际开发中,根据某一个变量动态展示图片的情况有很多。实现方法分打包构建工具的差异而不同。 1、webpack的项目 require引入图片资源 2、vite的项目 new URL(url,base).href 疑问解答:为什么vite项目不可以用require? 原因在于,vite的模块化规范是ES Modules,所以vite项目在打包构建

    2024年02月22日
    浏览(55)
  • uniapp选取本地资源(图片,视频,文件)

    从本地相册选择图片或使用相机拍照。 App端如需要更丰富的相机拍照API(如直接调用前置摄像头),参考plus.camera OBJECT 参数说明 参数名 类型 必填 说明 平台差异说明 count Number 否 最多可以选择的图片张数,默认9 见下方说明 sizeType ArrayString 否 original 原图,compressed 压缩图,

    2024年02月11日
    浏览(53)
  • Vite静态资源处理——动态引入图片

    服务时引入一个静态资源会返回解析后的公共路径: 导入既可以使用绝对公共路径(基于开发期间的项目根路径),也可以使用相对路径。 vite 生产构建后文件名会哈希,如图: import.meta.url 是一个 ESM 的原生功能,会暴露当前模块的 URL。将它与原生的 URL 构造器 组合使用,

    2024年02月10日
    浏览(44)
  • 【快速搞定Webpack5】处理图片资源(四)

    过去在 webpack4 中,我们处理图片资源通过file-loader和url-loader进行处理 现在 webpack5 已经将两个loader功能内置到webpack中了,我们只需要简单配置即可处理图片资源。 1、配置 新增37-38行配置 2、添加图片资源 src/images/1.jpg src/images/2.jpeg 3、使用图片资源 src/css/index.css src/less/index

    2024年02月22日
    浏览(54)
  • Qt5.15.2中加入图片资源

    以前用的Qt5.15.2之前的版本,QtCreator默认的工程文件是*.pro,现在用5.15.2创建工程默认的工程文件是CMameList.txt,当然在创建项目时,仍然可以使用pro工程文件用QtCreator打开CMakeList.txt 以前用习惯了pro文件,现在改成CMakeList很不习惯,现在我们在CMakeList.txt中加入资源文件 1.首先,

    2024年01月22日
    浏览(57)
  • Android Studio开发之路(二)添加图片资源

    第一步:复制要添加的图片 第二步:右键点击项目的res-drawable目录,选择paste粘贴 选择drawable目录 问你是否确定要复制,点击ok即可 然后就可以看到在drawable目录下出现了复制的图片 然后在xml中添加代码就可以显示在界面上了

    2024年02月09日
    浏览(48)
  • flutter项目引入本地静态图片资源并展示

    想要在flutter中引入静态资源,需要配置pubspec.yaml,将本地的静态资源添加到assets下面: 然后在flutter引入这些静态资源:  就可以在app中看到这个图片了:  也可以使用网络图片:

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包