2016-05-22 26 views
24

Tôi vừa cố cập nhật từ cocoapods 0.39.x lên Cocoapods 1.0. ChạyCocoapods 1.0: Không tìm thấy các tệp tiêu đề

pod cài đặt

từ nhà ga không gây cảnh báo. Mọi thứ có vẻ bình thường. Tuy nhiên, khi tôi cố gắng để xây dựng dự án của tôi nó ra:

AFNetworking/AFNetworking.h nộp không tìm thấy

tập tin pod của tôi trông như thế này (có một vài phụ thuộc nhiều hơn nhưng tôi chỉ liệt kê một một phần của nó):

platform :ios, '8.0' 
use_frameworks! 
source 'https://github.com/CocoaPods/Specs.git' 

target 'MyApp' do 
    pod 'AFNetworking', '~> 2.6' 
    pod 'BEMCheckBox' 
    pod 'ActionSheetPicker-3.0', '~> 2.0.5' 
    pod 'SCLAlertView' 
    pod 'DZNEmptyDataSet' 
    pod 'SSZipArchive' 
end 


target 'MyAppTests' do 

end 

Kể từ khi một số dự án được viết bằng Objective-C, tôi đã tạo ra một tiêu đề bắc cầu:

#import <AFNetworking/AFNetworking.h> 
#import <ActionSheetPicker_3_0/ActionSheetPicker.h> 
#import <SSZipArchive/SSZipArchive.h> 
#import <DZNEmptyDataSet/UIScrollView+EmptyDataSet.h> 

Tôi đã bao gồm rõ ràng $(inherited) trong Header Search Paths, User Header Search pathsFramework Search paths nhưng lỗi không biến mất. Có ai đó có ý tưởng về cách sửa lỗi này không?

+1

Một vài gợi ý để bắt đầu ... không liên quan đến câu hỏi của bạn, nhưng nếu bạn đang viết mã trong Swift, hãy thử sử dụng Alamofire thay vì AFNetworking. Cả hai đều có cùng một người sáng tạo, nhưng Alamofire về cơ bản là phiên bản Swift của AFNetworking. Nó làm cho mọi thứ dễ dàng hơn một chút. Thứ hai, hãy chắc chắn rằng bạn đang mở dự án của bạn như là một xcworkspace thay vì một xcodeproj. Cocoapods sẽ chỉ hoạt động trong xcworkspace. Nếu đó không phải là vấn đề tôi có thể cố gắng giúp đỡ thêm. – user3353890

+0

Cảm ơn các đề xuất của bạn. Vâng, tôi hoàn toàn đồng ý. Nhưng tôi phải sử dụng AFNetworking bởi vì một phụ thuộc khác được viết trong Objective C và sử dụng AFNetworking chứ không phải Alamofire. Tôi đã làm việc trong xcworkspace, trên thực tế nó là một vấn đề use_frameworks. – slashburn

+1

Gotcha. Bạn đã thử chạy ứng dụng của mình chưa? Tôi đã có vấn đề trước khi tôi nhận được lỗi "không tìm thấy tệp", nhưng tôi xóa bản dựng và chạy ứng dụng và nó xóa tất cả các vấn đề. Nó gần giống như lỗi là một lỗi. – user3353890

Trả lời

30

Thông báo lỗi khá gây hiểu nhầm. Lúc đầu, tôi nghĩ rằng tôi có một số vấn đề với đường dẫn tìm kiếm tiêu đề của tôi, vì vậy tôi về cơ bản đã thử tất cả mọi thứ tôi tìm thấy trên stackoverflow.

Nếu bạn sử dụng use_frameworks! trong tệp Podfile, bạn không phải bao gồm mọi nhóm Objective-C trong tiêu đề cầu nối của mình. Bạn chỉ phải làm điều này, nếu nhóm được phân phối dưới dạng một thư viện tĩnh, không phải là một khung công tác.

tôi đã làm như sau

  1. Nhấn Cmd + option + shift + k để làm sạch xây dựng thư mục của bạn
  2. Run pod install
  3. Xóa các dòng trong tiêu đề cầu nối của bạn, nơi nó sẽ cho bạn biết rằng các tập tin tiêu đề không tìm thấy và sử dụng câu lệnh nhập đơn giản bất cứ khi nào bạn muốn sử dụng mô-đun đó trong một tệp Swift cụ thể, ví dụ: import AFNetworking
+0

Nếu tôi không sử dụng 'use_frameworks' thì sao? Lỗi của tôi sẽ không biến mất, không phải việc tìm kiếm chúng dưới dạng mô-đun. Tôi đã cố gắng tan rã và sạch sẽ. Đó là cùng một cơ sở mã mà tôi xây dựng và gửi đến appstore. Bất kỳ đề xuất ? – Alix

+1

Ứng dụng của bạn có trong Swift hoặc Objective-C không? Điều này: https://guides.codepath.com/ios/CocoaPods có thể hữu ích cho bạn. Nếu ứng dụng của bạn ở dạng Swift, tôi sẽ luôn sử dụng use_frameworks. use_frameworks cho phép bạn thêm các nhóm Swift. Thật không may không phải tất cả các nhóm Objective-C đều có thể được phân phối như một khung công tác. Nếu bạn gặp sự cố, bạn có thể cần nhập tiêu đề của nhóm trong tiêu đề bắc cầu (chỉ khi nhóm Objective-C KHÔNG được phân phối dưới dạng khung.). Nếu hệ thống không tìm thấy tiêu đề, bạn phải bắt đầu sửa đổi đường dẫn Header Search (bạn đã thử các tùy chọn 'đệ quy') chưa? – slashburn

+1

khi tôi sử dụng nhập khẩu AFNetworking một lỗi xuất hiện: Không có mô hình AFNetworking –

2

Tôi đã thử xóa ~/Library/Developer/Xcode/DerivedData/* và xây dựng lại dự án và nó đã hoạt động cho tôi.

Các vấn đề liên quan