项目添加pod管理以及创建本地私有库

项目添加pod管理以及创建本地私有库,第1张

一、项目添加pod管理->步骤如下:

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11201655.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存