2015-04-10 13 views
7

Tôi đã có Dự án XCode phổ quát (ObjC) cho iPad và iPhone với một tiểu dự án chứa bảng phân cảnh. Tiểu dự án là một thư viện tĩnh đã được thêm vào dự án chính. Bao gồm trong tiểu dự án này là một gói chứa bảng phân cảnh bespoken.XCode không có bảng phân cảnh được biên dịch hợp lệ tại đường dẫn

Khi tôi nhấn vào một nút nào đó ứng dụng, bảng phân cảnh cần được tải;

[UIStoryboard storyboardWithName:@"UIControls.bundle/Config" bundle:nil]; 

Điều đó hoạt động hoàn toàn tốt cho iPhone (thiết bị và trình mô phỏng), nhưng bất cứ khi nào tôi cố gắng chạy dự án một iPad (thiết bị hoặc trình mô phỏng), tôi nhận được lỗi sau;

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'There doesn't seem to be a valid compiled storyboard at path... 

Điều gì sẽ xảy ra? Dự án là một dự án phổ quát, vậy tại sao iPad không thể tìm thấy bảng phân cảnh?

+0

Hãy thử điều này: '[Bảng câu chuyện UIStoryboardWithName: @" Gói UIControls.bundle/Config ": [NSBundle mainBundle]];' – LoVo

+0

Không, không may mắn. – AlBirdie

+0

Bạn đã thử sử dụng Config thay vì đường dẫn 'chưa? –

Trả lời

16

Để trả lời câu hỏi của riêng tôi;

Lỗi này xuất hiện khi mục tiêu gói không phổ biến. Vì vậy, hãy đảm bảo rằng Gia đình thiết bị được nhắm mục tiêu trong cài đặt xây dựng của gói được đặt thành iPhone và iPad.

enter image description here

+0

Giải pháp của bạn hoạt động tốt - THANK YOU !!! –

+0

Cảm ơn! Tôi đã nhận được điên với điều này. – emix

+0

nơi để tìm gia đình thiết bị được nhắm mục tiêu trong xcode 8.4 – vp2698

0

Tôi xin lỗi vì những bình luận trước đây của tôi.
Tôi không biết tại sao nó không làm việc, nhưng hiện tại tôi cố định vấn đề đó với các bước sau:

  1. Đi tới Dự án Target -> Thông tin và sau đó xóa đối tượng KeyValue cho storyboard chính tên cơ sở key fileTên cơ sở tệp bảng phân cảnh chính (iPad).
  2. Để đảm bảo rằng nó đã bị xóa hoàn toàn, hãy truy cập tệp Info.plist và xác minh các đối tượng KeyValue không tồn tại ở đó. Nếu có, thì cũng xóa từ đó.
  3. Xóa tham chiếu đến Bảng phân cảnh khỏi dự án Xcode.
  4. Thêm Storyboards lại cho dự án bằng cách nhấp chuột phải vào các dự án trong Xcode -> Add file để PROJECT_NAME, đánh dấu vào Sao chép mục nếu cần, Tạo nhóm và các tùy chọn mục tiêu dự án.
  5. Đặt tên bảng phân cảnh cho cả iPhone và iPad trong Mục tiêu dự án -> Thông tin, bằng cách thêm các đối tượng KeyValue đã loại bỏ trước đó.

Từ bây giờ Bảng phân cảnh hoạt động như trước đây!

0

Tôi đã cố gắng khắc phục sự cố này trong 2 ngày mà không có hy vọng cho đến khi tôi phát hiện ra rằng nó cũng không mở tệp sqlite DB và sau đó mọi thứ đều bị hỏng sau lỗi DB này. đó là trường hợp của tôi. Và tất cả điều đó là vấn đề bộ nhớ ngay cả khi ARC đặt mảng hoặc từ điển sau khi kết thúc thành 0;

+0

Tôi đang đối mặt với vấn đề tương tự cách có thể là gì? – TechGuy

3

Chỉ cần chạy vào điều này, sau khi chuyển dự án từ mục tiêu Universal sang iPad chỉ và mục tiêu triển khai từ iOS 9.0 sang iOS 7.1.

Giải pháp là tắt 'Sử dụng kích thước lớp học' trên bảng phân cảnh và chỉ giữ kích thước cho iPad.

Để chuyển đến hộp kiểm này, hãy mở bảng phân cảnh trong trình điều hướng dự án, sau đó chọn hiển thị Thanh tra tệp (biểu tượng đầu tiên) và cuộn xuống tiêu đề Document Builder Document.

2

Tôi đã sử dụng một Storyboard từ một Cocoapod tùy chỉnh và nó giữ crashing với

Có vẻ như không phải là một "kịch bản biên soạn hợp lệ" tại con đường ...

Trong bảng phân cảnh bị ảnh hưởng, trong Document Builder Document tôi đã chuyển giá trị "Builds for" từ "iOS 7.0 trở lên" thành "Project Deployment Target" (là 9.0), điều này đã làm cho tôi.

0

Trong trường hợp của chúng tôi, chúng tôi đã chạy một kịch bản shell mà thực hiện một trong những công cụ dòng lệnh XCode của, ibtool,

ibtool --reference-external-strings-file --errors --warnings --notices --minimum-deployment-target 6.0 --output-format human-readable-text --compile ./Build/Release-iphonesimulator/TestApp.app/TestStoryboard.storyboardc ./Resources/TestStoryboard.storyboard --sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.2.sdk 

và trong khi nó vẻ để chạy mà không có lỗi, nó thực sự tạo ra một storyboardc thư mục rỗng. Nâng cấp mục tiêu triển khai tối thiểu lên 8,0 được tạo ra một cách hợp lý được xây dựng storyboardc, với một tệp Info.plist bên trong. Khi IBTool thất bại/tạo ra một thư mục trống, tôi chắc chắn nghĩ rằng nó nên thực sự thất bại, và ngừng biên dịch, bởi vì nếu không mọi thứ có vẻ như nó được thiết lập đúng và chính xác, nó thực sự là không.

Vì vậy, vâng, giải pháp cho chúng tôi là nâng cấp mục tiêu triển khai tối thiểu của ứng dụng.

0

Tôi có vấn đề này do sự thay đổi trong màu sắc Storyboard của Status Bar Phong cách và không thay đổi trong thiết lập dự án

0

Đối với tôi giải pháp là:

tôi đã sử dụng mã này để tải trình điều khiển chế độ xem mới - [Bảng câu chuyện UIStoryboardWithName: @ "UIViewController" bundle: nil];

Trước tiên tôi đã thử - [Bảng câu chuyện UIStoryboardWithName: @ "UIViewController" bundle: [NSBundle mainBandle]];

Nhưng không may mắn, cuối cùng tôi đã thay đổi mã này vào:

[tự performSegueWithIdentifier: @ "Segue" người gửi: tự];

Và nó đã giúp, có thể nó cũng có thể giúp ai đó.

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