资讯专栏INFORMATION COLUMN

Swift 2.3 / 3.0如何添加第三方库

104828720 / 927人阅读

摘要:原文地址的版现在已经出来了之前在邮件里也大概提到说在八月就基本上全面完工大家在写小或者是项目迁移到的时候遇到最大的一个问题应该是第三方库的添加社区一直都是热情爆满诸如等第三方库都有的分支但如果在导入的时没有处理一下就总是会出各种奇奇怪怪的问

原文地址: https://kemchenj.github.io/20...

Swift 3的 beta 版现在已经出来了, Chris Lattner 之前在邮件里也大概提到说 Swift 3在八月就基本上全面完工

大家在写小 demo 或者是项目迁移到 Swift 3.0 的时候遇到最大的一个问题应该是第三方库的添加

Swift 社区一直都是热情爆满, 诸如 Alamofire, Decodable等第三方库都有 Swift 3.0 的分支, 但如果在导入的时没有处理一下, 就总是会出各种奇奇怪怪的问题, 我在这里分享一下我自己的解决方案

其实主要要处理的问题就只有两个

指定第三方库的某个特定分支

指定工程文件内 Swift 编译的版本

Cocoapods

这里以 Alamofire 为例, 主要是需要在 podfile 里面多加点东西

指定分支

首先是指定分支, cocoapods本身只支持 name 跟 version 两个参数, 但我们可以通过指定 git 仓库, 然后再指定 branch, 具体格式如下:

  pod "Alamofire", :git => "https://github.com/Alamofire/Alamofire.git", :branch => "swift3"
指定编译版本

还有就是指定 Swift 的版本, 只要在项目的最后加上下面这几句就可以了, 这里的几句话对项目里的 target 做了个遍历, 修改了全部 target 的 Swift 编译版本

post_install do |installer| 
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings["SWIFT_VERSION"] = "3.0"
        end
    end
end

但是这么写有一个缺点, Objective-C 跟 Swift 的混编项目, 如果想要引入 OC 的库的话, 就不能这么做了, 但是一个一个去设置编译版本又太麻烦, 我觉得最简单的还是直接进去项目里, 把SWIFT_VERSION这一项删掉就可以了

完整 podfile 如下:

project "sample.xcodeproj"

platform :ios, "9.0"

target "sample" do
    use_frameworks!

    pod "Alamofire", :git => "https://github.com/Alamofire/Alamofire.git", :branch => "swift3"
end

post_install do |installer| 
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings["SWIFT_VERSION"] = "3.0"
        end
    end
end
Carthage

Carthage 的具体用法我就不解释了, 其实我个人而言还是更喜欢 Carthage, 自己操作过一遍基本上都能理解第三方库导入的过程了

指定分支

Carthage由于本身就是一个去中心化的包管理器, 所以在 cartfile 里面选择分支就可以了

github "Alamofire/Alamofire" "swift3"
指定编译版本

Carthage编译就很简单了, Swift 3的话直接 carthage update 就行了, xcodebuild 指向了Xcode 8的前提下, 默认 Swift 3, 但是 Swift 2.3的话就需要指定一下版本, 如下:

TOOLCHAINS=com.apple.dt.toolchain.Swift_2_3 carthage update --platform ios

然后编译的时候有一点需要注意的是, Carthage 默认会调用 xcode build 去变异, 如果我们电脑同时有两个版本的 Xcode 的时候, 需要确认一下 Xcode build 的版本

如果不是 Xcode 8的话, 就运行一下这条命令去修改就可以了

sudo ./xcode-select -switch /Applications/Xcode-beta.app/
最后

Swift 的各方各面都让人觉得欲罢不能, 比起有点年纪的 Objective-C, 每天的接触都能感受到 Swift 各种神奇的写法

Swift 像是个什么都想要的任性的女朋友, 跟她一起会很累, 累的是你必须为了她的进步而更加努力去学习更多东西, 接触更多新的东西

"Swift 从入门到重新入门"看起来好像很悲催, 但如果改成"女朋友从认识到重新认识", 其实也挺带感的...

初级 iOS 开发, 广州地区求职 ing
简历: https://kemchenj.github.io/re...
联系方式: chenkem95@outlook.com

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16405.html

相关文章

  • 一个才适应Swift2.2的开发者眼中的Swift 3.0和iOS 10

    摘要:食用指南带着风风火火的到来了,作为一个平时使用为主的开发来说,正式和语法划定了界限。大部分时候只需要给一个就够了,文字的大小实际上不需要写死的。目前的解决办法是对进行重签名,然后生成一个越狱版的放在应用程序目录,教程链接地址在此。 食用指南 Xcode 8带着Swift 3风风火火的到来了,作为一个平时使用OC为主的iOS开发来说,Swift 3正式和OC-like语法划定了界限。您可...

    fasss 评论0 收藏0
  • Objective-C 和 Swift 三方使用

    摘要:注个人总结出的最好方式是使用,没有用过的请参看之前的文章。第三方框架为例。用到的文件中需要第三方库是库,导入到项目。如果第三方库是,不需要直接可用如果第三方库是,在头文件中添加。第三方库是库,粘贴到项目。 注1:文章写于2016年9月,(swift 3.0、Xcode 8)不同版本可能不同,仅作参考。注2:个人总结出的最好方式是使用cocoapods,没有用过的请参看之前的文章。 OC...

    fox_soyoung 评论0 收藏0
  • SegmentFault 技术周刊 Vol.25 - Swift 开发:从入门到重新入门

    摘要:开源万岁在的大会上,苹果宣布将开源。此外苹果还将公开发布在标准许可下的的源代码,包括编译器和标准库,开放的源代码端口,开发者可以在上编写程序。不难看出,苹果这些举动意在鼓励开发者从而进一步推动的发展。 showImg(https://segmentfault.com/img/bVOTJe?w=900&h=385); 万众瞩目的 WWDC 2017 已经落下帷幕,对于 Swift 开发者...

    ytwman 评论0 收藏0
  • Swift 特性 - 收藏集 - 掘金

    摘要:介绍掘金什么是是基于思想实现的类库。此次邀请的嘉宾在方面有所实践探索,分别来自腾讯淘宝公司。超强大的服务器端掘金摘要如今已经开源,而且支持多平台,一些团队正在试图让成为开发的有效语言。 ReSwift 介绍 - iOS - 掘金 什么是 ReSwift ReSwift 是基于 Redux 思想实现的 Swift 类库。基本的流程如下 当用户点击了视图上的某个元素时,会发出一个 Acti...

    MingjunYang 评论0 收藏0
  • fir.im Weekly - Swift 3.0 的迁移适配指南

    摘要:迁移工作总结正式版发布了差不多快一个月了,王浙剑把手上的项目都迁移到了,并写出了些总结,详情见链接。适配的一点小经验和坑图拉鼎前段时间发布了基于的奇点版本,主要是适配了一些修复。 无论你是移动开发者,还是桌面端开发者,或者正在IoT领域探索的技术人员,那么应该更加关注 iDev 全平台开发者大会,也许是后半年 iOS 开发者最盛大的技术盛宴。既有知名公司带来专业视野,又有从 Swift...

    Vultr 评论0 收藏0

发表评论

0条评论

104828720

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<