Posts

Post not yet marked as solved
0 Replies
897 Views
Combine.ObservableObject with CustomStringConvertible will crash/ Xcode11.2.1, under iOS13Hello there.I make some feature with SwiftUI and Combine.ObservableObject.It's OK with iOS13but iOS12.1.4/iPhone6 always crashed with SIGABRT.Thread 1 Queue : com.apple.main-thread (serial) #0 0x0000000100a842e8 in __abort_with_payload () #1 0x0000000100a83928 in abort_with_payload_wrapper_internal () #2 0x0000000100a83958 in abort_with_payload () #3 0x0000000100a448f4 in dyld::halt(char const*) () #4 0x0000000100a44a10 in dyld::fastBindLazySymbol(ImageLoader**, unsigned long) () #5 0x00000001be080bd0 in dyld_stub_binder () #6 0x0000000100617d10 in type metadata accessor for Published () #7 0x00000001006182e8 in type metadata completion function for Model () #8 0x0000000100da5e64 in swift::MetadataCacheEntryBase<(anonymous namespace)::SingletonMetadataCacheEntry, int>::doInitialization(swift::ConcurrencyControl&, swift::MetadataCompletionQueueEntry*, swift::MetadataRequest) () #9 0x0000000100d9c580 in swift_getSingletonMetadata () #10 0x0000000100617e38 in type metadata accessor for Model () #11 0x0000000100db1cec in swift::TargetProtocolConformanceDescriptor::getCanonicalTypeMetadata() const () #12 0x0000000100db2d1c in swift_conformsToSwiftProtocolImpl(swift::TargetMetadata const*, swift::TargetProtocolDescriptor const*, llvm::StringRef) () #13 0x0000000100db2b78 in swift_conformsToProtocolImpl(swift::TargetMetadata const*, swift::TargetProtocolDescriptor const*) () #14 0x00000001006183f8 in swift::swift50override_conformsToProtocol(swift::TargetMetadata const*, swift::TargetProtocolDescriptor const*, swift::TargetWitnessTable const* (*)(swift::TargetMetadata const*, swift::TargetProtocolDescriptor const*)) () #15 0x0000000100d8c7fc in swift::_conformsToProtocol(swift::OpaqueValue const*, swift::TargetMetadata const*, swift::TargetProtocolDescriptorRef, swift::TargetWitnessTable const**) () #16 0x0000000100d902c0 in _conformsToProtocols(swift::OpaqueValue const*, swift::TargetMetadata const*, swift::TargetExistentialTypeMetadata const*, swift::TargetWitnessTable const**) () #17 0x0000000100d8f7f0 in _dynamicCastToExistential(swift::OpaqueValue*, swift::OpaqueValue*, swift::TargetMetadata const*, swift::TargetExistentialTypeMetadata const*, swift::DynamicCastFlags) () #18 0x0000000100b9ec4c in _print_unlocked<a, b="">(_:_:) () #19 0x0000000100610d1c in closure #1 in variable initialization expression of static A.a at /Users/gregory/Documents/LocalWorks/02.Topchul Examples/BugReport/SwiftCombineXcode12/SwiftCombineXcode12/AppDelegate.swift:18 #20 0x0000000100610ae8 in globalinit_33_83E805AAE6E55B0A6549C005E49F8EC8_func0 at /Users/gregory/Documents/LocalWorks/02.Topchul Examples/BugReport/SwiftCombineXcode12/SwiftCombineXcode12/AppDelegate.swift:12 #21 0x000000010093cdc8 in _dispatch_client_callout () #22 0x000000010093ee28 in _dispatch_once_callout () #23 0x0000000100db1afc in swift_once () #24 0x0000000100610e84 in A.a.unsafeMutableAddressor at /Users/gregory/Documents/LocalWorks/02.Topchul Examples/BugReport/SwiftCombineXcode12/SwiftCombineXcode12/AppDelegate.swift:12 #25 0x00000001006114ec in AppDelegate.application(_:didFinishLaunchingWithOptions:) at /Users/gregory/Documents/LocalWorks/02.Topchul Examples/BugReport/SwiftCombineXcode12/SwiftCombineXcode12/AppDelegate.swift:30 #26 0x0000000100612168 in @objc AppDelegate.application(_:didFinishLaunchingWithOptions:) () #27 0x00000001eb7cbca0 in -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] () #28 0x00000001eb7cd408 in -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] () #29 0x00000001eb7d2e54 in -[UIApplication _runWithMainScene:transitionContext:completion:] () #30 0x00000001eb06e93c in __111-[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:]_block_invoke () #31 0x00000001eb0775bc in +[_UICanvas _enqueuePostSettingUpdateTransactionBlock:] () #32 0x00000001eb06e5b8 in -[__UICanvasLifecycleMonitor_Compatability _scheduleFirstCommitForScene:transition:firstActivation:completion:] () #33 0x00000001eb06ef58 in -[__UICanvasLifecycleMonitor_Compatability activateEventsOnly:withContext:completion:] () #34 0x00000001eb06d058 in __82-[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:]_block_invoke () #35 0x00000001eb06cd04 in -[_UIApplicationCanvas _transitionLifecycleStateWithTransitionContext:completion:] () #36 0x00000001eb071ec4 in __125-[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:]_block_invoke () #37 0x00000001eb072e24 in _performActionsWithDelayForTransitionContext () #38 0x00000001eb071d7c in -[_UICanvasLifecycleSettingsDiffAction performActionsForCanvas:withUpdatedScene:settingsDiff:fromSettings:transitionContext:] () #39 0x00000001eb076c68 in -[_UICanvas scene:didUpdateWithDiff:transitionContext:completion:] () #40 0x00000001eb7d134c in -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] () #41 0x00000001eb3bc244 in -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] () #42 0x00000001c106c9d4 in -[FBSSceneImpl _didCreateWithTransitionContext:completion:] () #43 0x00000001c107779c in __56-[FBSWorkspace client:handleCreateScene:withCompletion:]_block_invoke_2 () #44 0x00000001c1076e94 in __40-[FBSWorkspace _performDelegateCallOut:]_block_invoke () #45 0x000000010093cdc8 in _dispatch_client_callout () #46 0x0000000100940a10 in _dispatch_block_invoke_direct () #47 0x00000001c10aba9c in __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ () #48 0x00000001c10ab728 in -[FBSSerialQueue _performNext] () #49 0x00000001c10abd44 in -[FBSSerialQueue _performNextFromRunLoopSource] () #50 0x00000001be5c60e0 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ () #51 0x00000001be5c6060 in __CFRunLoopDoSource0 () #52 0x00000001be5c5944 in __CFRunLoopDoSources0 () #53 0x00000001be5c0810 in __CFRunLoopRun () #54 0x00000001be5c00e0 in CFRunLoopRunSpecific () #55 0x00000001c0839584 in GSEventRunModal () #56 0x00000001eb7d4c00 in UIApplicationMain () #57 0x0000000100612884 in main at /Users/gregory/Documents/LocalWorks/02.Topchul Examples/BugReport/SwiftCombineXcode12/SwiftCombineXcode12/AppDelegate.swift:23 #58 0x00000001be07ebb4 in start ()There is a Combine.ObservableObject class with CustomStringConvertible, like this@available(iOS 13.0, *) class Model: ObservableObject, CustomStringConvertible { @Published var value: Bool = true static let dummy = Model() var description: String { return "\(value)" } }There is a class with static properties that init with closure.(Alamofire) / like thisopen class A { public static let a: String = { guard let info = Bundle(for: A.self).infoDictionary, let build = info["CFBundleShortVersionString"] else { return "Unknown" } return "\(build)" // <-- Crash: signal SIGABRT }() }if access class's static property, It will crash with some combine callstacks.How can I avoid crash.?SincerelyGregory J.H. Rhops.I got first runtime-error. then I add "-weak_framework SwiftUI" to OtherLinkFlags.After I encountered this issue.You can download from https://www.dropbox.com/s/m2a20szkagpeiz9/SwiftCombineXcode12.zip?dl=0
Posted Last updated
.