iOS摸鱼周报 第十三期

iOS摸鱼周报,主要分享开发过程中遇到的经验教训、优质的博客、高质量的学习资料、实用的开发工具等。周报仓库在这里:https://github.com/zhangferry/iOSWeeklyLearning ,如果你有好的的内容推荐可以通过 issue 的方式进行提交。另外也可以申请成为我们的常驻编辑,一起维护这份周报。另可关注公众号:iOS成长之路,后台点击进群交流,联系我们,获取更多内容。

开发Tips

整理编辑:人魔七七

CocoaPods 常见操作

pod install

当我们的工程首次使用 Cocoapods 管理第三方库的时候或者当我们每次编辑 Podfile 文件的时候比如:添加,删除或者编辑一个 pod 库的时候,都需要执行该命令。

  • 首次执行 pod install 命令,会下载安装新的 pod,并把每个 pod 的版本写到 Podfile.lock 文件里。这个文件跟踪所有的 pod 库及其依赖的版本并锁定他们的版本号。
  • 在存在 Podfile.lock 的情况下执行 pod install 的时候,只解析 Podfile.lock 中没有列出的pod依赖项。1. 对于Podfile.lock 列出的版本,不需要检查 pods 是否有更新直接使用既有的版本安装。2. 对于Podfile.lock 未列出的版本,会根据Podfile 描述的版本安装。

Podfile 文件是 pod 执行的核心文件,它的解析逻辑推荐看这篇:Podfile 的解析逻辑

pod update

pod update 可以全局升级,也可以指定 podName 单个升级。当我们执行 pod update podName 的时候,会忽略 Podfile.lock 文件的版本,根据 Podfile 的定义尽可能更新到最新的版本,并更新 Podfile.lock 文件。该命令会同样适配于 pod 库 podspec文件内部定义的依赖。 可以通过pod outdated 检测出过期的依赖版本和可升级版本。

对于 install 和 update 有两个常用参数:

  • --repo-update:该参数会更新所有的 repo,例如该更新了一个私有库版本,直接 install 是找不到对应版本的,我们不想更新所有的依赖库,只想更新 对应的 repo,就可以使用该指令。该参数还对应一个特有命令:pod repo update
  • --no-repo-update:update 操作会默认更新所有 repo,有时这并不是必须的,且该步骤会同步 pod 公有 repo,导致比较耗时,这时就可以增加该参数,用于关闭该更新操作。

CocoaPods 使用建议

  • 推荐使用 Gemfile 管理 pod 版本,每次执行 pod 通过 bundle 进行,例如: bundle exec pod install

  • 工程持有管理者对项目进行 CocoaPods 初始化的时候会有一个 Podfile.lock 这个文件我们需要纳入版本控制里。

  • 如果需要更新某个库到某一个版本,由项目持有管理者采用 pod update podName 的方式更新某个库到一定的版本。然后提交 Podfile.lock 和 Podfile 文件。

那些Bug

整理编辑:zhangferry

module compiled with Swift 5.3.2 cannot be imported by the Swift 5.3 compiler: **.swiftmodule

问题背景

通过某个版本的 Xcode 生成的 Swift 库(Framework),在另一台机器(不同版本 Xcode)无法识别,报上述错误。

问题分析

该错误是由于编译器不兼容导致的,错误含义是由 Swift 5.3.2 编译器(编译器版本可以通过 swift --version查看)编译的module,特指 swiftmodule 文件,无法被 Swift 5.3 的编译器所识别。swiftmodule文件用于描述Swift内部的方法声明,它是二进制格式的,会根据不同的架构生成不同的版本。但也正因为其二进制格式的特性,无法跟随编译器的升级进行调整。这个问题对应的就是 ABI 稳定中的 module stability。这里引用喵神的一段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
《精通iOS开发 第七版》是一本针对iOS开发者的权威参考书。在本书中,作者深入讲解了iOS开发的核心概念、技术和最佳实践。 首先,本书涵盖了最新的iOS技术和平台。作者详细介绍了iOS 13的新特性,包括深色模式、新的用户界面风格和改进的系统组件。读者可以从中了解到如何充分利用这些新功能,提升自己的应用的用户体验。 其次,本书系统地介绍了iOS开发的各个方面。从基础的开发环境搭建和Swift编程语言入门开始,到高级的用户界面设计、数据存储和网络通信等内容,作者逐步引导读者掌握iOS开发的关键技能。同时,本书还特别强调了测试和调试的重要性,教授读者如何编写高质量、稳定的代码。 此外,本书还包含了大量实用的示例代码和案例研究。通过实际的代码实现和案例分析,读者可以更好地理解和应用书中的知识点。这些示例覆盖了从简单的应用到复杂的用户界面和网络应用的开发过程,帮助读者直观地了解如何构建功能完善、性能优秀的iOS应用。 最后,本书还提供了丰富的在线资源支持。读者可以通过书中提供的链接访问作者编写的源代码、额外的学习资源和最新的更新内容。这样,读者可以和其他开发者进行交流、学习和共享经验,加快自己的学习和成长。 综上所述,《精通iOS开发 第七版》是一本全面、深入的iOS开发指南,适合初学者和有一定经验的开发者阅读。通过学习本书,读者可以系统地掌握iOS开发的关键技术和最佳实践,提升自己的开发能力和应用质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值