Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Management of Environment Variables with YAMLs ...

Management of Environment Variables with YAMLs Ver.2

417.72KI

May 15, 2019
Tweet

More Decks by 417.72KI

Other Decks in Programming

Transcript

  1. struct Me { let name = "Takuhiro Muta" let aka

    = "417.72KI" let company = "iRidge inc." let twitter = "417_72ki" let qiita = "417_72ki" let gitHub = "417-72KI" let experience = [ "iOS": "7 years?", "Android": "4 years?" ] let products = [ "BuildConfig.swift", "MockUserDefaults", ] } TFMGEFTDSJQUJPO
  2. #

  3. CVJMEHSBEMF buildTypes { debug { buildConfigField 'boolean', 'ACCESS_LOG', 'false' buildConfigField

    'String', 'WEBAPI_URL', '"http://dev.example.com/api/"' } release { buildConfigField 'boolean', 'ACCESS_LOG', 'true' buildConfigField 'String', 'WEBAPI_URL', '"http://example.com/api/"' } }
  4. #VJME$POpHKBWB EFCVH public final class BuildConfig { public static final

    boolean DEBUG = Boolean.parseBoolean(“true"); ɾ ɾ ɾ // Fields from build type: debug public static final boolean ACCESS_LOG = false; public static final String WEBAPI_URL = "http://dev.example.com/api/"; }
  5. #VJME$POpHKBWB SFMFBTF public final class BuildConfig { public static final

    boolean DEBUG = false; ɾ ɾ ɾ // Fields from build type: release public static final boolean ACCESS_LOG = true; public static final String WEBAPI_URL = "http://example.com/api/"; }
  6. 4PVSDF:".-T is_debug: true cognito: provider_key: DevHogeProvider client_id: devhogeclient pool_id: ap-northeast-devhoge

    region_name: ap-northeast-1 CBTFZNM DPHOJUPZNM web_front: terms: https://dev.~ faq: https://dev.~ privacy: https://dev.~ XFC@GSPOUZNM is_debug: false cognito: provider_key: HogeProvider client_id: hogeclient pool_id: ap-northeast-hoge region_name: ap-northeast-1 web_front: terms: https://prod.~ faq: https://prod.~ privacy: https://prod.~ FOWQSPEVDUJPOZNM
  7. 3VO4DSJQU if [ "${CONFIGURATION}" = 'Release' ]; then ENVIRONMENT='production' elif

    [ "${CONFIGURATION}" = 'AdHoc' ]; then ENVIRONMENT='staging' else ENVIRONMENT='development' fi ${PODS_ROOT}/BuildConfig.swift/buildconfigswift -o ${SRCROOT}/Libs/BuildConfig_swift -e $ENVIRONMENT ${SRCROOT}/Resources/Config
  8. 3VO4DSJQU if [ "${CONFIGURATION}" = 'Release' ]; then ENVIRONMENT='production' elif

    [ "${CONFIGURATION}" = 'AdHoc' ]; then ENVIRONMENT='staging' else ENVIRONMENT='development' fi ${PODS_ROOT}/BuildConfig.swift/buildconfigswift -o ${SRCROOT}/Libs/BuildConfig_swift -e $ENVIRONMENT ${SRCROOT}/Resources/Config 4FUFOWJSPONFOUDPSSFTQPOEJOHUP#VJME$POpHVSBUJPO
  9. 3VO4DSJQU if [ "${CONFIGURATION}" = 'Release' ]; then ENVIRONMENT='production' elif

    [ "${CONFIGURATION}" = 'AdHoc' ]; then ENVIRONMENT='staging' else ENVIRONMENT='development' fi ${PODS_ROOT}/BuildConfig.swift/buildconfigswift -o ${SRCROOT}/Libs/BuildConfig_swift -e $ENVIRONMENT ${SRCROOT}/Resources/Config 4FUPVUQVUEJSFDUPSZ
  10. 3VO4DSJQU if [ "${CONFIGURATION}" = 'Release' ]; then ENVIRONMENT='production' elif

    [ "${CONFIGURATION}" = 'AdHoc' ]; then ENVIRONMENT='staging' else ENVIRONMENT='development' fi ${PODS_ROOT}/BuildConfig.swift/buildconfigswift -o ${SRCROOT}/Libs/BuildConfig_swift -e $ENVIRONMENT ${SRCROOT}/Resources/Config 4FUEJSFDUPSZDPOUBJOTSFTPVSDF:".-T
  11. #VJME$POpHHFOFSBUFETXJGU struct BuildConfig: Codable { static let `default`: BuildConfig =

    .load() let cognito: Cognito let isDebug: Bool let webFront: WebFront } extension BuildConfig { struct Cognito: Codable { let clientId: String let poolId: String let providerKey: String let regionName: String } } extension BuildConfig { struct WebFront: Codable { let faq: String let privacy: String let terms: String } }
  12. #FGPSF let urlString = Bundle.main .object(forInfoDictionaryKey: "WebFrontURL_FAQ") as! String let

    url = URL(string: urlString) webView.load(URLRequest(url: url))