In the meantime to grabbing a few more forum points🙂, I experimented a little in XCode 8.3 playground. But probably you have already investigated.
if replaced the os_log call with :
os_log("Paper is useless in our modern world!", dso: nil, log: MyViewController.ui_log, type: .info)
then the symbol not found error disappeared (becasue default value #dsohandle is no more assigned), but playground crashes on
PlaygroundPage.current.liveView = MyViewController()
Tested with:
var dso: UnsafeRawPointer? = #dsohandle
os_log("Paper is useless in our modern world!", dso: dso, log: MyViewController.ui_log, type: .info)
same symbol not found error, because of the first line (commenting out the second line does not eliminate the error)
Playground execution failed: error: Couldn't lookup symbols:
___dso_handle
Just to check, I tried with :
os_log("Paper is useless in our modern world!", dso: __DSO_HANDLE__, log: MyViewController.ui_log, type: .info)
Error message is
__DSO_HANDLE__ has been replaced with #dsohandle in Swift 3
which shows the symbol is known.
A minimal conclusion: problem is not new in XCode9, did exist in 8.3