2016-07-27 20 views
5

Tôi có một dự án với số lượng mã viết bằng những gì tôi cho là nhanh chóng 2.3 Nó chứa và phần mở rộng ứng dụng cũng được viết nhanh 2.3 và sử dụng 2 Cocoapods: SwiftyJSONMMWormhole. Sau khi tải xuống Xcode 8.3 beta, trình di chuyển đã chạy và tôi còn lại với gần 100 lỗi trình biên dịch trong một tệp nhanh chính chứa trong SwiftyJSON.Sử dụng Xcode8 với một dự án 2.3 nhanh chóng sử dụng cocoapods

Về cơ bản, tôi muốn biết liệu có cách nào tôi có thể làm việc trong Xcode8 được cung cấp các chi tiết này hay không. Tôi rất vui khi cập nhật mã của riêng tôi lên swift3 tuy nhiên tôi không kiểm soát các cocoapod (MMWormHole là mục tiêu-C vì vậy tôi giả định rằng Xcode chuyển đổi nó thành phiên bản Swift cần thiết khi phát ra không có lỗi trình biên dịch). Tôi có thể yêu cầu Xcode sử dụng nhanh 2.3 trên toàn cầu không?

Trả lời

0

Từ kinh nghiệm của tôi khi khởi động không gian làm việc, SDK sẽ hỏi bạn xem bạn có muốn chuyển đổi mã của mình thành Swift 3 hay làm điều đó "sau". Bởi chỉ cần chọn sau, nó sẽ không di chuyển mã của bạn để nhanh chóng 3. Tôi phải cảnh báo bạn mặc dù tôi đã đi qua cùng một điều và nó đã gần như không thể làm việc ngược trở lại chỉ vì bạn muốn sử dụng Xcode mới nhất và lớn nhất 8. Bạn cuối cùng sẽ chạy vào các vấn đề như khi bạn đã sẵn sàng để đẩy vào kho ứng dụng và iTunesConnect sẽ không chấp nhận bất kỳ tệp nào thấp hơn phiên bản 10. Ngoài ra khi nào và nếu nhà phát triển khác kế thừa mã của bạn, họ sẽ gặp sự cố nếu họ đang sử dụng phiên bản Xcode cũ hơn.

+0

i khai thác vào nút chuyển đổi sốt ruột và thấy rằng nó là khó khăn nếu không muốn nói là không thể để de-di cư, do bạn chưa cam kết trong một thời gian thuận tiện gần đây .. –

2

Nhiều dự án Swift nguồn mở có các nhánh cho Swift 3 hoặc Swift 2.3 (xem this post để biết chi tiết về cách tiếp cận phổ biến). Tôi đã kiểm tra SwiftyJSON và nó dường như có một nhánh cho Swift 3, vì vậy bạn có thể chuyển đổi ứng dụng của mình sang Swift 3 và thử. Để sử dụng nó, thay đổi mục SwiftyJSON trong Podfile của bạn để:

pod 'SwiftyJSON', :git => 'https://github.com/SwiftyJSON/SwiftyJSON.git', :branch => 'swift3' 

Nó tùy thuộc vào dự án để cập nhật cho mỗi phiên bản beta Xcode 8, vì vậy nó có thể không chính xác làm việc, nhưng có khả năng là có sẽ ít hơn 100 lỗi.

Lưu ý: Bạn có thể thấy lỗi "Sử dụng phiên bản ngôn ngữ lập dị Swift" sau khi cập nhật mọi thứ và sửa lỗi trình chỉnh sửa. Điều này có thể được sửa bằng cách thêm bước post_install vào tệp Podfile của bạn (xem this GitHub issue) hoặc bằng cách cập nhật lên CocoaPods 1.1.0.beta.1 hoặc cao hơn (gem install cocoapods --pre).

6

Bạn phải đặt Use Legacy Swift Language Version thành YES để sử dụng SWIFT 2.3 mã trong Xcode 8. Sau đó, thêm mục này vào số Podfile để làm cho tất cả các mục tiêu nhóm của bạn xác nhận giống nhau.

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |configuration| 
     configuration.build_settings['SWIFT_VERSION'] = "2.3" 
    end 
    end 
end 

Tôi hy vọng, nó sẽ giúp ích.

+3

Điều này có vẻ như và 'kết thúc' với nhiều – Cyrus

+0

Điều này thực sự hữu ích. Cảm ơn! – speedynomads

0

Thêm dòng sau vào cuối Podfile của bạn sau đó chạy pod install:

post_install do |installer| 
    installer.pods_project.targets.each do |target| 
    target.build_configurations.each do |config| 
     config.build_settings['SWIFT_VERSION'] = '2.3' 
    end 
    end 
end 
Các vấn đề liên quan