---
title: "Azure CI/CD iOS 연동"
description: "DoveRunner Mobile App Security SDK를 Azure DevOps Pipelines에 연동하여 iOS 앱 보안 처리를 자동화하는 방법을 알아보세요."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

import { Aside, Steps } from '@astrojs/starlight/components';

이 가이드는 Azure DevOps Pipelines로 관리되는 iOS 프로젝트에 DoveRunner Mobile App Security SDK를 적용하는 방법을 설명합니다. 지원하는 프로젝트 유형은 다음과 같습니다:

- Xcode 기본 프로젝트 (Swift / Objective-C)
- Flutter
- Ionic / Cordova
- React Native

준비 단계는 모든 플랫폼에서 동일합니다. 빌드 스크립트는 플랫폼별로 다르며, SDK 패키지에 포함된 `AzureScripts.txt`에서 해당 스크립트를 확인할 수 있습니다.

---

## Step 1 — 인증서 및 프로파일 준비

DoveRunner SDK는 `generate_hash` 실행 중 IPA를 재서명합니다. 따라서 파이프라인을 설정하기 전에 배포 인증서와 프로비저닝 프로파일을 소스 저장소에 미리 포함시켜야 합니다.

### 키체인에서 P12 인증서 내보내기

<Steps>

1. **키체인 접근**을 실행합니다 (런치패드 → 기타 → 키체인 접근). 왼쪽 패널에서 **로그인**을 선택합니다.

   ![Keychain Access login](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-I.png)

2. 상단 탭에서 **내 인증서**를 선택하고, App Store 배포 인증서를 찾아 선택합니다.

   ![My Certificates](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-II.png)

3. 인증서를 마우스 오른쪽 버튼으로 클릭하고 **내보내기…** 를 선택합니다.

   ![Export certificate](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-III.png)

4. 저장 위치를 프로젝트 폴더로, 파일 이름을 `distribution.p12`로, 파일 형식을 **개인정보 교환(.p12)** 으로 설정합니다.

   ![Save as P12](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-IV.png)

5. **저장**을 클릭하고 비밀번호를 설정합니다. 이 비밀번호는 다음 단계에서 파이프라인 변수(`CERTIFICATE_PASSWORD`)로 등록하므로 반드시 기록해 두세요.

</Steps>

### 프로비저닝 프로파일 추가

Apple Developer 사이트에서 다운로드한 App Store 배포용 프로비저닝 프로파일을 프로젝트 폴더에 배치합니다. 파일명은 반드시 **`profile.mobileprovision`** 이어야 합니다.

<Aside type="caution">
파일명이 올바르지 않거나 프로파일이 맞지 않으면 재서명이 실패하거나 앱이 정상적으로 설치되지 않을 수 있습니다.
</Aside>

두 파일을 추가한 후 소스 저장소에 푸시합니다. 이 단계를 완료하기 전까지 Azure 파이프라인은 정상적으로 빌드되지 않습니다.

---

## Step 2 — Azure DevOps 변수 설정

<Steps>

1. Azure DevOps에서 프로젝트를 열고, 활성 파이프라인으로 이동한 뒤 오른쪽 상단의 **Variables** 버튼을 클릭합니다.

   ![Pipeline Variables button](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-V.png)

2. **New Variable**를 클릭하여 다음 변수를 하나씩 추가합니다:

   | 변수 | 값 |
   | :--- | :- |
   | `APPLE_ID` | Apple 계정 이메일 |
   | `APP_SPECIFIC_PASSWORD` | 앱 전용 비밀번호 |
   | `CERTIFICATE_PASSWORD` | P12 인증서 내보내기 시 설정한 비밀번호 |
   | `TEAM_ID` | Apple Developer Team ID |
   | `PROVISIONING_PROFILE_NAME` | 배포에 사용하는 프로비저닝 프로파일 이름 |

   ![Adding APPLE_ID variable](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-VI.png)

3. `APP_SPECIFIC_PASSWORD`와 `CERTIFICATE_PASSWORD`는 **값 비밀 유지**를 활성화하여 파이프라인 로그에 값이 노출되지 않도록 합니다.

   ![Secret variables](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-VII.png)

   <Aside type="tip">
   앱 전용 비밀번호가 없다면 [appleid.apple.com](https://support.apple.com/en-gb/102654)에서 생성할 수 있습니다.
   </Aside>

4. 5개 변수가 모두 올바르게 등록됐는지 확인합니다.

   ![All variables registered](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-VIII.png)

</Steps>

---

## Step 3 — Azure 빌드 스크립트 수정

Azure DevOps 파이프라인 편집기에서 직접 수정하거나, 저장소의 YAML 파일을 편집합니다.

![Pipeline editor](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-IX.png)

기존 YAML 내용을 SDK 패키지에 포함된 스크립트로 교체합니다:

- **Xcode 기본 프로젝트** — `Fastlane Scripts/azure-pipeline.yml`의 스크립트 사용
- **Flutter / Ionic / Cordova / React Native** — `AzureScripts.txt`의 플랫폼별 스크립트 사용

스크립트에서 다음 값을 실제 프로젝트에 맞게 수정합니다:

| 항목 | 설명 |
| :--- | :--- |
| `trigger` → `branches` | 파이프라인 빌드를 트리거하는 브랜치 이름 |
| Agent pool name | Azure 파이프라인 에이전트 풀 이름 |

수정된 YAML을 저장소에 푸시하면 DoveRunner Mobile App Security SDK가 적용된 상태로 파이프라인이 실행됩니다.

![Build in progress](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-X.png)

![Build completed](https://appsealing-docs.s3.ap-northeast-1.amazonaws.com/common/Image-ios-XI.png)

파이프라인이 성공적으로 완료되면 IPA에 DoveRunner Mobile App Security가 적용된 상태로 App Store Connect에 업로드됩니다. TestFlight 테스트 또는 App Store 제출을 진행할 수 있습니다.