Skip to content
No description, website, or topics provided.
Objective-C Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

iOS Fake Carrier

The purpose of this small class is to make a perfect status bar for your App Store screenshots.


How to use - quick start

The easiest way is to use CocoaPods - simply install iOSFakeCarrier pod into your project. Then in applicationDidFinishLaunching add this sniplet:

    NSDateComponents* dateCom = [[NSDateComponents alloc] init];
    dateCom.hour = 13;
    dateCom.minute = 22;
    [XCDFakeCarrier setLocalizedStatusBarWithTime:dateCom];

This will set time in the status bar to 13:22 (or 1:22 pm if you are in the US). The time is localized - based on your language settings. This setLocalizedStatusBarWithTime also automatically adds carrier name based on language settings - for example in the USA it is AT&T, in Germany T-Mobile DE and so on. Feel free to create pull request with carrier info for other countries / languages, there is only few of them now.

Additinal methods

You can use additional methods to fine tune your status bar. There are methods like:

	// status bar customizations
	/* 0 to 5 */
	+ (void)setCellStrength:(int)cellStrength;

	/* 0 to 3 */
	+ (void)setWiFiStrength:(int)wifiStrength;
	 0 - GPRS
	 1 - E (EDGE)
	 2 - 3G
	 3 - 4G
	 4 - LTE
	 5 - Wi-Fi
	 6 - Personal Hotspot
	 7 - 1x
	 8 - Blank
	+ (void)setNetworkType:(int)networkType;

	 1 - do not disturb
	 2 - airplane mode
	 3 - cell signal strength indicator
	 6 - show time on right side
	 10 - strange battery symbol
	 11 - Bluetooth
	 12 - strange telephone symbol
	 13 - alarm clock
	 13 - slanted plus sign
	 16 - location services
	 17 - orientation lock
	 19 - AirPlay
	 20 - microphone
	 21 - VPN
	 22 - forwarded call?
	 23 - spinning activity indicator	

	 24 - square
	+ (void)setEnabled:(BOOL)enabled atIndex:(NSInteger)index;

	 Sets carrier to specific string 
	+ (void)setFakeCarrier:(NSString*) newCarrier;

	 Sets time info to specific string
   + (void)setFakeTime:(NSString*) newFakeTime;

Don't forget...

To remove this module from production build. Not only your customers will not be happy with status bar with strange carrier info and "frozen" wrong time, but it will also hardly goes through App Store review. We added compilation warning, when this class is used. Ideally, create different target for screenshot creation or at least IFDEF this class.

Carrier info for my country is not included?

Feel free to add a new language to the project and then add fakeCarrier key to FakeiOSLocalized.strings. New country will be supported in a new release after merging the pull request.


The core of the status bar code was used from Copyright (c) 2012-2013 Cédric Luthi / @0xced. I also used modified version with additional methods from and fixed it to work with the latest iOS.

More info also in my blog post:

You can’t perform that action at this time.