IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> CocoaPods问题记录 -> 正文阅读

[移动开发]CocoaPods问题记录

上一篇:CocoaPods实现管理库、发布库、组件化

CocoaPods的官网

CocoaPods

CocoaPods组件化问题记录

代码修改之后运行不生效

1、代码修改之后运行不生效,需要shift+command+K进行clean之后重新编译才生效;
2、主工程的Podfile设置use_frameworks!时,修改之后执行pod install、pod update并不能使更改后的代码生效;
3、主工程的Podfile注释掉use_frameworks!,注释掉之后一定要记得执行pod install,这样才会编译出.a文件,下次修改文件之后编译可以让最新代码生效。
(如果不是注释掉use_frameworks!,而是改成use_frameworks! :linkage => :static或者use_frameworks! :linkage => :dynamic,则编译结果是framework,代码修改之后重新编译运行不生效。)

调用其他模块方法

1、如果不使用”use_frameworks!“,则可以直接调用其他模块方法;
2、如果使用”use_frameworks!“,则必须在本模块的ModuleA.podspec中添加s.dependency 'ModuleB'才能调用其他模块方法;
3、所以不管是否使用”use_frameworks!“,如果依赖其他模块,都要加上s.dependency,这样可以表明依赖关系。

新文件没有代码提示

新创建文件、在pch文件中import文件之后,都要执行pod install,才会有代码提示。

当LocalPods中的模块使用Swift

1、必须将主项目的podfile改成use_frameworks! :linkage => :static。但是有时执行调用模块内方法会出现unrecognized selector,需要command+k清除之后重新编译。改成dynamic还是每次修改视图显示都要重新编译,否则不生效。
2、本地模块的xx.podspec文件中的s.public_header_files = 'Classes/Public/**/*.h'这个参数设置好像只能用于.h文件,如果改成“‘Classes/Public/**/*’”导入了Public目录下.m或.swift文件会有问题。Swift文件能不能被模块外访问可以用open/public访问控制修饰,默认访问控制是internal只能模块内使用这些类,改成open可以被模块外继承重写,public可以被模块外使用。
3、在模块内部的OC文件里不能使用“#import “RCLiveModule(模块名)-Swift.h””,在主项目中可以,因为是use_frameworks!,如果去掉这句则变成模块内部可以使用而在主项目中不可以。而且那些需要被OC访问的类需要有一个父类,并且自定义方法要加上@objc才会自动生成OC方法。

其他问题记录

查看ruby版本

ruby -v查看ruby版本为2.6.3,执行sudo gem install -n /usr/local/bin cocoapods -v 1.10.1出错“ERROR: Failed to build gem native extension.”,下载1.9.3也是这个错误,下载1.7.2成功,所以可能是ruby版本太低。

查看CocoaPods所在目录

在“/Library/Ruby/Gems/(版本比如)2.6.0/gems/”可以查看下载的gem list,如cocoapods-1.7.2、cocoapods-trunk-1.3.1、concurrent-ruby-1.1.8目录。

use_frameworks!

1、use_frameworks!使用框架,默认是动态链接,到了cocoapods1.9之后可以指定动态链接(use_frameworks! :linkage => :dynamic)还是静态链接(use_frameworks! :linkage => :static)。
2、OC默认不使用use_frameworks!,Swift只能使用use_frameworks!。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-17 12:06:28  更:2021-10-17 12:08:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:40:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码