We came very close to shipping an often-crashing app due to the ergonomics of the mainInstance() function.
It's not idiomatic swift to crash instead of returning an optional or using throws, so this will easily trip up Swift developers who aren't familiar with your SDK and haven't read its source code.
Could you please consider making mainInstance() return an optional, or rename safeMainInstance to mainInstance, and rename mainInstace to unsafeMainInstance?
Thanks!