Skip to content

Commit

Permalink
[수정] using_xcodebuild.md 내용 업데이트
Browse files Browse the repository at this point in the history
  • Loading branch information
x-0o0 authored Nov 4, 2023
1 parent 340ed19 commit c06c478
Showing 1 changed file with 18 additions and 11 deletions.
29 changes: 18 additions & 11 deletions using_xcodebuild.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

`xcodebuild docbuild` 로 doccarchive 파일 추출 및 정적 웹 호스팅을 위한 형태로 변형하는 과정을 담았습니다.

## 서론
## 1. 배경 및 목적

`docc-plugin` 의 경우 mac 으로 빌드하고 build destination 을 변경할 수 없습니다.
build destination 을 변경하고자 하는 경우 `xcodebuild` 커맨드라인툴의 `docbuild` 명령어를 사용해야합니다.
`docc-plugin` 의 경우 빌드 대상(build destination)이 macOS 으로 고정되어 있고 다른 대상으로 변경할 수 없습니다.
빌드 대상을 변경하고자 하는 경우 `xcodebuild` 커맨드라인 도구(Command Line Tool)의 `docbuild` 명령어를 사용해야합니다.

## 방법
이 문서에서 `xcodebuild` 커맨드라인 도구를 사용해서 빌드 대상을 iOS 로 변경하여 DocC 프레임워크 기반 개발문서를 아카이브하고 더 나아가 정적 웹호스팅을 위한 형태로 변형하는 과정을 다뤄보겠습니다.

### 1. 문서 아카이브 파일 생성 (`.doccarchive`)
## 2. 진행 방법과 결과 데이터

### 2.1. 문서 아카이브 파일 생성 (`.doccarchive`)

```bash
xcodebuild docbuild -scheme BoxOffice \
Expand All @@ -24,8 +26,11 @@ xcodebuild docbuild -scheme BoxOffice \
| `-derivedDataPath {아카이브저장위치}` | 저장 위치. 필수는 아니지만 이 옵션을 포함하면 `.doccarchive` 번들을 찾을 때 용이. | `-derivedDataPath /tmp/docbuild` |
| `-destination {플랫폼}` | 빌드 destination | `-destination 'generic/platform=iOS'` |

> **Tip**
>
> `-destination` 옵션 설정 시 `generic/platform=iOS` 에서 `generic` 을 제외시키면 모든 iOS 시뮬레이터로 빌드하기 때문에 긴 빌드 시간이 > 소요되었습니다. 따라서 특정 시뮬레이터들을 돌려야 하는 경우가 아니면 `generic` 을 포함시키는 것이 좋습니다.
### 2. 정적 호스팅을 위한 형태로 변형 (`/docs`)
### 2.2. 정적 호스팅을 위한 형태로 변형 (`/docs`)

```bash
$(xcrun --find docc) process-archive \
Expand All @@ -42,14 +47,16 @@ $(xcrun --find docc) process-archive \
| `--hosting-base-path {호스팅경로}` | 호스팅할 주소의 base 경로 값. 깃헙페이지의 경우 레포지토리 이름. | `--hosting-base-path my-repository-name` |
| `--output-path {결과물저장위치} | 결과물 저장 위치. (`/docs` 로 하는 것을 권장) | `--output-path ./docs` |

### 결과
### 2.3. 빌드 결과물 처리

`/docs` 경로에 웹 호스팅이 가능한 파일들이 위치한 것을 알 수 있습니다. [방법1](#1-문서-아카이브-파일-생성-doccarchive)[방법2](#2-정적-호스팅을-위한-형태로-변형-docs) 의 명령어들을 `.sh` 스크립트 파일로 저장해두면 GitHub Actions 로 배포<sup>[3](#footnote_3)</sup>할 때 용이합니다.

## 결론

`/docs` 경로에 웹 호스팅이 가능한 파일들이 위치한 것을 알 수 있습니다. [방법1](#1-문서-아카이브-파일-생성-doccarchive)[방법2](#2-정적-호스팅을-위한-형태로-변형-docs) 의 명령어들을 `.sh` 스크립트 파일로 저장해두면 GitHub Actions 로 배포<sup>[3](#footnote_3)</sup>할 때 용이하다.
`xcodebuild` 커맨드라인도구에도 docc 에 대한 명령어들이 있어 문서를 빌드하고, 아카이브 파일을 정적 웹호스팅을 위한 형태로 변형할 수 있습니다.

## 고찰
`docc-plugin` 에서는 macOS로 고정되어 있는 빌드 대상을 변경할 수 없는 반면 `xcodebuild` 는 빌드 대상을 바꿀 수 있기 때문에 macOS 가 아닌 다른 플랫폼(예: iOS)만 지원하는 스위프트 패키지의 경우 `xcodebuild` 커맨드라인 도구를 사용하여 문서를 빌드할 수 있습니다.

`-destination` 옵션 설정 시 `generic/platform=iOS` 에서 `generic` 을 제외시키면 모든 iOS 시뮬레이터로 빌드하기 때문에 긴 빌드 시간이 소요되었다.
따라서 특정 시뮬레이터들을 돌려야 하는 경우가 아니면 `generic` 을 포함시키는 것이 좋다.

## 참고문헌

Expand Down

0 comments on commit c06c478

Please sign in to comment.