J2ObjC 빌드

요구사항

  • Apple Mac OS X 시스템
  • 최신 버전의 Xcode
  • JDK JDK 11이 설치됨
  • Apache Maven
  • (권장사항이지만 필수는 아님) Google 프로토콜 버퍼 소스

Mac 설정

  • 다음을 실행하여 Xcode 명령줄 도구를 설치합니다.
sudo xcode-select --install
  • .bash_profile에 추가합니다.
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  • Maven이 설치되어 있지 않으면 (터미널에서 mvn -version을 실행해 보세요) Homebrew를 사용합니다.
brew install maven

J2ObjC 프로젝트의 포크 만들기

J2ObjC 프로젝트를 포크하려면 기본 페이지를 열고 포크 버튼을 클릭합니다.

포크

GitHub 계정 이름을 선택하면 몇 초 내에 포크가 생성됩니다.

그런 다음 개발을 위해 포크 사본을 로컬 시스템에 클론합니다. 먼저 [복제 또는 다운로드 버튼]을 클릭한 다음 클립보드에 복사 버튼을 클릭합니다.

클론

그런 다음 로컬 디렉터리에 클론합니다.

git clone (Command-V)  # Paste the copied URL

protobuf 및 abseil 설치

J2ObjC를 빌드하려면 protobuf C++가 설치되어 있어야 합니다.

protobuf 바이너리 패키지를 설치하려면 Homebrew를 사용하세요.

brew install protobuf

이제 Protobuf C++ 빌드가 Abseil 라이브러리에 종속되므로 이를 함께 설치합니다.

brew install abseil

PROTOBUF_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 libraries
make dist

# Build the protocol buffer compiler and runtime for J2ObjC
make protobuf_dist

# Build everything that is included in the project's
distribution bundles
make all_dist

J2ObjC 테스트

터미널 창의 명령줄에서 테스트하려면 다음을 실행합니다.

# Run translator and library unit tests
make test

# Run all unit tests, including for protocol buffers
make test_all

빌드 정리

# Remove all files generated by the build
make 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 스크립트는 성공했지만 일반 빌드 단계는 실패하는 경우 로컬 환경 변수가 잘못 설정되었는지 검토합니다.