iOS Workspace 项目管理

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 
版权声明:本文为博主原创文章,转载请附上博文链接!

你可能感兴趣的:(ios开发)