iOS Workspace 项目管理 (二)

本文详细介绍了在iOS工程中如何引用静态库StaticLibrary和Framework,包括添加库、配置搜索路径等步骤,并探讨了通过Pod进行依赖管理的方法,确保不同工程间的文件相互引用。此外,还提到了TestApp_1和TestApp_2之间的文件引用配置。
摘要由CSDN通过智能技术生成

 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 文件。测试结果:    

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值