iOS 는 Target 을 사용 하여 개발 환경 을 어떻게 신속 하고 과학적 으로 구분 하 는 지 상세 하 게 설명 합 니 다.
4475 단어 iostarget개발 환경 을 구분 하 다
본 고 는 주로 iOS 가 Target 을 이용 하여 개발 환경 을 구분 하 는 것 에 관 한 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 더 이상 할 말 이 없 으 니 상세 한 소 개 를 해 보 겠 습 니 다.
개발 환경 을 구분 하 는 것 은 무엇 입 니까?
요청 한 도 메 인+제3자 SDK 계 정 이 다 릅 니 다.
4.567917.요청 한 도 메 인 이름->개발 환경 과 정식 환경의 서버 와 데이터 베 이 스 는 기본적으로 동일 하지 않 기 때 문 입 니 다제3자 SDK 계 정-->제3자 SDK 는 개발 테스트 데이터 오염 방지 공식 환경 을 계 정 으로 구분 해 야 합 니 다
(푸 시+우 맹 통계 가 가장 뚜렷 한 예)이 문장의 요점:
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
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.