iOS 는 Target 을 사용 하여 개발 환경 을 어떻게 신속 하고 과학적 으로 구분 하 는 지 상세 하 게 설명 합 니 다.

머리말
본 고 는 주로 iOS 가 Target 을 이용 하여 개발 환경 을 구분 하 는 것 에 관 한 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 해 보 겠 습 니 다.
개발 환경 을 구분 하 는 것 은 무엇 입 니까?
요청 한 도 메 인+제3자 SDK 계 정 이 다 릅 니 다.
4.567917.요청 한 도 메 인 이름->개발 환경 과 정식 환경의 서버 와 데이터 베 이 스 는 기본적으로 동일 하지 않 기 때 문 입 니 다제3자 SDK 계 정-->제3자 SDK 는 개발 테스트 데이터 오염 방지 공식 환경 을 계 정 으로 구분 해 야 합 니 다
(푸 시+우 맹 통계 가 가장 뚜렷 한 예)이 문장의 요점:
  • Target 을 어떻게 사용 하여 개발 환경 을 구분 합 니까?
    4.567917.어떻게 1 을 바탕 으로 제3자 SDK 의 계 정 을 교묘 하 게 구분 합 니까?
    최종 목적
    포장 할 때 해당 환경의 Target 을 전환 하여 컴 파일 하면 해당 하 는 설치 패 키 지 를 얻 을 수 있 습 니 다.
    도입부:
    개발 앱 이 환경 을 구분 하 는 것 은 필수 적 인 주제 이다.개발 테스트 환경->pr 환경->생산 환경,심지어 더 많은 환경 에서 어떻게 신속하게 관리 하 는 지 는 논의 할 만 한 화제 이다.
    많은 프로젝트 들 이 이 방면 에서 좋 은 해결 방안 이 하나 도 없어 서 프로젝트 가 후반 에 이 르 렀 을 때 제3자 SDK 의 혼란 과 각 환경 간 의 상호 오염 을 초래 한 것 같다.많은 SDK 가 테스트 기의 등록 등 방안 을 미리 내 놓 았 지만 개인 적 으로 는 귀 찮 은 편 이다.그래서 우리 회 사 는 이 른 시간 에 iOS 팀 과 함께 다음 과 같은 방안 을 논의 했다.이미 우리 회사 후기 에 개 발 된 여러 앱 에서 사용 하고 있다.
    다음은 저희 회사 의 솔 루 션 을 말씀 드 리 겠 습 니 다.
    1.프로젝트 만 들 기
    2.프로젝트 의 target 을 dev 환경 으로 변경 합 니 다.

    3.제3자 플랫폼 을 관리 하 는 유형 을 구축한다.
    이 의문 이 있 으 면 괜 찮 습 니 다.절차 가 끝 난 후에 상세 하 게 설명 하 겠 습 니 다.

    4.APPStore 환경 에서 대응 하 는 Target 구축
    개발 환경의 Target 위 에 Duplicate 를 오른쪽 클릭 하여 새로운 Target 을 만 들 고 Target 이름 을 CBTDisTingGuishAppStore Environment 로 변경 합 니 다.
    5.Plist 파일 을 수정 하고 올 바른 Target 에 대응 합 니 다.
    이 때 Plist 파일 을 하나 더 만 들 었 습 니 다.다른 Target 의 Plist 파일 은 공유 하지 않 습 니 다.이 Plist 의 대응 관계 와 이름 을 수정 해 야 합 니 다.plist 이름 을 수정 할 때 Target 아래 에 있 는 plist 가 비어 있 는 것 을 발견 할 수 있 습 니 다.이 럴 때 해당 하 는 plist 파일 을 선택 할 수 있 습 니 다.
    다음은 대응 하 는 타 겟 과 Plist 파일 을 새로 만 듭 니 다.

    6.ManagerScheme
    애플 리 케 이 션 환경 을 더 잘 식별 할 수 있 도록 scheme 이름 을 수정 합 니 다.


    7.위의 절차 가 완 료 된 후에 포장 은 Target 으로 전환 하여 컴 파일 하면 해당 환경의 APP 를 얻 을 수 있다.
    (demo 에서 환경 을 전환 하여 인쇄 를 실행 하면 다른 결 과 를 얻 을 수 있 습 니 다)

    여기 서 이 방안 의 핵심 을 설명 하 겠 습 니 다.

    문건
          a.두 환경의 BundleID 에 대응 하 는 매크로 를 각각 정의 합 니 다.
          b.서로 다른 환경 에서 해당 하 는 환경 BundleID 를 가 져 올 수 있 는 매크로 를 정의 합 니 다.
          c.서로 다른 환경 에 따라 서로 다른 요청 주 소 를 정의 합 니 다.
          d.서로 다른 환경 에 따라 서로 다른 sdk 구역 을 구분 합 니 다.
    사용법:
    
    kGetuiConfig[kBundleID][@"AppID"]
    현재 APP 환경 이 테스트 환경 에 있다 고 가정
    kGetuiConfig 는 사전 입 니 다.

    kGetuiConfig[kBundleID]는 그림 사전 과 같 습 니 다.
    kGetuiConfig[kBundleID][@"AppID"]--> ebCsh9J11111111GhSZ9Hb5
    만약 네가 좀 빙빙 도 는 것 이 정상 이 라 고 생각한다 면,두 번 더 보면 알 수 있 을 것 이다.
    밟 은 구덩이 와 주의 점.
    1.제3자 SDK 가 계 정 을 등록 하려 면 BundleID 를 구분 해 야 할 때 이 럴 때 반드시 두 개의 계 정(n 개의 환경 n 개의 계 정)을 만들어 야 하고 다른 것 은 BundleID 를 구분 하지 않 아 도 되도록 두 개의 계 정 을 만들어 야 환경 을 구분 하 는 의미 가 있다.
    2.서로 다른 Target 은 서로 다른 Plist 에 대응 해 야 합 니 다.설정 이 필요 합 니 다.만약 에 잘 모 르 겠 으 면 모든 Plist 를 삭제 한 다음 에 다시 추가 하면 Target 위 에 대응 하 는 pilst 가 비어 있 을 때 설정 을 선택 할 수 있 습 니 다.
    3.새로운 종 류 를 추가 할 때 두 개의 Target 을 선택 하 세 요.

    4.Target 이 Duplicate 를 진행 할 때 모든 코드 를 복사 합 니 다.하지만 plist 는 공유 하지 않 습 니 다.
    원본 다운로드:
    github 다운로드 주소:여 기 를 클릭 하 세 요.
    로 컬 다운로드 주소:http://xiazai.jb51.net/201712/yuanma/CBTDisTingGuishDevEnvironment(jb51.net).rar
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
  • 좋은 웹페이지 즐겨찾기