源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

详解swift中xcworkspace多项目管理

  • 时间:2021-02-01 11:03 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:详解swift中xcworkspace多项目管理
给大家详细简介了xcworkspace多项目管理的设置方法,一起来学习下。 技术说明: 今天在这里分享 swift下的 xcworkspace多项目管理(架构思想),能为我们在开发中带来哪些便捷?能为我们对整个工程的维护,整理,模块解偶带来哪些优势?以及在swift与OC下的混编开发中的调用会遇到哪些问题? 带着问题探研: (1).xcworkspace工程怎么创建?工程framework如何创建?主工程项目如何创建? (2).主工程调用子工程framework如果配置? (3).framework与framework之间如何调用? (4).xcworkspace工程Pods的集成,framework的Pods第三的集成? (5).Podfile文件的编辑,以及对应主工程,对应framework的编写方式? --------------历史分析----------------------- 你还在搭建这样的框架吗? [img]http://files.jb51.net/file_images/article/201711/2017112617015399.png[/img] 缺点: 这种方式搭建的项目会随着项目功能不断的强大,从而会使模块文件越来越庞大,也会使项目维护思维近近模糊, 业务层代码与数据层代码和项目核心层代码相互交织,无法拆分,不符合一个中上等级以及长远发展公司型的构架思想! 来看下大公司项目的搭建吧: [img]http://files.jb51.net/file_images/article/201711/20171126170153100.png[/img] 优点很明确,个个模块可以拆分,架构思想清晰明朗,业务层独立清晰没有耦合 --------------xcworkspace项目创建-------------- File -> New -> Workspace --------------子工程framework创建 (注意:新建主工程,不要创建成framework) 1 :File -> New -> Project -> framework (创建的是静态库) [img]http://files.jb51.net/file_images/article/201711/20171126170153101.png[/img]   2 :修改添加目标到workspace:(就是上一步创建的Workspace工程)  [img]http://files.jb51.net/file_images/article/201711/20171126170153102.png[/img]   --------------主工程调用子工程framework相关配置-------------- 第一:子工程暴露文件出来:必须顺序执行 BuildPhases -> Headers -> Public(只有放入共有栏,才能调用)->  导入项目代码文件(一般默认放在Project中) BuildPhases -> Headers -> Public ->  中导入需要暴露给的OC 的头文件 (一般默认实现) (注意:只有混编的时候才需要导入,也就是没有混编,framework中的.h文件可以删除) BuildPhases -> Compile Sources ->  中导入项目代码文件 第二:把需要提供外部调用的类,属性和方法,加public修饰(swift)  第三:  编译(⌘+B)一下工程,生成framework(重要,配置如果改动,删除对应生成的framework,重新编译生成) ——————分别—真机编译: [img]http://files.jb51.net/file_images/article/201711/20171126170153103.tif[/img] ——————分别—模拟器编译: [img]http://files.jb51.net/file_images/article/201711/20171126170153104.png[/img] Show  In  Finder ,确认生成framework [img]http://files.jb51.net/file_images/article/201711/20171126170153105.png[/img]   第四:主项目导入framework 把生成的framework拖入主项目中(这样做比较好), ———————不建议以下做法———————— //选择主项目 ->  General ->  Embedded Binaries -> 选择framework导入 (Embedded Binaries导入,会同步Linked Frameworks and Librares导入)  第五:在需要调用framework   ipa 的文件中  import 相关framework的工程名,即头文件,完成 ------------------- framework之间相互调用 ipa -------------- General —>   Linked Frameworks and Libraries —> 导入指定framework ********到这里framework与主项目之间的调用已经完成,可以实现了! --------------------Pods的集成------------------ 第一:创建的主项目,创建的多静态库(注意必须在同一级目录下) [img]http://files.jb51.net/file_images/article/201711/20171126170154106.png[/img]   第二:终端cd 项目跟目录: [img]http://files.jb51.net/file_images/article/201711/20171126170154107.png[/img]   第三:终端指令:touch Podfile   (此处为空太),创建Podfile文件 第四:Podfile文件的编辑 案列:-------
 platform :ios, ‘8.0' ———可以写在最上面,标示公用

use_frameworks!  ———用cocoapods导入OC框架到swift项目必须写

workspace 'MyWorkspace.xcworkspace' //workspace文件名

project 'MyApp2/MyApp2.xcodeproj' //主工程路径„

  target 'MyApp2' do

  project 'MyApp2/MyApp2.xcodeproj' //工程路径

  pod 'Masonry', '~> 1.0.2'

end

  target 'MyApp1' do  

   project 'MyApp1/MyApp1.xcodeproj' //framework

   pod 'SnapKit', '~> 1.0.2'

   pod 'SDWebImage', '~> 1.0.2'

end

  第五:终端下载指令 pod install 第六:framework调用第三方框架 查看项目:未导入,项目无法调用 [img]http://files.jb51.net/file_images/article/201711/20171126170154108.png[/img] 导入查看项目:项目同步 [img]http://files.jb51.net/file_images/article/201711/20171126170154109.png[/img]    注意:swift 版的framework调用OC写的第3方,必须在.h 里面声明头文件,才能调用 [img]http://files.jb51.net/file_images/article/201711/20171126170154110.png[/img]   ----------------补充 : 静态库与动态库的区别  静态库有 .a 和 .framework 动态库有.dylib 和 .framework 后来.dylib动态库又被苹果替换成.tbd的形式 静态库和动态库是相对编译期和运行期的: 1.静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库 2.动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在 总结: 同一个静态库在不同程序中使用时,每一个程序中都得导入一次,打包时也被打包进去,形成一个程序。 而动态库在不同程序中,打包时并没有被打包进去,只在程序运行使用时,才链接载入(如系统的框架如UIKit、Foundation等),所以程序体积会小很多,但是苹果不让使用自己的动态库,否则审核就无法通过。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部