XCode에서 Production/staging/develop은 Target에서 전환되고 API도 전환됩니다.

8212 단어 XcodeSwift1000 도전

XCode에서 Target에서 Production/staging/develop 전환

  • 새로운 기능은 없지만 모르는 사람에게 참고가 됐으면 한다.
  • 이보다 더 좋은 방법이 있으면 저에게 알려주세요.
  • 하고 싶은 일

  • 원본 코드에 로고가 없고 Target에서 API 등을 전환합니다=>git 관리도 차이가 없습니다!!!!!!!!
  • 새 대상 만들기

  • 기존 대상을 마우스 오른쪽 버튼으로 클릭하고 Deplicate를 누릅니다.
  • {元のプロゲクト名} copy, 따라서 Dev 또는 Stg 로 설정됩니다.
  • 플러그인 복사

  • 역시 플리스트를 새로 만들었다.너는 복제할 수도 있고, 다시 만들 수도 있다.
  • Bundle display name다른 설정등을그걸로 바꾸면 좋을 것 같다.
  • 스키마 편집

  • 관리 방안에 따른다.

  • {프로젝트 이름}copy 프로젝트를 자동으로 만들지만 - 에서 삭제합니다.
  • 그런 다음 다시 +로 추가할 경우 Dev 또는 Stg 프로젝트 이름으로 스키마를 등록할 수 있습니다.
  • shared도 검사해야 한다.
  • 연결 플러그인

  • 생성된 Target을 선택하고 build settings에서 Plist를 검색할 때 Info.plist의 Path는 {프로젝트 이름}copy입니다.plist이기 때문에 자신이 만든plist 파일로 바꾸어야 합니다.
  • 또한 매크로 변수를 추가할 수 있다고 생각합니다.
  • DEV=1STAGING=1 등을 추천합니다.
  • Plist 관리 API로 API 분리 출력

  • 이것은 완전히 나의 상황이지만 나는 API 디렉터리를 차단하고 그곳에서 API의 HOST와 버전을 관리한다.
  • 새 Plist.
  • API.plist
  • DevAPI.plit
  • 지금은 변하지 않았지만 API 버전의 v2, dev용 HOST
  • 를 쓰려면

    Config의 API입니다.읽기plist


    Config/Config.swift
    struct Config {
        static let host         = Config.plist(property: "host")
        static let version      = Config.plist(property: "version")
        static let mode         = Config.plist(property: "api")
        static let socket       = Config.plist(property: "socket")
        static let bundleID     = Bundle.main.bundleIdentifier ?? Config.host
        #if DEMO
        static let plistPath = "DemoApi"
        #elseif DEV
        static  let plistPath = "DevApi"
        #else
        static let plistPath = "Api"
        #endif
        static let realmAccessToken: String = MonaKeys().realmAccessToken() ?? ""
    
        static func plist(property: String) -> String {
            let pat = Config.plistPath
            guard let path = Bundle.main.path(forResource: pat, ofType: "plist") else { return "" }
            var dict = NSDictionary(contentsOfFile: path) as? [String: Any]
            if let string = dict?.removeValue(forKey: property) as? String {
                return string
            }
            return ""
        }
    }
    
  • 결과는 여기서 분리된 것이기 때문에 API를 Plist로 삼는 것은 의미가 크지 않다.
  • 총결산

  • 중요한 것은 Target을 전환할 수 있고 그곳에서 매크로를 사용하여 개작할 수 있다는 것이다.
  • 도 로고 등으로 전환할 수 있지만 원본 코드가 바뀌어 사라진다.
  • 또한 읽고 싶은 원본 등을 전환할 수 있기 때문에 규모가 커지면 편리하다.
  • 이상, swift 관련 기사가 많이 날아갈 것 같아서 무서웠지만 1000 좋은 도전의 일환으로 썼습니다.감사합니다.
  • 좋은 웹페이지 즐겨찾기