12/08/2018, 13:26

Hướng dẫn cách tạo một Cocoapod

Các bạn chắc hẳn đã rất quen thuộc với khái niệm opensource cocoapod như Alamofire hay MBProgressHUD. Nhưng đôi khi bạn khó có thể tìm thấy một pod thoả mãn các chức năng mà bạn cần, hoặc bạn có thể muốn chia nhỏ một project thành các module nhỏ hơn và sử dụng lại các module đó ở các project khác. ...

Các bạn chắc hẳn đã rất quen thuộc với khái niệm opensource cocoapod như Alamofire hay MBProgressHUD. Nhưng đôi khi bạn khó có thể tìm thấy một pod thoả mãn các chức năng mà bạn cần, hoặc bạn có thể muốn chia nhỏ một project thành các module nhỏ hơn và sử dụng lại các module đó ở các project khác. Cocoapod giúp bạn quản lý rất tốt các module này. Mình cũng đã có một project muốn đóng gói module kết nối mạng, và cocoapod như một công cụ quản lý nhanh nhất và tiện ích nhất cho mình. Hôm nay mình sẽ hướng dẫn các bạn tạo một Cocoa touch frameworkPods của chính bạn.

Mình sẽ demo luôn một ví dụ đơn giản: Có 1 class là kết nối mạng là FRNetwork, class này lấy thông tin json và xử lý lỗi, maintainance,..., sau đó trả về cho client. Mình sẽ đóng gói class này thành một Cocoapods để dùng cho các project khác nhau.

  1. Đầu tiên nếu bạn chưa bao giờ sử dụng cocoapod thì hay tham khảo tại đây https://guides.cocoapods.org/using/getting-started.html Mình không giới thiệu cách sử dụng cocoapods nữa, chủ yếu nói về cách tạo ra cocoapods của riêng mình.
  2. Tạo cocoa touch framework
  • Khởi tạo project như hình dưới

1.png

2.png

  1. Tạo 1 file swift mới FRNetwork.swift

3.png

  • Class kết nối mạng sẽ cần dùng tới 2 thư viện: Almofire và SwiftJson. Mình sẽ tạo 1 podFile có nội dung như sau:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, "8.0"
inhibit_all_warnings!
use_frameworks!
target 'FRNetwork' do
  pod 'SwiftyJSON', '~> 2.3.2'
  pod 'Alamofire', '~> 3.3'
end
  • Sau đó mở terminal, trỏ đến thư mục chứa PodFile (sử dụng lệnh cd), và chạy cmd: pod install. Bạn sẽ thấy project sẽ download 2 thư viện về.

4.png

Sau đó bạn mở project và build thử, phải chắc chắn rằng không có lỗi gì xảy ra             </div>
            
            <div class=

0