開源專案: Mac端12306購票神器 - 12306ForMac:專案執行填坑紀實(mac系統升級後執行brew link carthage命令出錯)...

weixin_34402408發表於2018-01-01

元旦快樂~~ 今天是2018的第一天,約會的約會,曬恩愛的曬恩愛,不光如此,又到了為搶火車票高鐵票犯愁的時間了哈哈。但是傳統的360和獵豹的搶票神器都只沒有Mac端,惆悵。

但是不用灰心,最大同性交友網站--GitHub上面一個開源了Mac端的專案12306ForMac。如果你對它的安全性不放心,那麼我們可以下載下來看看,自己執行看看效果,自己看看程式碼有沒後門之類的哈哈。

1283539-edff02f7981ddb1c.png
12306ForMac

開啟Github,搜尋“12306 mac”關鍵字,搜到如下,第一個就是。然後,下載該專案到本地,但到成功執行的之前需要一些填坑,這篇文章記錄這些坑。

1283539-5ec72a21d8d63224.png
image.png

當然沒時間和興趣的研究該搶票神器原始碼的童鞋,可以直接從Mac App Store上面下載安裝該應用即可,不用往下看了。Mac App Store 傳送門

1. 安裝Homebrew

  • 開啟終端,輸入以下命令
$ /usr/bin/ruby -e "$(curl -fsSL [https://raw.githubusercontent.com/Homebrew/install/master/install)"​](https://raw.githubusercontent.com/Homebrew/install/master/install)"​)
  • 檢測安裝成功與否,檢視版本
$ brew -v​
  • 如果沒有安裝成功,更新brew
$ brew update​

安裝Homebrew的細節可以檢視筆者的另一篇https://www.jianshu.com/p/1de99aeedbf6

2. 安裝Carthage

筆者以前安裝過Carthage,但更新一次macOS系統之後Carthage找不到了,但Homebrew還在。於是只能重新裝一次Carthage了。

  • 安裝carthage
brew install carthage
  • 有警告: 已安裝過,請重新連線
1283539-4108b24a2f9de54a.png
image.png
  • 連線carthage
brew link carthage
  • 有報錯:找不到目錄(Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks)
1283539-9e870f0e8de91b03.png
image.png
  • 命令建立目錄(當然你也可以手動到/usr/local目錄下建立Frameworks)
mkdir /usr/local/Frameworks
  • 再次連線成功
brew link carthage
1283539-343baeee3a611afc.png
image.png
  • 連線成功,檢視carthage版本
carthage version
1283539-4539a7bbdd3a6fbc.png
image.png

3. 利用carthage為12306ForMac專案安裝第三方庫

  • cd到專案目錄下
$ cd /Users/ChenMan/iOSTest/005MacApp/12306ForMac-master
  • 安裝第三方庫
$ carthage update --platform macOS

上面這個命令:carthage會為你下載和編譯所需要的第三方庫,當命令執行完畢,在你的專案資料夾中會建立一個名為Carthage的資料夾。在 ~/Carthage/Build/iOS裡會出現xxx.framework檔案已經為你建立好了。

  • 安裝成功
1283539-5aaed52e24e67ea3.png
image.png
  • 開啟工作空間,即字尾名為.xcworkspace的檔案
1283539-4655b31f6e2ec8ab.png
image.png
  • 4. 編譯及執行

  • 編譯報錯

1283539-68e60b8b67c7fdb3.png
image.png
  • 修復報錯:新增異常處理邏輯
do {
    
    let json = try JSON(data: dataFromString)
    if json.array == nil {
        return
    }
    for item in json.array! {
        let ticketTask = TicketTask(json:item)
        ticketTasks.append(ticketTask)
    }
    
} catch  {
    
}
  • 執行成功
1283539-c77e85e1dc40144a.png
image.png

5. 後面的話

  • 誤區演示: 該專案是mac應用,所以安裝第三方的命令是 $ carthage update --platform macOS,而不是$ carthage update --platform iOS。不信你看:
1283539-e3d3785a65f066b5.png
image.png

MASPreference框架無法成功構建。

相關文章