Custom framework naming conflicts with Apple's private frameworks

Linking a custom dynamic iOS framework named FMCoreLite was crashing the app during runtime. And the crash log has a weird information about some classes inside FindMyDevice framework.

dyld[90390]: Symbol not found: _OBJC_CLASS_$_FMPreferencesUtil
  Referenced from: <6FCA1A20-3728-39C5-BBB8-9BF918E6DC0C> /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/FindMyDevice.framework/FindMyDevice
  Expected in:     <B153C426-DA0D-3E58-A586-087B00CB9FE6> <path-to-deriveddata>/Build/Products/Debug-iphonesimulator/FMCoreLite.framework/FMCoreLite

It seems like Apple also has a private framework named FMCoreLite (https://iphonedev.wiki/index.php/PrivateFrameworks) and that is creating some conflicts. Renaming custom framework with a slight change (FMCore_Lite) in its name fixes the issue.

Is this expected to avoid naming conflicts with the private frameworks ? Is there a documentation/article available about this information ?

Don't have a link for you, but remember vaguely reading that all two caps prefixed framework names are reserved for Apple and others should use names prefixed with three or more caps letters. So a name for a non-Apple framework should be something like FMXCoreLite or something. Forgive me if this is rubbish, cannot check at this time.

Custom framework naming conflicts with Apple's private frameworks
 
 
Q