用 Xcode 8 建立 Swift 版本的 Framework

本文使用 Xcode 8.0 (8A218a) 來建立 Swift 版本的 Framework,並用 Swift 3 建立的 iOS App 來測試使用。

Part 1 — 建立 Framework

Step 1

點選 File → New → Project ,在畫面上方點選 iOS,下方點選在 Framework & Library 內的 Cocoa Touch Framework。

點選在 Framework & Library 內的 Cocoa Touch Framework

接下來我們這裡將 Product Name 命名為 SwiftFramework:

命名為 SwiftFramework

Step 2

進到 Xcode 專案畫面後,在專案設定主頁內將 Deployment Target 設定為 10.0,Devices 設定為 iPhone:

專案設定主頁內將 Deployment Target 設定為 10.0,Devices 設定為 iPhone

Step 3

建立一個 Class 名為 TestClass
點選 File → New → File ,在畫面上方點選 iOS,下方點選 Swift File:

將此 Swift 檔案取名為 TestClass:

此時的專案畫面如下:

Step 4

TestClass.swift 檔案內容如下,裡面建立了一個屬性名為 message,並在建構式 init 內將傳來的字串指定給他,最後建立了一個 method 名為 printMessage。在建構 Swift Framework 的過程中,這邊要特別注意 TestClass 及 printMessage 的存取權限都要設定為 public。

Step 5

因為這個 Framework 要執行在 iOS 實體機器上,所以我們要將建置目標設定為 Generic iOS Device,最後點選 Project → Build 進行建置:

Step 6

建置完成後,回到專案主畫面,可以看到在 Products 資料夾內出現了 SwiftFramework.framework,此時按右鍵點選 Show in Finder 後可以看到實體檔案:

到此 framework 就建立完成了(此 framework 為 Debug 版本)。

Part 2 — 建立 iOS App

Step 1

首先,點選 File → New → Project 建立一個 Single View Application 型的 Xcode 專案:

專案名稱設定為 TestClient,Devices 設定為 iPhone

Step 2

進入 Xcode 專案主畫面後,在設定畫面中找到 Embedded Binaries 區段:

此時將剛剛建置好的 Framework 拖曳進 Embedded Binaries 內:

拖曳進來之後會出現另外一個對話匡(要點選 Copy items if needed)

目前 Embedded Binaries 和 Linked Frameworks and Libraries 都會出現 SwiftFramework.framework 了。

Step 3

最後我們在 ViewController.swift 檔案內寫入以下的程式碼。我們在第 10 行引入了剛剛建置的 SwiftFramework,在 18 至 19 行建立一個物件 client,並且執行 printMessage method。

Step 4

最後請將一個 iOS 實機準備好,連接上 Mac 電腦後執行 Product → Run,你會看到在 Xcode 內的輸出畫面會依序顯示 Hello from Framework 以及 Hello from Client App,到此就全部完成了。

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.