CocoaPods trunk is moving to be read-only. Read more on the blog, there are 17 months to go.

iOSFakeCarrier 1.2

iOSFakeCarrier 1.2

TestsTested
LangLanguage Obj-CObjective C
License MIT
ReleasedLast Release Nov 2016

Maintained by Jindrich Sarson.



  • By
  • Jindrich Sarson

iOS Fake Carrier

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

example

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;
    /*
     dataNetworkType:
     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;

    /*
     itemIsEnabled:

     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.

Credits

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

More info also in my blog post: http://www.tappytaps.com/blog/developer/nice-status-bar-for-app-store-screenshots/