https://blog.csdn.net/kangpengpeng1/article/details/79311156
图片步骤较多
1、创建Workspace工作空间
将创建的工作空间命名为“xxxx”, 然后将xxxx.xcworkspace保存到项目根目录文件夹(此处新建项目更目录为WorkspaceDemo)
2、创建多个工程project
(1)创建一个工程项目 TestApp_1
将工程TestApp_1 添加到上一步创建的workspace中:
同上再创建一个新工程 TestApp_2,完成后如下:
提示:创建的多个工程最好和 Workspace 在同一目录下,方便配置路径。
3、创建 Static Library
注:该静态库与workspace放在同一目录下
4、创建 Framework静态库
注:与workspace放在同一目录下。
至此我们已经创建了两个工程和两个静态库:
5、工程中引用 Static Library库
在 TestLib.h 文件中写一个类方法:
在 TestApp_1 工程中引用 TestLib.h 中的方法:
我们会发现找不到静态库中的头文件,其实也可以想到,因为我们并未将其进行关联。
所以在TestApp_1工程中引入TestLib静态库:
引入静态库后编译依然会报错,下一步我们还需要将静态库的目录引用进来,在TestApp_1工程的 Target/Build Settings /User Header SearchPaths 中添加 $(BUILT_PRODUCTS_DIR),并选择递归引用 recursive:
重新编译后,调用TestLib中的方法:
到这已经完成了workspace静态库的管理。
6、工程中引用 Framework 库
(1)在 TestFramework中新建测试类 TestClass,并公开一个测试方法:
并在TestFramework.h 文件中公开测试类的 .h 文件:
(2)现在我们在 TestApp_1 中引用该库会报错找不到该framework文件:
(3)在 TestFramework-Targets-Build Phases-Link Binary with Libraries 这里也需要添加自定义的framework:
(4)在 TestFramework-Targets-General-Embedded Binaries 这里添加自定义的framework:
(5)framework里面写的类如果需要在frameworkTest里面可以只引入框架就使用,需要在 framework-Targets-Build Phases-Headers 这里将Project里面的头文件选中,右键-Move To Public Group(就是添加到Public那一个分组里面去),也可以直接选中拖上去:
(6)然后在工程TestApp_1中测试调用framework库中的方法:
以上完成了自定义静态库在workspace中的引用。
7、工程中引入Pod管理
注:创建的主项目,创建的多静态库,必须在同一级目录下:
(1)终端命令: cd + 项目根目录
进入项目目录
(2)终端命令:touch Podfile
创建 Podfile文件
(3)终端命令:vim Podfile
编辑Podfile 文件
(4)输入 “i” 开始编辑,编辑后:
(5)esc 退出编辑,输入 “:” -> “w” -> “q” 保存退出编辑,然后命令行 pod install :
至此,我们已经成功引入了pod文件:
最后贴上Podfile文件中的编辑内容
****************************↓****************************
# 写在最上面,标示公用
platform :ios, '9.0'
# 用cocoapods导入OC框架到swift项目必须写该项
# user_frameworks!
# workspace 文件名
workspace 'WorkspaceDemo.xcworkspace'
#主工程路径
project 'TestApp_1/TestApp_1.xcodeproj'
target 'TestApp_1' do
#工程路径
project 'TestApp_1/TestApp_1.xcodeproj'
pod 'Masonry', '~> 1.0.2'
end
target 'TestApp_2' do
project 'TestApp_2/TestApp_2.xcodeproj'
pod 'AFNetworking', '~> 3.1.0'
end
****************************↓****************************
8、TestApp_1和TestApp_2文件的相互引用
如果要在项目TestApp_1中引用TestApp_2中的文件,则必须要修改路径。在TestApp_1的Build Settings 里找到Header Search Paths,添加一项$(SRCROOT)/../TestApp_2(也可以直接将文件夹TestApp_2拖到里面自动生成路径),并且设置为recursive。$(SRCROOT)是当前的工程路径,.. 是返回上一层,然后到TestApp_2文件夹。使用了相对路径,为了是项目移动不会影响这个配置,只要主工程和其他工程的相对位置不变,这里的相对位置是固定在同一个文件夹。
引入工程中的文件时,必须同时引入 .h 和 .m 文件。测试结果:
9、遇到的报错
在引用framework静态库时,运行崩溃:
原因是缺少配置项 6(3)。
---------------------
作者:kangpp
来源:CSDN
原文:https://blog.csdn.net/kangpengpeng1/article/details/79311156
版权声明:本文为博主原创文章,转载请附上博文链接!