Too many classes are inaccessible

When integrating UIKit and trying to customize using existing components, too many of the components are inaccessible.

Here’s a few examples of UI Components and types that aren’t accessible when integrating via cocoapods/SPM.

  • SBUFileViewer
  • SBUUserProfileView
  • SBUFileMessageCell
  • SBUChannelSettingCell
  • Various UIImage extensions used within UIKit
  • most non-top-level classes

This makes it hard to change minor things since it requires re-implementing private classes that exist within the framework, but aren’t accessible outside of the module. For example, if one wants to override cellForRowAt to make a minor change, but still use existing components, it’s not possible since the UITableViewCell that UIKit uses is only accessible internally, not via overrides in a super class.

Since it also integrates as a static library and not source code, it’s not possible to add breakpoints and step through the UIKit code to see what’s happening.

Is there a solution to being able to make UIKit more extensible?

UIKit v2.1.13