名为“ Objective-C和带有CocoaPods的Swift”的沼泽

名为“ Objective-C和带有CocoaPods的Swift”的沼泽

我最近得到一份合同,内容是客户的应用程序完全由Objective-C编写。 好吧……您知道这个故事……许多应用程序由于缺少Swift的游戏规则改变程序“ Optional ”而崩溃,而且我个人喜欢Swift中的故事板交互

我决定将这场噩梦变成一个仙境:)…。

不幸的是,该项目已经基于CocoaPods了。首先,由于项目的独立性,我试图将其更改为“ Carthage”,它比Cocoa Pod更好。

我通过“ cocoapods-deintegrate”摆脱了CocoaPods的困扰,它是救生员插件(那里的工作很好的人)……它确实需要简单的步骤……

然后我在项目上遍历了podfile来找出那里的依赖关系,结果如下:

好吧……大多数真正古老的库都不知道为什么它们仍在呼吸……还有故事的来龙去脉,您可以自己开发该功能,而无需在那里使用任何库……

有趣的生活开始了,其中一些库没有迦太基版本,我不得不自己将其转换为“迦太基”以及以下剧集..:

“迦太基将只构建从您的.xcodeproj共享的Xcode方案。 您可以通过运行carthage build --no-skip-current ,然后检查Carthage / Build文件夹,查看是否所有预期的方案都能成功构建。”

我已经将ACSPinKit和iOS-Slide-Menu更新为“迦太基”,但是紧迫的时间来了,你知道这意味着什么,当你是承包商时…你应该比他们的专职开发人员快得多:)

我决定回到可可豆荚,然后添加我的快速库,没有它们我无法呼吸

然后安装pod …这些术语遇到了“动态框架”,看起来像CocoaPods从“ CocoaPods 0.36 ”中得到支持,这看起来像是个好消息……。我将其添加到podFile的顶部

它开始安装Pod,但是依赖项(FMDB)之一困扰了我的构建。 FMDB是一个有用的库,可以处理应用程序上的SqlLite db,它是用Objective-C编写的,我已经在我的桥接文件“ *****-Bridging-Header.h”中添加了我需要调用的其他文件他们从敏捷的一面:

在这一点上,我真的放弃了,不知道为什么在我的xcode构建阶段中不加入FMDB库。

然后开始运行带有构建设置文件和无步搜索的游戏…。它把我拖到一边说好,我将在Objective C中完成其余的应用程序,但是Swift和RxSwift的悲伤表情促使我继续工作这个问题…。

猜猜是什么……光亮了……我对自己说,为什么不遵循迦太基遵循的概念……手动复制文件……但是我没有完全从FMDB复制所有文件,但是文件并不多……。

我已经从FMDB中跟踪了所有需要的文件,并将其复制到了我的Swift文件夹中

然后运行构建以及交叉手指…..

你知道然后休息,像传奇一样去散步:)

无论如何,希望这对那些必须走同样的路并且拥有一个与Objective C和Swift结合使用的应用程序的人有所帮助。