요구사항
- 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 스크립트는 성공했지만 일반 빌드 단계는 실패하는 경우 로컬 환경 변수가 잘못 설정되었는지 검토합니다.