設定專案
建立Firebase專案
小提醒:目前Firebase(Google)只能免費建立3個專案,且刪除專案需要等30天才會釋出數量喔
前往Firebase Console,如果尚未登入會先跳轉到登入頁
小提醒:如果有跟默司一樣同時管理多個Google帳號的人,建議先登出再重新登入要用的帳號,避免使用切換帳號的方式使用喔,因為Firebase操作過程中帳號可能會跳掉
登入後就可以建立專案了,國家/地區只和顯示幣值有關
專案Overview
加入iOS應用程式
於上列的Overview中,選擇
填寫下列表單
其中iOS繫結ID即為Xcode中Bundle Identifier,建議格式為[反寫Domain].[App名稱]
反寫Domain:默司個人註冊的網域是ccmos.tw,所以反寫Domain就是tw.ccmos,這麼做是為了避免與別的開發者使用相同的Bundle Identifier,造成App無法上架等問題
App Store ID,這會在日後內測或上架階段在iTunesConnect建立資料時才會產生,此處可以先空白
按下註冊應用程式,並且下載GoogleService-Info.plist
GoogleService-Info.plist使用的時候一定要命名為GoogleService-Info.plist,如果多次下載這個檔案名稱會變成類似GoogleService-Info(1).plist,之後匯入時記得更改檔名喔
步驟3、步驟4後續將一起說明
在Xcode建立iOS專案
Create a new Xcode project
Single View Application
填寫專案資訊,欄位說明於圖片下方
Product Name
顯示在AppStore的名稱 (可多國語系)
Team
如果顯示Add account...,就需要先點按並登入自己的Apple ID
登入後下拉選擇
Organization
組織名稱
Organization Identifier
此處使用反寫Domain
Bundle Identifier
自動產生
Language
開發APP語言 => Swift
Device
支援的裝置種類 => iPhone專案存放位置
小提醒
a. Xcode會自動用上面的Product Name建立新資料夾,所以這個部分只要決定專案要放在哪邊就可以囉!
b. 如果需要版本管理可以勾選Source Control,詳細的版本管理方式可以參考 [線上讀書會] Mouson 主講 git 入門 與應用實務調整設定
Bundle Identifier
更新至和Firebase應用程式相同
Main Interface
移除原來的Main,即不使用storyboard,本文將全部使用程式碼編寫UI及Layout
Device Orientation
使APP只支援直立方向複製專案路徑
關閉Xcode視窗
安裝Cocoapods套件到iOS專案
在Terminal中執行
cd [貼上剛剛複製的路徑]
pod init
open Podfile
開啟的Podfile
加入下列內容到# Pods for LetsChat下方
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'SVProgressHUD'
pod 'IQKeyboardManagerSwift'
完整Podfile
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'LetsChat' do
# Comment the next line if you're not using Swift and don't want to use dynamic frameworks
use_frameworks!
# Pods for LetsChat
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Database'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'SVProgressHUD'
pod 'IQKeyboardManagerSwift'
end
小提醒
上列所有縮排都是空白不是Tab,這點需要特別注意
引號為 ' 不是 `
儲存並關閉檔案,接著在Terminal執行
pod install
結果畫面
接著執行
open .
雙擊[Product Name].xcworkspace打開專案
在第一個資料夾(和專案名稱相同)點右鍵,選擇Add Files to "[專案名稱]"
Xcode中黃色資料夾稱為Group,之後文中提到新增檔案就是指這邊的New File..項目,也請各位注意新增的檔案是否正確包含在Group中
選擇先前下載的GoogleService-Info.plist
加入完成
選擇AppDelegate.swift
加入下列程式碼到import UIKit之後
import Firebase
import IQKeyboardManagerSwift
import SVProgressHUD
將
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
修改成
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
// 取消預設使用 storyboard 的方式,改用程式碼編寫介面
window = UIWindow(frame: UIScreen.main.bounds)
window?.rootViewController = UINavigationController(rootViewController: ViewController())
window?.backgroundColor = UIColor.white
window?.makeKeyAndVisible()
// 讓Firebase進行設定
// 注意:新版Firebase已改用FirebaseApp.configure()
FIRApp.configure()
// 啟動IQKeyboardManager (輔助輸入體驗)
IQKeyboardManager.sharedManager().enable = true
IQKeyboardManager.sharedManager().shouldResignOnTouchOutside = true
// 設定顯示讀取狀態時的ProgressView樣式
SVProgressHUD.setDefaultStyle(.dark)
SVProgressHUD.setDefaultMaskType(.clear)
return true
}
選個模擬器,試跑一下,目前仍然是一個白色的畫面,但也不會發生錯誤