Không có gì sai với mã của bạn. Đây là một thông điệp đăng nhập nội bộ cho Apple và bạn nên gửi một radar về nó.
Có hai gợi ý cho thấy đây có lẽ là mã của Apple:
Dấu gạch dưới dẫn đầu tên phương thức _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
là một quy ước chỉ ra rằng phương thức đó là riêng tư / nội bộ đối với lớp mà nó đã khai báo. (Xem bình luận này .)
Thật hợp lý khi đoán rằng tiền tố hai chữ cái FBSSceneSnapshotAction
là viết tắt của FrontBoard, theo Rene Ritchie trong " danh sách mong muốn của iOS 9: Chế độ khách" là một phần của cả gia đình phần mềm liên quan đến việc khởi chạy ứng dụng:
Với iOS 8, Apple đã tái cấu trúc trình quản lý hệ thống của mình, SpringBoard, thành một số thành phần nhỏ hơn, tập trung hơn. Ngoài BackBoard, đã được tạo ra để xử lý các tác vụ nền, họ đã thêm Frontboard cho các tác vụ nền trước. Họ cũng đã thêm PreBoard để xử lý màn hình Khóa trong các điều kiện an toàn, được mã hóa. [...]
Tôi không biết BS
tiền tố trong đó BSSettings
dùng để làm gì, nhưng một phân tích về thông điệp tường trình này sẽ chỉ ra rằng đó không phải là bất cứ điều gì bạn đã làm và bạn nên nộp một radar với các bước để tạo lại thông điệp đăng nhập.
Nếu bạn muốn thử và lấy một dấu vết ngăn xếp, bạn có thể triển khai danh mục được liên kết đến đây . Một số người sẽ cho rằng việc ghi đè API riêng là một ý tưởng tồi, nhưng trong trường hợp này, việc tiêm tạm thời để lấy dấu vết ngăn xếp không thể quá nguy hại.
BIÊN TẬP:
Nhưng, chúng tôi vẫn muốn biết hành động này là gì. Vì vậy, tôi đặt một điểm dừng -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
và bắt đầu in ra các giá trị đăng ký và tìm thấy một lớp được gọi là FBSceneImpl
có cả đống thông tin về ứng dụng của tôi:
Chúng tôi có thể tìm ra phương thức riêng nào được gọi tiếp theo (được lưu trữ trong bộ đếm chương trình, đăng ký 15.)
Tôi đã cố gắng tìm các FBSceneSnapshotAction
tham chiếu chưa xử lý trong nhật ký, nhưng không có xúc xắc. Sau đó, tôi phân lớp UIApplication và overrode _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Bây giờ tôi đã có thể có được hành động trực tiếp, nhưng vẫn vậy, chúng tôi không biết nó là gì.
Sau đó, tôi nhìn vào FBSceneSnapshotAction một lần nữa. Hóa ra nó có một siêu lớp gọi là BSAction
.
Sau đó, tôi đã viết một công cụ tương tự như RuntimeBrowser và tra cứu tất cả các lớp con của BSAction. Nó chỉ ra rằng có khá nhiều danh sách của họ:
Hai tên phương thức chúng ta có (một từ nhật ký và một từ bộ đếm chương trình trên thiết bị) chỉ ra rằng các hành động này được sử dụng dưới mui xe để truyền các hành động xung quanh hệ thống.
Một số hành động có thể được gửi đến các cuộc gọi lại của đại biểu ứng dụng, trong khi những hành động khác được xử lý nội bộ.
Điều đang xảy ra ở đây là có một hành động không được xử lý chính xác và hệ thống đang chú ý đến nó. Chúng tôi không nên nhìn thấy nó, rõ ràng.