요구사항
- Apple Mac OS X 시스템
- 최신 버전의 Xcode
- JDK JDK 17 설치됨
- Apache Maven
- (권장되지만 필수는 아님) Google 프로토콜 버퍼 소스
Mac 설정
- 다음을 실행하여 Xcode 명령줄 도구를 설치합니다.
sudo xcode-select --install.bash_profile에 추가합니다.
export JAVA_HOME=`/usr/libexec/java_home -v 17`- Maven이 설치되어 있지 않은 경우 (터미널에서
mvn -version시도) Homebrew를 사용합니다.
brew install mavenJ2ObjC 프로젝트 포크 만들기
J2ObjC 프로젝트를 포크하려면 기본 페이지를 열고 포크 버튼을 클릭합니다.

GitHub 계정 이름을 선택하면 몇 초 후에 포크가 생성됩니다.
다음으로 개발을 위해 포크의 사본을 로컬 시스템에 클론합니다. 먼저 [복제 또는 다운로드 버튼]을 클릭한 다음 클립보드로 복사 버튼을 클릭합니다.

그런 다음 로컬 디렉터리로 클론합니다.
git clone (Command-V) # Paste the copied URLprotobuf 및 abseil 설치
J2ObjC를 빌드하려면 protobuf C++이 설치되어 있어야 합니다.
protobuf 바이너리 패키지를 설치하려면 Homebrew를 사용하세요.
brew install protobuf이제 Protobuf C++ 빌드가 Abseil 라이브러리에 종속되므로 다음을 설치하세요.
brew install abseilPROTOBUF_ROOT_DIR를 protobuf가 설치된 루트로 설정해야 합니다.
일반적으로 Homebrew 기본값인 /usr/local입니다. .bash_profile에 다음을 추가합니다.
export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir확인하려면 $PROTOBUF_ROOT_DIR/bin/protoc --version를 실행합니다.
J2ObjC 빌드
터미널 창의 명령줄에서 빌드하려면 다음을 실행합니다.
# Build just the translator and librariesmake dist# Build the protocol buffer compiler and runtime for J2ObjCmake protobuf_dist# Build everything that is included in the project's distribution bundlesmake all_dist
J2ObjC 테스트
터미널 창의 명령줄에서 테스트하려면 다음을 실행하세요.
# Run translator and library unit testsmake test# Run all unit tests, including for protocol buffersmake test_all
빌드 정리
# Remove all files generated by the buildmake clean
병렬 빌드
J2ObjC 빌드는 -j<n> 플래그를 사용하여 지정된 병렬 빌드를 지원합니다. 여기서 n은 동시 작업의 최대 수입니다. 최댓값은 시스템 속도에 따라 달라지며 -j4로 시작하는 것이 좋습니다.
시스템에서 처리할 수 있는 경우 빌드 시간을 단축하기 위해 숫자를 늘리고 시스템 오류로 인해 make가 실패하는 경우 숫자를 줄입니다.
32비트 iOS 아키텍처 빌드
32비트 iOS 아키텍처 ('iphone' 및 'simulator')는 기본적으로 빌드되지 않습니다. J2OBJC_ARCHS 환경 변수에 먼저 지정하여 이를 사용하여 j2objc를 빌드할 수 있습니다.
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
지원되는 아키텍처의 하위 집합을 지정하면 앱에 필요한 아키텍처만 지정하여 일반적으로 로컬 빌드 속도를 높일 수 있습니다.
예를 들어 64비트 iOS ('iphone64') 및 관련 시뮬레이터('simulator64')만 빌드하려면 make를 실행하기 전에 J2OBJC_ARCHS="iphone64 simulator64"를 정의합니다.
전체 배포 빌드
j2objc팀은 파일 크기 제한으로 인해 더 이상 미리 빌드된 배포를 GitHub에 게시하지 않지만 '한 단계로 모든 항목 빌드' 스크립트는 계속 사용할 수 있습니다.
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
이 스크립트는 모든 j2objc 패키지의 모든 아키텍처가 빌드되므로 실행하는 데 시간이 오래 걸립니다. 하지만 일반적인 빌드 실패가 있는 경우 최소한의 환경 변수 집합으로 빌드하므로 매우 유용합니다. build_distribution 스크립트는 성공했지만 일반 빌드 단계가 실패하면 로컬 환경 변수가 잘못 설정되었는지 검토하세요.