2012-08-29 17 views
38

Tôi hiện đang sử dụng Phonegap 2.0 để phát triển Ứng dụng iOS trong XCode. Ứng dụng xây dựng và chạy tốt trong trình giả lập và cũng trên các thiết bị thử nghiệm.Không tìm thấy tệp Phonegap CDVViewController.h khi Lưu trữ cho iOS

Sự cố xuất hiện khi tôi cố gắng lưu trữ ứng dụng để phân phối. Tệp lưu trữ không thành công với thông báo sau:

Không tìm thấy tệp CDVViewController.h.

Bất kỳ ý tưởng nào?

Trả lời

154

Xcode 6.x

thêm $(OBJROOT)/UninstalledProducts/include để BuildSettings-> Tiêu đề Search Paths

Xcode 7.x

thêm $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include để BuildSettings-> Tiêu đề Search Paths

1.Nhấp vào <multiple values> và bạn có thể thêm điều này vào.

2.Change $(OBJROOT)/UninstalledProducts/include để $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

enter image description here

+1

Không hoạt động cho tôi. –

+0

@TiagoAmaral có thể thử giải pháp của tôi: http://stackoverflow.com/a/35743530/758862 – Jochen

2

Tôi đã gặp sự cố tương tự. Tôi tin rằng nó có thể đã được giới thiệu bởi vì tôi đã di chuyển vị trí của dự án Xcode sau khi tôi tạo ra nó bằng các công cụ của Cordova. Hoặc, cũng có thể là tôi đã không thiết lập đúng bộ công cụ Cordova iOS - có lẽ tôi không chạy gói cài đặt (tôi đã xây dựng lại máy này một vài lần). Ngoài ra, tất cả các câu trả lời liên quan tôi tìm thấy với Google đều đề xuất tôi cần thay đổi một số lớp cốt lõi của Cordova - mà tôi không sẵn sàng làm.

Giải pháp của tôi là sử dụng lệnh Cordova create để tạo dự án Xcode hoàn toàn mới. Tôi đã sao chép thư mục www của dự án ban đầu vào dự án mới và sau đó đi về việc cấu hình lại dự án mới để phù hợp với các thiết lập của dự án gốc.

Dự án mới, sử dụng cùng các plugin, khung công tác và cài đặt xây dựng đã xây dựng thành công tệp lưu trữ trong khi dự án gốc không thể. Nó không phải là một giải pháp lý tưởng - nhưng nó hoạt động.

+1

Tôi đã cố gắng tránh phải làm điều đó. Đó chính xác là những gì tôi đã làm và nó hoạt động. Cảm ơn đã dành thời gian trả lời. – Reinaldo

10

Managed để sửa chữa nó.

Những người mất tích từ "Header tìm kiếm Path" trong việc xây dựng thiết lập các thiết lập mục tiêu của tôi:

"$(TARGET_BUILD_DIR)/usr/local/lib/include" 
"$(OBJROOT)/UninstalledProducts/include" 
"$(BUILT_PRODUCTS_DIR)" 

Nhận dạng giải pháp nhiều nguồn khác nhau:

Nâng cấp Cordova iOS (Stepts từ 31) http://docs.phonegap.com/en/2.0.0/guide_upgrading_ios_index.md.html#Upgrading%20Cordova%20iOS

Báo cáo lỗi https://issues.apache.org/jira/browse/CB-1122

Thảo luận tại groups.google.com/forum/?fromgroups=#! chủ đề/phonegap/IcR8-ijrUfk

Thảo luận tại groups.google.com/forum/?fromgroups=#!topic/phonegap/PzqZEm8QKmc

1

Tôi đã gặp phải vấn đề tương tự khi sao chép dự án của mình sang một thư mục khác. Tôi đang sử dụng Phonegap 2.0.0. Sau khi thử một số giải pháp không thành công, tôi đã chạy Product-> Clean và mọi thứ hoạt động bình thường. Đừng hỏi tôi tại sao nhưng con đường này đã giải quyết được một số trục trặc nhỏ mà tôi phải giải quyết, tức là thay đổi các tệp biểu tượng giật gân và biểu tượng, những người không được cập nhật trên thiết bị. Hy vọng sự trợ giúp này.

1

Như đôi khi trường hợp, giải pháp được chấp nhận có thể không giúp mọi người có vấn đề tương tự nhưng có lẽ không liên quan.

Quan sát của tôi tương tự (không tìm thấy CDVViewController.h). Trước tiên, hãy đảm bảo cài đặt TARGET bao gồm "đường dẫn tìm kiếm tiêu đề" như được mô tả ở trên.

Sau đó làm theo liên kết này với những gì làm việc cho tôi: http://outof.me/embedding-cordovalib-in-your-iosphonegap-app-project/

Về cơ bản tôi cần phải tái liên kết cordova như một sự phụ thuộc mục tiêu và sau đó liên kết nó với các thư viện của tôi.

Sau đó, nếu bạn di chuyển đến cordova 2.5.0, bạn sẽ có khả năng chạy vào một vấn đề mà spits ra một cái gì đó tương tự như sau: "" _ALAssetPropertyDate "tham chiếu từ:

___23-[CDVFile getMetadata:]_block_invoke in libCordova.a(CDVFile.o) 

    ___27-[CDVFile getFileMetadata:]_block_invoke in libCordova.a(CDVFile.o) 

" _OBJC_CLASS _ $ _ ALAssetsLibrary "tham chiếu từ:

objc-class-ref in libCordova.a(CDVFile.o) 

    objc-class-ref in libCordova.a(CDVFileTransfer.o) 

    objc-class-ref in libCordova.a(CDVURLProtocol.o) 

"

Nếu os, thêm khuôn khổ AssetLibrary và có một số hòa bình.

+1

Cảm ơn bạn đã đề cập rằng đó là "đường dẫn tìm kiếm tiêu đề" trong cài đặt TARGET, chứ không phải dự án. – Dunc

0

Bạn có thể cần phải cập nhật tham chiếu tiểu dự án CordovaLib của mình.

Khởi chạy Thiết bị đầu cuối Chuyển đến vị trí bạn đã cài đặt Cordova trong thư mục con bin. Ví dụ, /Users/Shared/Cordova/phonegap-2.2.0/lib/ios/bin

Chạy lệnh dưới đây nơi tham số đầu tiên là đường dẫn đến file .xcodeproj của dự án của bạn:

./update_cordova_subproject /path/to/your/project 
33

On Xcode 7.1, bạn sẽ cần phải cập nhật header search paths trường từ $(OBJROOT)/UninstalledProducts/include đến $(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include

Bạn có thể tìm thấy header search paths dưới build settings ->search paths

+0

Cảm ơn, hoạt động tốt – rcorrie

+0

Cảm ơn người đàn ông. Nó thực sự hiệu quả! –

6

Đối với ref tương lai:

Tôi chỉ cố định vấn đề này chính xác cho bản thân mình.

Nếu bạn đang sử dụng Cordova cli và đã cập nhật config.xml, bạn có thể chỉ cần xóa ios làm nền tảng và thêm lại. Sau đó lưu trữ lại từ XCode.

cordova platform remove ios 
cordova platform add ios 

Hy vọng rằng sẽ giúp, làm việc một cách hoàn hảo đối với tôi,

+1

Tôi xác nhận điều này đã làm cho tôi. Chỉ có tôi đã không làm điều đó trực tiếp bằng Cordova nhưng thông qua Meteor với: 'meteor remove-platform ios' và sau đó' meteor add-platform ios' –

+0

Tôi không sử dụng XCode để phát triển ứng dụng phonegap của mình, điều này làm việc cho tôi! – Eknoes

1
$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include 

Thêm này để "Tìm kiếm Paths" trong "Xây dựng Settings" làm việc một cách hoàn hảo.

Search Paths in XCode Build Settings

0

Xcode 7.2 là một chút khác nhau

$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include 

cần phải được đặt trong đường dẫn tìm kiếm tiêu đề cho gỡ lỗi và cho phát hành.

Header search paths have a debug and release sub field

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