2015-04-30 12 views
7

Tôi muốn tạo một khung công tác Swift và nhập nó vào các dự án khác của tôi. Rõ ràng, tôi muốn chia sẻ mã của tôi bằng cách sử dụng khuôn khổ được đề cập. Tôi chỉ có thể tìm thấy một câu hỏi có liên quan ở đâyChia sẻ mã nhanh và duy trì mã ở một nơi [framework/library]

Create and import swift framework

và một số hướng dẫn trên internet dường như không tạo ra bất kỳ điều gì hữu ích cho tôi. Vì vậy, đây là những gì tôi có:

  1. Một dự án XCode (với một không gian làm việc .xcworkspace tạo ra bởi CocoaPods) mà là ứng dụng thực tế mà nên sử dụng khuôn khổ .
  2. Dự án XCode "Cocoa Touch Framework" là khuôn khổ .

Các bước để đưa khung (2) vào ứng dụng (1) là gì?

Tôi đã thử sử dụng phương pháp được mô tả trong câu hỏi được liên kết ở trên, nhưng khi xây dựng, nó nói nó không tìm thấy tệp nguồn thực.

< unknown >:0: error: no such file or directory: '/path/to/project/MyFrameWork/SomeClass.swift'

đâu /path/to/project/ rõ ràng chỉ là một giữ chỗ ...

Bounty Mục Tiêu:

Propose a viable option how I could share a set of classes in an efficient way. I need to be able to reuse code from one project easily and be able to maintain this code in one place. It also needs to be compatible with iOS7, so dynamic libraries probably won't do it for me. Any workflow that would allow me to do what I described above will be a winner. Thanks

Trả lời

2

Vì mục đích giúp đỡ người khác, đây là một theo dõi trên những gì tôi đã làm:

Do thực tế là - tại thời điểm viết bài này - iOS8 được sử dụng bởi khoảng 81% người dùng Apple có thiết bị di động, tôi đã tìm ra tôi sẽ đi đến tuyến đường CocoaPods. (Tôi đề cập đến điều này vì iOS8 được yêu cầu sử dụng các thư viện Swift động) Và vì tôi bắt đầu lại với dự án của mình, tôi đã tìm ra lý do tại sao không chỉ bắt đầu từ iOS8 ...

Tôi đã tạo một thư viện mới những dòng (thông báo: CocoaPods cần phải được cài đặt trên hệ thống của bạn!)

pod lib create <YourLibraryName> 

Và thay đổi nội dung phù hợp của .podspec tập tin được tạo ra trong quá trình này.

Thêm mã nguồn của bạn vào thư mục đã được tạo cho thư viện của bạn (Hoặc source_folder bạn đã chỉ định trong tệp .podspec) và tạo một repo git từ nó. Bây giờ bạn sẽ có thể sử dụng thư viện này trong mọi dự án cũng sử dụng CocoaPods bằng cách thêm

pod 'YourFrameWork', :git => 'https://path/to/your/repo.git' 

Hy vọng điều đó sẽ hữu ích.

0

Tôi không biết nếu điều này là câu trả lời nhưng tôi sẽ cho nó anyway. Tạo dự án khung trong Xcode và đặt nó trên github. Sau đó, bạn có thể tạo ra khuôn khổ với Carthage

+0

Cám ơn mustafa câu trả lời của bạn, tôi thực sự coi làm điều này ... cho đến khi tôi phát hiện ra rằng nó chỉ hỗ trợ iOS8 trở lên ... –

+0

Sau đó, không có tùy chọn cho bạn. Vì bạn không thể tạo thư viện tĩnh nhanh. – mustafa

+0

Bạn có chắc chắn không? Tôi chỉ cần để có thể chia sẻ mã giữa các dự án của tôi, tại sao trong tên của Thiên Chúa là nó rất khó khăn/không thể :(? –

0

Here là một hướng dẫn hay mà tôi đã tìm thấy.

Bạn phải làm gì?

[sudo] gem install cocoapods --pre 

File .podspec

Pod::Spec.new do |s| 
    s.name = 'MotionKit' 
    s.version = '0.6' 
    s.license = 'MIT' 
    s.summary = 'CoreMotion Made insanely simple' 
    s.homepage = 'https://github.com/MHaroonBaig/MotionKit' 
    s.social_media_url = 'https://twitter.com/PyBaig' 
    s.authors = { 'Haroon Baig' => '[email protected]' } 
    s.source = { :git => 'https://github.com/MHaroonBaig/MotionKit.git', :tag => s.version } 

    s.ios.deployment_target = '8.0' 

    s.source_files = 'MotionKit/*.swift' 

    s.requires_arc = true 
end 

Bây giờ kiểm tra của bạn mới được tạo ra Pod

Bây giờ là lúc để kiểm tra pod của bạn, để chắc chắn rằng nó hoạt động tốt. Nhanh chóng tạo tệp pod vào dự án thử nghiệm của bạn và thêm dòng sau vào nó.

pod '[s.name]', :git => '[s.source]' 

trong trường hợp của bạn:

pod 'MotionKit', :git => 'https://github.com/MHaroonBaig/MotionKit.git' 
Các vấn đề liên quan