Khi tôi khởi động ứng dụng của mình với XCode, tôi gặp sự cố nhưng không có lỗi
Ứng dụng chỉ dừng lại trên chuỗi này
Tôi có thể làm gì để có thêm thông tin về vấn đề này?
Câu trả lời:
Nếu bạn đang sử dụng các khuôn khổ tùy chỉnh, bạn cần đặt nó vào bên trong phần "Nhúng Binaries" nằm trong dự án Xcode dưới tab Target / General.
Đối với tôi một đơn giản Clean
và Rebuild
sắp xếp nó ra. Hy vọng nó giúp.
Việc thêm khung vào danh sách tài sản nhị phân được nhúng đã khắc phục điều này. Đây là cách thiết lập của một khuôn khổ nước ngoài trông như thế nào ở dạng cuối cùng trong Xcode GUI dưới dạng Khung nhúng (Xcode 9.2, cá nhân tôi thích một đường mòn bánh mì trực quan hơn ;-)):
Có phải Apple cố tình phá vỡ thời gian chạy để bằng cách nào đó nói với nhà phát triển về vấn đề bạn không thể sử dụng các khung không phải của Apple như các khung được liên kết đơn giản trong phát triển iOS? Sẽ tốt hơn nếu nó xuất hiện như một lỗi xây dựng mà tôi nghĩ ... với một nút có nội dung "di chuyển nó!"
Việc sử dụng Hội thảo nhúng giúp người dùng cuối không phải thêm Khung độc lập với ứng dụng của bạn (hoặc bạn phải làm với trình cài đặt). Trong trường hợp của iPhone (iOS), điều đó là không thể, nhưng trên macOS, điều đó có thể xảy ra nhưng có thể bị lộn xộn nhanh chóng.
Đối với người dùng cuối, việc chỉ cần kéo và thả một ứng dụng để cài đặt ứng dụng đó trên macOS sẽ tốt hơn nhiều, đó là nơi mà việc nhúng trở thành một lợi ích. Nhúng cũng tránh được "xung đột DLL" cổ điển của việc quản lý các phiên bản bên ngoài của khuôn khổ. (không gian đĩa rẻ, thời gian của khách hàng của tôi là quý giá).
Cuối cùng đã được giải quyết!
Điều hiệu quả đối với tôi là làm cho khuôn khổ trở thành "tùy chọn" thay vì "bắt buộc".
Hy vọng rằng sẽ giúp!
1) Tiếp tục thực hiện để xem có thông báo nào hiển thị trong trình gỡ lỗi chẳng hạn như "MyFramework.framework" không. Nếu đúng như vậy, hãy làm theo cuộc thảo luận sau: Thư viện OS X Framework không được tải: 'Không tìm thấy hình ảnh' Đối với tôi, câu trả lời này đã hoạt động: https://stackoverflow.com/a/44796734/4060763
2) Đảm bảo rằng bạn đã thêm các mã nhị phân của mình thông qua phần "Nhúng Binaries".
3) Đảm bảo rằng bạn đã bật ký các khuôn khổ trong phần giai đoạn xây dựng.
4) Đảm bảo rằng các khung được nhúng không phải là liên kết tượng trưng.
5) Bạn có thể làm cho các khung được liên kết trở thành tùy chọn thay vì bắt buộc trong giai đoạn "Liên kết nhị phân với thư viện". Điều này sẽ thông báo cho iOS không tìm kiếm các khung này trong khi khởi chạy. Nhưng dù sao bạn cũng cần sửa lỗi để sử dụng các framework đó!
6) Kiểm tra xem tất cả các mục nhập info.plist có tốt không. Trong trường hợp của tôi, tôi đang sử dụng tệp info.plist Mac cho iOS. Nó đang tìm kiếm một số tệp xib không có trong dự án iOS.
7) Làm sạch và xây dựng sau bất kỳ thay đổi nào như vậy. Điều này là bắt buộc vì xcode không sao chép / thay đổi các tệp này nếu chúng đã tồn tại.
8) Xóa ứng dụng khỏi iPad và sau đó cài đặt. Lý do tương tự như 7.
Guard Malloc
, chính xác. Bất cứ ai biết tại sao nó sửa chữa được sự cố?
Để trả lời câu hỏi ban đầu "Tôi có thể làm gì để có thêm thông tin về sự cố?", Chuỗi diễn đàn của Apple này cung cấp một mẹo rất đơn giản: chỉ cần chạy ứng dụng bị lỗi của bạn bên ngoài XCode (tức là dừng ứng dụng khỏi XCode, sau đó chạy nó theo cách thủ công trên thiết bị). Điều này sẽ tạo ra một bản ghi sự cố chứa nhiều chi tiết hơn về những gì đã xảy ra. Sau đó, bạn có thể xem lại nhật ký này từ menu Cửa sổ XCode / Thiết bị và Trình mô phỏng -> Xem Nhật ký Thiết bị.
Tôi gặp phải vấn đề tương tự với Xcode 11.3 và macOS Catalina 10.15.2. Ứng dụng đã chạy tốt trên thiết bị nhưng không chạy trên Simulator. Có vẻ như có sự cố với Trình mô phỏng và cách giải quyết là tắt Trình vệ sinh luồng.
Tham khảo: https://forums.developer.apple.com/message/397978#397978
Hi vọng điêu nay co ich.
Tôi đã gặp lỗi với cùng một chữ ký (dự án của tôi ở Obj-C) và phát hiện ra rằng tôi đã quên liên kết với khung thích hợp. Thông báo lỗi trong nhật ký gỡ lỗi dẫn đến việc tìm ra lỗi là:
dyld: Không tìm thấy ký hiệu: _OBJC_CLASS _ $ _ SFSafariViewController
Đối với lỗi cụ thể của tôi, việc thêm SafariServices.framework trong Mục tiêu -> Giai đoạn xây dựng -> "Liên kết nhị phân với thư viện" đã giải quyết được sự cố. Mặc dù bạn có thể không có cùng một lỗi cụ thể và cách giải quyết, nhưng việc kiểm tra nhật ký gỡ lỗi để tìm manh mối là hữu ích.
Tôi đã gặp trường hợp này sau khi cập nhật Xcode lên v10.2.1 và nhanh chóng lên v5.0 Nếu bạn đang sử dụng carthage + RxSwift thì RxSwift mới sử dụng RxRelay.framework
. Bạn nên vào thư mục / Carthage / Build để tìm khung công tác đó và đưa nó vào dự án của bạn. Đừng quên thêm nó vào carthage copy-frameworks
script của bạn :
$(SRCROOT)/Carthage/Build/iOS/RxRelay.framework
Được giải quyết nhờ: https://stackoverflow.com/a/52550148/2493555
Nếu bạn đang sử dụng một khuôn khổ được viết bằng Swift trong ứng dụng Objective-C, bạn cần đưa chuỗi công cụ Swift vào ứng dụng sử dụng khuôn khổ.
Cách tôi đã tìm thấy để làm điều này là tạo một tệp nhanh giả trong ứng dụng để XCode nhận ra nhanh chóng và thêm nó vào dự án một cách thích hợp. Sau đó, bạn có thể xóa tệp giả.
Tôi rất thích nếu ai đó biết cách tốt hơn để thêm nhanh chóng một cách rõ ràng vào dự án aim-c mà không cần thêm tệp nhanh.
nếu bạn sử dụng khung xây dựng Carthage, sau khi kéo khung vào chương trình của bạn, bạn nên thêm nó vào Chung / Nhúng Binaries.
Tôi tìm ra cách thích hợp để giải quyết nó.
Đảm bảo rằng AppleWWDRCA.cer
chế độ mặc định của hệ thống được đặt, sau đó nó sẽ hoạt động:
Tôi đã phải đối mặt với cùng một vấn đề. Đặt 'Thư viện chuẩn Swift luôn nhúng' thành Có trong Cài đặt bản dựng của mục tiêu phù hợp với tôi.
Tôi đã gặp sự cố tương tự đã được giải quyết bằng cách thiếu đặc tả quyền trong plist (kỳ lạ như nó ..)
Tôi đã cố gắng sử dụng AVCaptureDevice và nó chỉ bị lỗi khi bắt đầu (ứng dụng của tôi rất nhỏ)
Đang thêm -
Privacy - Camera Usage Description
để info.plist
giải quyết nó cho tôi.
Để thêm vào danh sách dài các lần gặp phải lỗi này, lỗi này xảy ra khi tôi đang triển khai XCode12.2 Beta 2 cho máy Mac của tôi đang chạy MacOS 10.15.5 với mục tiêu triển khai được đặt thành MacOS 11.0. Tình huống này xảy ra vì tôi đang thử ứng dụng Hướng dẫn Mac Catalyst về cách thêm SideBar. Việc chuyển mục tiêu sang MacOS 10.15.5 đã loại bỏ lỗi và khởi chạy ứng dụng đúng cách.
Tôi đã sửa lỗi trong dự án của mình.
1. Kiểm tra các chủ đề khác khi lỗi xảy ra. Tôi thấy lỗi của tôi là về máy ảnh.
Tôi vừa gặp vấn đề tương tự và lý do tại sao là do tôi đã thu hồi Chứng chỉ nhà phát triển của mình và tạo chứng chỉ mới với Xcode 10, sau khi cập nhật macOS Mojave mới (đối với một số người, nó đã xóa tất cả thông tin đăng nhập và lỗi thời một số chứng chỉ keychain).
Vì vậy, tất cả những gì tôi phải làm là xóa các ứng dụng đã cài đặt khỏi thiết bị của mình và chạy lại chúng qua Xcode, để nó cài đặt đúng Hồ sơ cấp phép mới trong thiết bị của tôi :)
Đôi khi nó xảy ra khi bạn sử dụng các khung hệ thống chỉ có thể truy cập từ phiên bản iOS mới hơn mà phiên bản mục tiêu của bạn. Nó có thể được khắc phục bằng cách đánh dấu khung liên kết này là tùy chọn.
Ví dụ: một dự án được nhắm mục tiêu trên iOS 11 và đang sử dụng tính năng Tự động điền AuthenticationServices cho iOS 12 sẽ gặp sự cố trên iOS 11 theo cách được mô tả.
Trên thực tế, tôi đã gặp sự cố với 11.3.1 và Thread Sanitizer đã bị tắt như đã đề cập ở trên. Trong trường hợp của tôi, vấn đề là tôi đã sử dụng các phiên bản xCode khác nhau trong thư mục Ứng dụng của mình như vậy
/Applications/xcode11.3.1/Xcode.app
/Applications/xcode11.3/Xcode.app
/Applications/xcode10.1/Xcode.app
và
/Applications/Xcode.app - was 11.2
Tôi mất 2 ngày để hiểu rằng hệ thống xây dựng trông trên /Application/Xcode.app theo mặc định. Vì vậy, đưa 11.3.1 vào /Application/Xcode.app cuối cùng đã giải quyết được sự cố
Ngoài ra, nếu bạn đang sử dụng các khung tùy chỉnh, hãy đảm bảo rằng bạn đặt loại Mach-O thành thư viện tĩnh. Tôi đọc ở đâu đó rằng IOS không cho phép dylib. Dù sao điều này đã làm việc cho tôi.
Tôi chỉ gặp sự cố đó khi chạy trên thiết bị thực (iPhone SE). Trên dự án giả lập hoạt động như mong đợi.
Tôi đã thử tất cả các bản sửa lỗi từ chính chuỗi này và từ đây: Thư viện khung OS X không được tải: 'Không tìm thấy hình ảnh' Không ai trong số đó làm việc cho tôi.
Đối với tôi, vấn đề đã được giải quyết sau khi khởi động lại iPhone (sic!).
Tôi đã làm:
Và cuối cùng nó cũng hoạt động. :)
Nếu mọi giải pháp khác không thành công, đừng quên thử nó.
Tôi đã sắp xếp nó theo lệnh "pod install".