Skip to content

lucasmedeirosleite/CMEnvironment

Repository files navigation

CMEnvironment

This project brings the idea of Environment variables to your iOS project in a nicely way.

##Contact:

Developed by Lucas Medeiros and Alisson Sales at Codeminer42 in Fortaleza

Follow us on twitter: @Codeminer42

Development requirements

Install cocoapods

To install cocoapods you will need ruby.

gem install cocoapods

More information about cocoapods:

CocoaPods

Add the dependency to your Podfile:

platform :ios
pod 'CMEnvironment'
...

Run pod install to install the dependencies.

Setup

  • On your App-info.plist under the Information Property List put a key called Configuration with value ${CONFIGURATION}

  • Create files Debug.plist, Release.plist, Adhoc.plist under the root path of your app

  • Put your configuration values on your plists

  • In your code create an objective-c class that inherits from CMEnvironment and create properties with the same key name of your plists keys

  • See the example code

Usage

Inherit from CMEnvironment class and create properties with the same name of the key attribute of your plist. For example:

  • If you have, on your Environment.plist, a key named baseURL with the value https://api.app.com, you can do this:
#import "CMEnvironment.h"

@interface CMAppEnvironment : CMEnvironment

@property (nonatomic, copy) NSString *baseURL;

@end
  • The class and its methods:
@interface CMEnvironment : NSObject

@property (nonatomic, copy) NSString *name;

+ (id) sharedInstance; //returns a singleton instance using the application main bundle
- (id)initWithBundle:(NSBundle *)bundle;
- (BOOL)isDebug;
- (BOOL)isRelease;
- (void)changeToEnvironmenNamed:(NSString *)environment;

@end

Requirements

CMEnvironment requires iOS 5.x or greater.

The idea

The idea came from this post by Rob Pak.

License

Usage is provided under the MIT License. See LICENSE for the full details.