1、打开终端 cd 到项目的, 然后在终端执行: pod init ,项目文件夹中多处一个Podfile文件
2、在终端使用vim打开, 执行: vim Podfile ,编辑内容如下:
3、然后直接执行: pod install 安装pod。安装成功之后是这样的:
项目是这样的:
4、打开项目
使用pod管理的项目, 只能通过后缀为 xcworkspace 的文件打开,就是上图红框框的那个文件。打开之后,项目就是这样子的:
完成上面步骤,即可添加cocoapods项目管理。
第一种方式:手动修改podspec文件完成创建
1、创建项目(项目名称:MobileFrame)
2、 创建私有库文件夹
3、 创建Classes文件夹(默认指定文件夹 spec文件默认)
4、 在Classes文件夹下创建Person.h Person.m 文件
5、在Private目录下进行 git 初始化
1、git init
2、git add .
3、git commit-m"创建Person.h Person.m文件"
6、在Private目录下查看
7、在Private目录下 创建spec配置文件
//1.创建spec文件 (PrivateLib 私有库指定的文件)
pod spec create PrivateLib
//2.创建完私有库后编辑spec文件 以下几个地方修改
s.summary = "PrivateLib." //简短的描述
s.description = "PrivateLib本地私有库测试" //长描述长度大于s.summary(规范以避免不必要的问题出现)
//许可证改成MIT
s.license = "MIT"
//Git后面的URL去掉因为是本地私有库并没有在远程地址上
s.source = { :git =>"", :tag =>"#{s.version}" }
//之前创建的Classes文件夹与Spec文件中的对应 会匹配Classes下所有目录文件的.h .m 文件
s.source_files = "Classes", "Classes/**/*.{h,m}"
如下图:
8、在MobileFrame目录下 pod 初始化
pod init //创建podFile 初始化pod
9、 编辑podFile文件
因为是本地私有库 要指定地址(地址是在当前xxx.codeproj相对的路径如下图)
10、在MobileFrame目录下 pod install安装本地私有库
pod install
如果以上 *** 作都正确 pod install 后项目中没有出现Person.h Person.m 那么请重启Xcode
第一种方式:自动完成对podspec文件的创建
1、使用命令创建私有库,并且按照提示回答几个问题:
pod lib createLTFramework
私有库使用什么语言?
私有库中是否需要包含一个demo工程?
私有库是否需要包含一个测试框架?
私有库的类前缀是什么?
2、私有库工程已经创建好了,并且会自动打开
3、在私有库中加入一个分类文件,重新执行命令
pod install
4、在MobileFrame的podfile文件中添加”LTFramework”私有库路径,再重新执行命令安装私有库:
pod install
5、在MobileFrame中成功依赖私有库
6、使用私有库中的方法
7、在pod lib create时可能会出现如下的错误:
JerryMBP:~ Jerry.Yao$ pod lib create LTFramework
Cloning `https://github.com/CocoaPods/pod-template.git` into `LTFramework`.
Configuring LTFramework template.
/Users/Jerry.Yao/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require': cannot load such file -- colored2 (LoadError)
from /Users/Jerry.Yao/.rvm/rubies/ruby-2.3.0/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
from /Users/Jerry.Yao/Desktop/Test/LTFramework/setup/TemplateConfigurator.rb:2:in `<top (required)>'
from ./configure:5:in `require_relative'
from ./configure:5:in `block in <main>'
from ./configure:4:in `each'
from ./configure:4:in `<main>'
To learn more about the template see `https://github.com/CocoaPods/pod-template.git`.
To learn more about creating a new pod, see `http://guides.cocoapods.org/making/making-a-cocoapod`.
解决办法是输入如下两条命令行:
1> sudo gem install colored2
2> sudo gem update --system
IOS 逆向开发(四)App重签名XCFramework制作
如何辨别.framework是动态库还是静态库
lipo 命令的基本用法
一个工程多个target引入CocoaPods的方式
美团 iOS 工程 zsource 命令背后的那些事儿
iOS美团同款"ZSource"二进制调试实现
https://github.com/MeetYouDevs/cocoapods-imy-bin
cocoapods-binary工作原理及改进
Ruby和Cocoapods文章合集
iOS Pod 'xxx.h' file not found with <angled>includeuse "quotes" instead
由 Pod 导致的 File not found
Cocoapods整理(三)——编写podspec文件
查看app的签名:
codesign -vv -d xxx.app
查看 某个库的签名(同时可以查看某个库支持的架构):
codesign -vv -d xxx.framework
查看电脑安装好的所有证书:
security find-identity -v -p codesigning
对某个库进行重签名:
codesign -fs "Apple Development: xxx (xxx)" xxx.framework
file xxx.framework/xxx
查看支持的架构:
lipo -info xxx.framework/xxx
删除指定的架构(如x86_64,导出后的库会自动删除签名信息):
合并几个架构(比如把模拟器的x86_64与真机的arm64合并成一个,可以一个framework同时支持真机和模拟器,导出后的库会自动删除签名信息,但是会增加包的体积)
xcode可以会在编译时选择xcframework中实际需要的架构编译进包中,这种方式可以减少包的体积还能一个xcframework同时支持真机与模拟器运行
1、在xcode创建framwork的工程
2、然后再创建 Podfile 将framwork的源码使用pod的方式依赖三方库
2.1 如果podfile里 use_frameworks! 是打开的,
2.2 如果podfile里 use_frameworks! 是注释掉的或者没有这一句,
3、创建 xxx.podspec 注意事项
1、这个文件必须在git仓库下的第一级目录
2、 xxx.podspec 的名字需要跟文件里的 s.name = 'xxx' 一致,这个名字也是在主app里 pod 'xxx‘ 的名字
3、指定的framwork的方式
4、指定依赖的三方库:
方式一:通过 abstract 方式引入
方式二:循环 target 添加 pod
方式三:提取公共 pods 各个 target 引入
iOS Pod 'xxx.h' file not found with includeuse "quotes" instead
好好的<>非要让你改成"",不然就报错给你看 T T
分析:
Header Search Paths中未配置对应路径。可能是.podspec文件中的“dependencies”未配置对应的依赖,导致对应依赖库的路径没有写入编译项目的“Header Search Paths”内
解决方法:
方法一:
项目->PROJECT->项目xxx->Info->Configurations->Debug->项目xxx->targetXXX->Pods-xxx.debug
能改成这个最好,如果有自定义的config,在定义的config里引入Pods-xxx.debug
方法二:
修改 Header Search Path
添加 $(PODS_ROOT) 选择 recursive
添加 $(SRCROOT) 选择 recursive
Build
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)