Ứng dụng iOS bị lỗi mỗi lần khởi chạy khác, không thể tìm thấy lỗi


81

Lần đầu tiên tôi khởi chạy ứng dụng, mọi thứ dường như chạy tốt. Tôi sẽ nhấn nút dừng, thực hiện một số công việc và khi tôi khởi chạy lại, nó dường như bị lỗi trước khi nó có thể tải bất cứ thứ gì. Nhấn dừng, nhấn Run lần nữa và nó hoạt động tốt. Cho đến khi tôi lặp lại quy trình.

Đây là nơi xcode đánh dấu lỗi với "Luồng 1: signal SIGABRT". Rõ ràng là không có gì hữu ích ở đây.

int main(int argc, char *argv[])
{
    @autoreleasepool {
        return UIApplicationMain(argc, argv, nil, NSStringFromClass([PokerAppDelegate class]));
    }
}

Bảng điều khiển gỡ lỗi không hiển thị gì ngoài (lldb) (Vì vậy, tôi cho rằng nó đang dừng lại, không gặp sự cố tại thời điểm này) Vì vậy, khi tôi thực hiện, BTđây là những gì tôi nhận được:

(lldb) bt
* thread #1: tid = 0x1c03, 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
    frame #0: 0x9a258a6a libsystem_kernel.dylib`__pthread_kill + 10
    frame #1: 0x99ea1b2f libsystem_c.dylib`pthread_kill + 101
    frame #2: 0x04a7057b libsystem_sim_c.dylib`abort + 140
    frame #3: 0x01dc0b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
    frame #4: 0x01dc069f GraphicsServices`_GSEventInitialize + 123
    frame #5: 0x01dc0c1f GraphicsServices`GSEventInitialize + 36
    frame #6: 0x000163f9 UIKit`UIApplicationMain + 600
    frame #7: 0x00001d0d Guitar Chord Poker HD`main(argc=1, argv=0xbffff32c) + 141 at main.m:16
    frame #8: 0x00001c35 Guitar Chord Poker HD`start + 53
(lldb) 

Đây là những gì tôi đã làm cho đến nay:

  • Thực hiện 'Sạch sẽ'
  • Tôi đã đặt lại trình mô phỏng và đặt lại máy tính của mình
  • Tôi đã nhận xét tất cả mã trong bộ điều khiển chế độ xem, vẫn bị lỗi
  • Tôi đã nhận xét tất cả mã trong đại biểu ứng dụng, vẫn bị lỗi
  • NHƯNG .... Tôi đã chạy ứng dụng trên một thiết bị bên ngoài Xcode và nó có vẻ hoạt động hoàn toàn tốt.
  • (CHỈNH SỬA) Tôi đã xóa / cài đặt lại xcode và tất cả nội dung (Trình mô phỏng, Tài liệu) từ các thư mục bộ đệm khác nhau (Điều này ngăn xcode tự động cài đặt lại những cái cũ sau khi tải xuống mới). Tuy nhiên, vẫn không thể tìm thấy nơi các công cụ dòng lệnh được lưu giữ. Vẫn bị treo.

Bất chấp tất cả những điều này, các ứng dụng vẫn bị lỗi mỗi giây / lần khởi chạy khác.

Điều này là tôi không có vấn đề gì cho đến khi cập nhật Xcode gần đây nhất. Nó có thể là một lỗi Xcode?

(EDIT) Tôi cũng đang chạy các bản phát hành OSX mới nhất dành cho nhà phát triển. Điều đó có thể được can thiệp?


Bạn đã thử chạy một dự án trống trên trình mô phỏng iOS và trên thiết bị được kết nối / ngắt kết nối chưa?
Reck Hou

@ReckHou Được rồi, wow, yeah, cùng một vấn đề về một dự án hoàn toàn mới. Nguyên nhân có thể là gì? Bất kỳ cách nào xung quanh nó ngoài việc cài đặt lại xcode?
Beau Nouvelle

Chúng tôi đã có hai người với vấn đề này. (sau lần cập nhật cuối cùng, tôi gặp lỗi tương tự) Hiện tại tôi sử dụng AppCode cho đến bản cập nhật Xcode tiếp theo với lỗi đã được sửa. (Câu hỏi của tôi stackoverflow.com/questions/16113036/… )
Ilya Ilin

5
Tôi bắt đầu thấy như vậy sau khi cập nhật lên OSX 10.8.4 sớm hơn ngày hôm nay. Tôi không gặp sự cố nào với Xcode 4.6.2 trên OSX 10.4.3. Sự cố dường như sẽ biến mất nếu tôi chuyển từ LLDB sang GDB, vì vậy nó có thể do trình gỡ lỗi gây ra (Xcode 4.6.2 LLDB kết hợp với OSX 10.8.4).
Matej Bukovinski

1
Tôi cũng nhận được như vậy sau khi cập nhật lên 10.8.4. Mỗi lần phóng khác. Đặt lại trình mô phỏng, khởi động lại Xcode, không có gì khác biệt. Sự cố ngay lập tức trong main (). Mỗi khác chạy. Cảm ơn vì ý tưởng GDB - nó đang hoạt động ở đây.
Graham Perks

Câu trả lời:


75

Có vẻ là sự kết hợp giữa OS X 10.8.4 và LLDB . Như kenster nói, việc chuyển sang GDB sẽ làm cho vấn đề biến mất.

Chỉnh sửa:
Nguyên nhân là do tình trạng chạy đua trong máy chủ gỡ lỗi (tôi nghe thấy).

Đây là cách khắc phục nếu bạn muốn tiếp tục sử dụng LLDB: Thay vì nhấp vào Chạy trong khi ứng dụng đang chạy trong trình mô phỏng, hãy giết ứng dụng đó trong Xcode (⌘-.), Nói "Tôi yêu Xcode" 5 lần và chạy lại (⌘- R). Tôi đã thử nghiệm nó.


Đã sửa trong Xcode 4.6.3.


Nó thực sự không hoạt động tốt. Việc khởi động khá nhiều lần khác nhau. Chuyển sang GDB là giải pháp ổn định hơn nhiều cho đến khi Apple sửa lỗi của họ.
Jonny

2
Bạn và người hỏi là những người yêu thích cá nhân mới của tôi. Điều này khiến tôi phát điên, đến nơi tôi chuẩn bị gửi MBP của mình để sửa chữa.
Kalle

Với 10.9 và Xcode 5, GDB đã bị xóa và bây giờ tất cả là LLDB. Nhưng tất cả đều hoạt động như bình thường!
Beau Nouvelle

Argh! Quay lại trình biên dịch không dùng nữa, chỉ để sửa một lỗi (thực sự đau đớn) trong trình biên dịch hoàn toàn mới, hiện đại là một vấn đề lớn… Nhưng không có lựa chọn nào khác, tôi sẽ phải làm điều đó.
MonsieurDart

Cập nhật lên 4.6.3 đã làm được - Tôi thậm chí không biết rằng phiên bản đó đã được phát hành.
David H

11

Tôi cũng đang gặp vấn đề này. Hãy xem bài viết này. Ứng dụng Xcode 4.6.2 bị treo sau mỗi lần chạy thứ hai

Về cơ bản thay đổi trình gỡ lỗi của bạn từ LLDB sang GDB. Tôi không thể tin rằng điều này là do LLDB bị lỗi.


Oh My God .... Đã sửa. Tôi đã quá quen với điều đó đến nỗi mỗi khi thực hiện một dự án, tôi luôn sẵn sàng để nổi nóng. Nhưng không có gì xảy ra. Cảm ơn đống. Sẽ cho Apple biết trong báo cáo lỗi của tôi.
Beau Nouvelle

2
Cảm ơn vì thông tin, đã khiến tôi phát điên cả ngày hôm qua. Tại sao tôi luôn đợi cho đến khi tôi nhổ hết tóc (còn lại) trước khi tìm kiếm TẠI ĐÂY! CƯỜI LỚN.
Bertie

3

Chuyển sang GDB hoặc khởi động lại thiết bị / máy chủ lưu trữ không giải quyết được sự cố trong môi trường của tôi.

Tuy nhiên, việc sửa đổi mục tiêu Run trong lược đồ XCode được liên kết để không còn tự động khởi chạy nữa mà thay vào đó là "Chờ HelloWorld .app khởi chạy" .

Chỉ có một nhược điểm là điều này ngụ ý để khởi động ứng dụng trên thiết bị theo cách thủ công. Trình gỡ lỗi sau đó sẽ được kết nối.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.