Swift3.0 与 Alamofire 编译

本文主要讲述,如何使用Xcode-beta 3编译Swift 3.0工程,并通过Cocoapods引入Alamofire

环境

  • OS X EI 10.11.6
  • Xcode-beta 3

准备工作

  1. 首先更新cocoapodspre版本:
sudo gem install -n /usr/local/bin cocoapods --pre

这里因为系统权限保护,所以需要指定安装位置为/usr/local/bin
成功后检查版本

pod --version

应该是

1.1.0.beta.1
  1. 创建xcoodeproj,打开Xcode-beta 3,选择File-new-project,找到iOS-Single View Application,命名,这里叫做SwiftAlamofireDemo,下面语言选择swift,其他随意。
  2. 编译新建的SwiftAlamofireDemo,可以正常运行。
  3. 终端,进入到工程对应目录:
➜  SwiftAlamofireDemo git:(master) ✗ ls
SwiftAlamofireDemo           SwiftAlamofireDemo.xcodeproj
  1. 创建Podfile
➜  SwiftAlamofireDemo git:(master) ✗ pod init
➜  SwiftAlamofireDemo git:(master) ✗ ls
Podfile                      SwiftAlamofireDemo           SwiftAlamofireDemo.xcodeproj
  1. Xcode-beta 3编辑Podfile,内容为:
platform :ios, '9.0'
use_frameworks!
target 'SwiftAlamofireDemo' do
pod 'Alamofire',
:git => 'https://github.com/Alamofire/Alamofire.git',
:branch => 'swift3'
end
//末尾需要有一个空行,这里 markdown 原因不显示

这里的意思是,使用swift3分支,因为master分支并不支持最新的swift 3.0语法,需要进行convert,会出一堆问题,很麻烦而且不能解决的很漂亮,所以直接使用指定分支。

  1. 安装Pods,这里注意跳过库更新,不然配置不好的话,就得无限卡住了:
➜  SwiftAlamofireDemo git:(master) ✗ pod install --verbose --no-repo-update 
  Preparing

Analyzing dependencies

Inspecting targets to integrate
  Using `ARCHS` setting to build architectures of target `Pods-SwiftAlamofireDemo`: (``)

Fetching external sources
-> Pre-downloading: `Alamofire` from `https://github.com/Alamofire/Alamofire.git`, branch `swift3`
  $ /usr/bin/git ls-remote https://github.com/Alamofire/Alamofire.git swift3
  304cb54998ab56765b8bd638c6c8bfc9a0bf6756  refs/heads/swift3
  > Copying Alamofire from
  `/Users/Dev/Library/Caches/CocoaPods/Pods/External/Alamofire/9da42fbc76763f2067b3b8cc71c2e406` to
  `Pods/Alamofire`

Resolving dependencies of `Podfile`

Comparing resolved specification to the sandbox manifest
  A Alamofire

Downloading dependencies

-> Installing Alamofire (3.4.1)
  - Running pre install hooks

Generating Pods project
  - Creating Pods project
  - Adding source files to Pods project
  - Adding frameworks to Pods project
  - Adding libraries to Pods project
  - Adding resources to Pods project
  - Linking headers
  - Installing targets
    - Installing target `Alamofire` iOS 8.0
      - Generating Info.plist file at `Pods/Target Support Files/Alamofire/Info.plist`
      - Generating module map file at `Pods/Target Support Files/Alamofire/Alamofire.modulemap`
      - Generating umbrella header at `Pods/Target Support Files/Alamofire/Alamofire-umbrella.h`
    - Installing target `Pods-SwiftAlamofireDemo` iOS 9.0
      - Generating Info.plist file at `Pods/Target Support
      Files/Pods-SwiftAlamofireDemo/Info.plist`
      - Generating module map file at `Pods/Target Support
      Files/Pods-SwiftAlamofireDemo/Pods-SwiftAlamofireDemo.modulemap`
      - Generating umbrella header at `Pods/Target Support
      Files/Pods-SwiftAlamofireDemo/Pods-SwiftAlamofireDemo-umbrella.h`
  - Running post install hooks
  - Writing Xcode project file to `Pods/Pods.xcodeproj`
    - Generating deterministic UUIDs
  - Writing Lockfile in `Podfile.lock`
  - Writing Manifest in `Pods/Manifest.lock`

Integrating client project

[!] Please close any current Xcode sessions and use `SwiftAlamofireDemo.xcworkspace` for this project from now on.

Integrating target `Pods-SwiftAlamofireDemo` (`SwiftAlamofireDemo.xcodeproj` project)
  Adding Build Phase '[CP] Embed Pods Frameworks' to project.
  Adding Build Phase '[CP] Copy Pods Resources' to project.
  Adding Build Phase '[CP] Check Pods Manifest.lock' to project.
  - Running post install hooks
    - cocoapods-stats from
    `/Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-1.0.0/lib/cocoapods_plugin.rb`
  Pod installation complete! There is 1 dependency from the Podfile and 1 total pod installed.

这时候我们发现:

➜  SwiftAlamofireDemo git:(master) ✗ ls
Podfile                        Pods                           SwiftAlamofireDemo.xcodeproj
Podfile.lock                   SwiftAlamofireDemo             SwiftAlamofireDemo.xcworkspace

到这里,部署就完成了。

调试

关闭xcodeproj,然后用Xcode-beta 3打开xcworkspace

这时候编译运行,有的可以成功,有的会报错:

dyld: Library not loaded: @rpath/Alamofire.framework/Alamofire
  Referenced from: /Users/Dev/Library/Developer/CoreSimulator/Devices/xx/data/Containers/Bundle/Application/xx/SwiftAlamofireDemo.app/SwiftAlamofireDemo
  Reason: image not found

解决方案:

SwiftAlamofireDemo Target - General - Embedded Binaries 增加 Alamofire.framework
SwiftAlamofireDemo Target - General - Linked Frameworks and Libraries 增加 Alamofire.framework
SwiftAlamofireDemo Target - Build Phrase 中 Linked Frameworks and Libraries 增加 Alamofire.framework

之后就可以成功编译。至于库的使用,参见Github

资料

image not found解决方案:[https://github.com/Alamofire/Alamofire/issues/101]
Cocoapods 更新 pre资料:[https://github.com/Alamofire/Alamofire/issues/1316]
Swift3源码:[https://github.com/Alamofire/Alamofire/tree/swift3]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容