2015-10-16 53 views
7

CẬP NHẬT: Tôi đã sử dụng một trong những DTS của tôi cho năm này. Hiện đang làm việc với Kỹ sư hỗ trợ của Apple. Theo gợi ý của mình, tôi cũng đã tạo một báo cáo lỗi cho việc này. Tôi sẽ cập nhật chủ đề này khi thời gian trôi qua hy vọng kết quả là một giải pháp FINAL.Lỗi ứng dụng toàn bộ thiết bị trên phân đoạn cho iOS 9 + Xcode 7

Bằng cách nào đó, tôi đã tìm ra cách tạo ứng dụng theo nghĩa đen sẽ khởi động lại trình mô phỏng và/hoặc thiết bị thực. Hoan hô cho tôi. Vấn đề này bắt đầu khi tôi nâng cấp lên xcode 7 và bắt đầu thử nghiệm với iOS 9. Trên BẤT K device thiết bị/mô phỏng < iOS 9, vấn đề này không cản trở đầu xấu xí của nó.

Khi tôi chạy nó gắn liền với Xcode, các thông điệp log duy nhất tôi thấy là

XPC connection interrupted 
Terminating since there is no system app. 

tôi đã thu hẹp nó xuống đến một phần của mã được gọi

[self addChildViewController:segue.destinationViewController]; 

Mã này là một một phần của "MultichildContainerViewController" được tạo theo phong cách của view controller

Tại thời điểm này, tôi chỉ không biết phải tìm/sửa chữa vấn đề này ở đâu. Nếu tôi nhận xét việc bổ sung các childviewcontroller, tất cả mọi thứ là tốt và các ứng dụng chạy bình thường. Nếu tôi KHÔNG bình luận nó, nó sẽ khởi động lại toàn bộ trình mô phỏng của tôi.

Bất kỳ ý tưởng nào về nơi để tìm thông tin gỡ lỗi bổ sung hoặc các bản sửa lỗi tiềm năng? Tôi chỉ không biết nơi để nhìn vào thời điểm này để tìm thêm thông tin để sử dụng lần lượt để yêu cầu giúp đỡ. Bất kỳ trợ giúp được đánh giá cao, cảm ơn.

CHỈNH SỬA: Tôi không biết điều này có hữu ích hay không, nhưng tôi đã có thể tìm hiểu điều này trong hệ thống iOS Simulator.log thực tế. Dường như không có bất kỳ tham chiếu nào đến codebase của riêng tôi, chỉ cần backboard?

Oct 16 17:56:29 MyComputer backboardd[43977]: -[NSNull isEqualToString:]: unrecognized selector sent to instance 0x10de1baf0 
Oct 16 17:56:29 MyComputer backboardd[43977]: *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x10d 
e1baf0' 
*** First throw call stack: 
(
0 CoreFoundation      0x000000010dbf6f65 __exceptionPreprocess + 165 
1 libobjc.A.dylib      0x000000010df82deb objc_exception_throw + 48 
2 CoreFoundation      0x000000010dbff58d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205 
3 CoreFoundation      0x000000010db4cf7a ___forwarding___ + 970 
4 CoreFoundation      0x000000010db4cb28 _CF_forwarding_prep_0 + 120 
5 BackBoardServices     0x000000010d020b28 -[BKSHIDEventKeyCommandDescriptor isEqual:] + 155 
6 CoreFoundation      0x000000010db1630b -[__NSSetM addObject:] + 411 
7 CoreFoundation      0x000000010db466a0 -[NSMutableSet unionSet:] + 736 
8 BackBoardServices     0x000000010d0223a3 -[BKSHIDEventRouter addHIDEventDescriptors:] + 38 
9 backboardd       0x000000010c73a881 backboardd + 186497 
10 libdispatch.dylib     0x000000010e862df5 _dispatch_call_block_and_release + 12 
11 libdispatch.dylib     0x000000010e87e4a7 _dispatch_client_callout + 8 
12 libdispatch.dylib     0x000000010e868184 _dispatch_queue_drain + 1048 
13 libdispatch.dylib     0x000000010e867b3c _dispatch_queue_invoke + 595 
14 libdispatch.dylib     0x000000010e869454 _dispatch_root_queue_drain + 565 
15 libdispatch.dylib     0x000000010e869218 _dispatch_worker_thread3 + 98 
16 libsystem_pthread.dylib    0x000000010ebaa4f2 _pthread_wqthread + 1129 
17 libsystem_pthread.dylib    0x000000010eba8375 start_wqthread + 13 
) 

EDIT: Tôi cũng muốn nhấn mạnh rằng điều này không đơn giản khiến ứng dụng gặp sự cố, điều này làm cho trình mô phỏng WHOLE khởi động lại. Tôi cũng có thể kích hoạt khởi động lại này trên một thiết bị vật lý. Nếu đây chỉ là một trường hợp đơn giản gọi số isEqualToString trên NSNull, không nên CHỈ làm hỏng ứng dụng của tôi? Không phải toàn bộ mô phỏng?

+0

Tôi gặp lỗi tương tự! Ai đó đã đăng chuỗi hỗ trợ cho apple https://forums.developer.apple.com/thread/22087. Nó xảy ra với tôi bất cứ khi nào tôi cố gắng trình bày một cửa sổ bật lên hoặc hoạt hình tương tự. Vẫn đang cố gắng cách ly tình huống –

+0

Xin lỗi vì đã nghe @HaydenHolligan. Tôi đã cập nhật câu hỏi để hiển thị các bước tôi đang thực hiện để giải quyết vấn đề này. Hy vọng rằng nếu/khi vấn đề của tôi được giải quyết, chúng tôi có thể giải quyết vấn đề của bạn và những người khác. Hãy bỏ phiếu cho câu hỏi này nếu bạn nghĩ nó quan trọng. Sẽ giúp hiển thị nó. – Ceryni

Trả lời

5

Tôi nghĩ rằng tôi đã tìm ra! Tôi khá chắc chắn vấn đề của tôi là giống như của bạn. Cùng một vụ tai nạn đăng nhập và tình hình.

Tôi đã cố gắng cách ly sự cố, vì vậy tôi đã sao chép bảng phân cảnh của mình vào một dự án trống và xóa tất cả các kết nối và đặt tất cả các lớp mặc định (không có lớp tùy chỉnh).

Sau khi một số người chơi xung quanh, tôi quyết định thử liên kết lại một bộ điều khiển chia tách khác với cùng một lớp chính và chi tiết. Nó hoạt động! Vì vậy, tôi so sánh tất cả các thiết lập và nghĩa đen không có gì khác biệt. Chỉ trích.

Bây giờ là gì? Mở mã nguồn. Nhấp chuột phải vào bảng phân cảnh của bạn trong ngăn bên trái và chọn "Mở bằng trình chỉnh sửa bên ngoài". Điều này sẽ mở ra mã nguồn của bảng phân cảnh. Tôi so sánh mã nguồn của hai bộ điều khiển chia tách và tìm thấy một sự khác biệt.

Đây là nơi tôi nhìn

<!--Split View Controller--> 
    <scene sceneID="X6N-vM-fHn"> 
     <objects> 
      <splitViewController id="xSd-V6-k6W" customClass="SplitViewController" sceneMemberID="viewController"> 
       <navigationItem key="navigationItem" id="yvV-sB-yKa"/> 
       <keyCommands> 
        <keyCommand/> 
       </keyCommands> 
       <connections> 
        <segue destination="PW6-z0-erU" kind="relationship" relationship="masterViewController" id="MBC-0A-hls"/> 
        <segue destination="xqk-PP-nzR" kind="relationship" relationship="detailViewController" id="sMq-cw-27p"/> 
       </connections> 
      </splitViewController> 
      <placeholder placeholderIdentifier="IBFirstResponder" id="nG8-BB-Qmu" userLabel="First Responder" sceneMemberID="firstResponder"/> 
     </objects> 
     <point key="canvasLocation" x="-157" y="-370"/> 
    </scene> 

sự khác biệt là gì?

<keyCommands> 
    <keyCommand/> 
</keyCommands> 

Tôi không biết nó là gì, hoặc nó đến đó như thế nào, nhưng khi tôi xóa 3 dòng đó, các sự cố đã biến mất. Có một lớp học UIKeyCommand, nhưng tôi chưa bao giờ sử dụng nó nên tôi không chắc liệu nó có liên quan hay không. Hi vọng điêu nay co ich!

+1

Điểm truy cập Internet dành cho bạn! Thực hiện tốt, freaking cũng được thực hiện. Tôi đã phân tích chính mình thông qua những khác biệt nhưng chưa tìm thấy chúng. Tôi sẽ cập nhật Apple với điều này, Đáng sợ rằng điều này có thể sụp đổ một thiết bị. Tôi không có bộ điều khiển xem chính xác giống nhau, nhưng tôi DID có cùng một đoạn mã keyCommands XML. Việc xóa đã khắc phục được sự cố của tôi. – Ceryni

+0

Bạn thưa ngài, có những kudo từ tôi. Tôi đã tách mái tóc của mình ra khỏi việc xử lý các Storyboards này và vấn đề segue trên IOS9 gây ra thiệt hại không thể khắc phục cho linh hồn của tôi. Mỗi lần tôi thay thế khoảng cách đó, người khác sẽ biến mất một cách kỳ diệu, và cố gắng tất cả mọi thứ xuống điểm của việc loại bỏ một UIBarButtonItem và làm nó lập trình đã khiến tôi đau buồn. Họ sẽ làm việc trong iOS7, iOS8, không phải iOS9, và không bị lỗi ứng dụng, nhưng toàn bộ iPhone/iPad friggin, vv !!!!! Geez. Điều này đang dẫn tôi đến việc sử dụng Bảng phân cảnh và chỉ cần lập trình những gì tôi muốn. –

+2

Giao diện người dùng cho các lệnh chính nằm ở cuối thanh tra Thuộc tính cho bộ điều khiển chế độ xem. Nguyên nhân có khả năng là một lần nhấn ngẫu nhiên của nút + và không nhận ra rằng các trường bổ sung sẽ được điền. Ngoài ra, sự cố cho một lệnh khóa trống dường như là hành vi mới trong iOS 9. radar: // 23193389 đang theo dõi vấn đề gốc ở đây, cả về các lệnh khóa trống không được báo cáo lúc xây dựng và cải tiến giao diện người dùng cho cấu hình khóa lệnh. –

0

Nhật ký cho bạn biết chính xác những gì là sai.

Bạn đang cố gắng gọi isEqualToString trên một đối tượng null.

Kiểm tra xem đối tượng này có phải là đối tượng bạn mong đợi TRƯỚC KHI gọi làEqualToString trên đó hay không.

Tuy nhiên kể từ khi nó được sử dụng để làm việc của các phiên bản hệ điều hành trước đó, chỉ cần kiểm tra null có thể không giải quyết được vấn đề của bạn. Bạn có thể cần phải tìm ra lý do tại sao mục này bây giờ là null, nơi nó không phải là trước đây.

+0

Vì vậy, tôi đồng ý rằng đây là những gì thông báo lỗi theo nghĩa đen báo cáo, nhưng làm thế nào để tôi tìm thấy nơi điều này đang xảy ra nếu không có stacktraces được liên kết với mã của tôi? Tất cả chúng đều có nguồn gốc trong CoreFoundation hoặc backboardd. Tôi có rất nhiều điểm ngắt lỗi/ngoại lệ, dự án của tôi trông giống như nó có thủy đậu xanh. – Ceryni

+0

Tôi sẽ bắt đầu bằng cách tìm kiếm isEqualToString trong mã của bạn và xem đối tượng bạn đang gọi là null. Bạn nói đúng rằng toàn bộ sim không bị rơi. Vì vậy, có thể có một số vấn đề cơ bản khác. Nó chỉ là dự án của bạn? Liệu các sim vẫn sụp đổ nếu bạn cố gắng để chạy một dự án khác nhau? Bạn có thay đổi bất kỳ tệp nào vô tình là một phần của các mô phỏng iOS 9, giống như nơi chúng được lưu trữ không? Điều gì về cài đặt xây dựng của bạn? Bạn đã thử đặt lại nội dung và cài đặt trên trình mô phỏng, đã làm sạch và xóa dữ liệu có nguồn gốc chưa? –

+0

"Tôi sẽ bắt đầu bằng cách tìm kiếm isEqualToString trong mã của bạn" - Tôi đặt điểm ngắt trên 'isEqualToString', không có cuộc gọi hàm nào được thực hiện trên NSNulls " Chỉ là dự án của bạn? bạn thử chạy một dự án khác? " - Chỉ cần dự án của tôi, Trình mô phỏng chạy tốt cho các dự án khác. Dự án của tôi cũng chạy tốt trên thiết bị mô phỏng 8.4 "Bạn đã vô tình thay đổi bất kỳ tệp nào trong số các mô phỏng iOS 9, giống như nơi chúng được lưu trữ" - Tôi sợ tôi có thể làm điều gì đó kỳ lạ, vì vậy tôi đã xóa 9.0 mô phỏng, và thêm một thương hiệu mới. Cùng một kết quả. – Ceryni

-1

Như những người khác đã đề cập, bạn đang rơi vào [NSNull isEqualToString:]

Nếu bạn không chắc chắn nơi đó là trong mã của bạn, bạn có thể đặt một breakpoint ngoại lệ, do đó bạn biết chính xác nơi mà các vụ tai nạn là. Bạn có thể làm như vậy bằng cách vào Breakpoint Navigator của bạn.Tại phía dưới bên trái, có một nút + để bạn có thể Add Exception Breakpoint:

enter image description here

khi bạn đã có set breakpoint, chạy ứng dụng của bạn một lần nữa và nó sẽ thiết lập một breakpoint vào nơi vụ tai nạn là. Chúc may mắn!

+0

Cảm ơn bạn đã đề xuất, nhưng việc thêm điểm ngắt này không bắt lỗi này. Trình mô phỏng vẫn khởi động lại/bị treo. – Ceryni

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