5、工程中引用 Static Library库
在 TestLib.h 文件中写一个类方法:
在 TestApp_1 工程中引用 TestLib.h 中的方法:
我们会发现找不到TestLib静态库中的头文件,其实也可以想到,因为我们并未将其进行关联。
所以在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:
ps: xcode11中,在General下,已经没有“Embedded Binaries",这个选项,多出了如下的界面,要想实现和Embedded Binaries一样的添加库,需要点击+号添加framework,然后选择embed&sign.
(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 文件。测试结果: