# INLConfig
**Repository Path**: mirrors_inloop/INLConfig
## Basic Information
- **Project Name**: INLConfig
- **Description**: An iOS library for loading your configuration from a plist that supports automatic code generation for supporting code and remote updates
- **Primary Language**: Unknown
- **License**: CC0-1.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-09-25
- **Last Updated**: 2026-03-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# INLConfig
## 1. Overview
`INLConfig` is an iOS library for loading your configuration from a plist. Its goal is to have an easily maintainable configuration (by replacing things like global constants with a plist) without sacrificing productivity. After you add an item to the plist, you can start using it with autocomplete without doing any further configuration. This is achieved by a script that generates supporting code. The library also supports remote updates.
The library contains the `INLConfig` class that extracts your configuration from the plist and the `genconfig` script generates `INLConfig` categories/extensions for easy access to the items in the plist.
## 2. Setup
First, add a plist configuration file.
To enable code generation add a new Run script build phase. For each of your configuration plists run the `genconfig` script with two parameters: 1. the name of the configuration file without the .plist extension, 2. the programming language that should be generated (--objC and --swift are supported)
```
./Pods/INLConfig/genconfig SampleConfig --objC
./Pods/INLConfig/genconfig AnotherConfig --swift
```
After you build the project (cmd+B) a finder window will open with the created configuration files. Drag them into Xcode.
You can even move them into a different directory as long as it’s a subdirectory of the project source directory. In this case the script will not create new files but update the existing ones.
_Note: Do not modify the code in the generated files because it will be overwritten when the script is run again_
You can now use the configuration in your code
```
// swift file, swift config
INLConfig.sampleConfig.sampleString
INLConfig.sampleNumber
// swift file, objC config
INLConfig.sampleConfig().sampleString()
INLConfig.sampleNumber()
// objC file
[[INLConfig sampleConfig] sampleString];
[INLConfig sampleNumber];
```
## 3. Remote configuration update
The configuration can be updated to a newer version if the configuration file specifies the INLMeta dictionary. The dictionary should contain a “config” attribute containing an url for the configuration file and optionally a “version” attribute containing a url for a version file.
```
INLMeta
config
https://an.url/SampleConfig.plist
version
https://an.url/version.txt
```
The update is triggered by calling `updateConfig()`
```
INLConfig.sampleConfig.updateConfig {
// update successful
}
```