How to hide or remove the time from the Apple Watch status bar?
As you pointed out, trying to hide or remove the time from the status bar will get your app rejected.
There's no way to accomplish what you want to do yet, since Apple doesn't permit developers to create custom watch faces (even in watchOS 3).
Update:
For your information, the only situation when the time does not appear on the status bar is when a modal presentation has both a left AND a right bar button title. This usually does not occur, but will happen during dictation -- the text input controller shows a Cancel button on the left and a Done button on the right of the status bar.
While hacking the bar titles (or using a private API) wouldn't get your app approved, you might look into a way of "hiding" the status bar itself, or the right title of any other modal view which doesn't happen to show the time.
I'm only pointing these things out in case you simply wanted to make a particular app for your own use. Since Apple will reject apps which violate their requirements, I wouldn't encourage you to waste your time trying to make an app which you know would get rejected.
This is GaétanZ's answer using Swift and Dynamic. (watchOS 7+)
let app = Dynamic.PUICApplication.sharedPUICApplication()
app._setStatusBarTimeHidden(true, animated: false, completion: nil)
This is using a private API, avoid using it in apps intended for the App Store. However, there is a trick...
The only App Store app that I know of and does hide the clock is Clockology. It uses a .clock file obtainable from an outside source and that .clock file makes the clock in the corner invisible (possibly by calling a function already existing in the app, containing code similar to the one above).
@Jesús A. Álvarez's answer did not work for me on watchOS 6. I used instead:
@interface PUICApplication : NSObject
+ (instancetype)sharedPUICApplication;
- (void)_setStatusBarTimeHidden:(_Bool)arg1 animated:(_Bool)arg2 completion:(void (^)(void))arg3;
@end
@implementation TSWatchKitExtension
+(void)hideClockTime {
PUICApplication * application = [NSClassFromString(@"PUICApplication") sharedPUICApplication];
[application _setStatusBarTimeHidden:YES
animated:NO
completion: nil];
}
@end
Ofc don't try to use it in production.