ข้อกำหนด
- ระบบ Apple Mac OS X
- Xcode เวอร์ชันล่าสุด
- ติดตั้ง 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
คุณต้องติดตั้ง protobuf C++ ก่อนจึงจะสร้าง J2ObjC ได้
หากต้องการติดตั้งแพ็กเกจไบนารี protobuf ให้ใช้ Homebrew โดยทำดังนี้
brew install protobuf
ตอนนี้บิลด์ Protobuf C++ ขึ้นอยู่กับไลบรารี Abseil ดังนั้นให้ติดตั้งไลบรารีดังกล่าวด้วย
brew install abseil
คุณต้องตั้งค่า PROTOBUF_ROOT_DIR
เป็นรูทที่ติดตั้ง protobuf
โดยปกติแล้ว /usr/local
จะเป็นค่าเริ่มต้นของ Homebrew เพิ่มข้อมูลต่อไปนี้ลงใน
.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 รองรับบิลด์แบบขนาน ซึ่งระบุโดยใช้ Flag -j<n>
โดยที่ n คือจํานวนงานสูงสุดที่เกิดขึ้นพร้อมกัน ค่าสูงสุดจะขึ้นอยู่กับความเร็วของระบบ เราขอแนะนำให้เริ่มต้นด้วย -j4
เพิ่มจำนวนเพื่อลดเวลาในการสร้างหากระบบของคุณรองรับ และลดจำนวนลงหาก make ล้มเหลวเนื่องจากข้อผิดพลาดของระบบ
การสร้างสถาปัตยกรรม iOS แบบ 32 บิต
ระบบจะไม่สร้างสถาปัตยกรรม iOS 32 บิต ("iphone" และ "simulator") โดยค่าเริ่มต้น คุณสามารถสร้าง j2objc โดยใช้สิ่งเหล่านี้ได้โดยระบุไว้ในตัวแปรสภาพแวดล้อม J2OBJC_ARCHS ก่อน
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
โดยทั่วไป การระบุชุดย่อยของสถาปัตยกรรมที่รองรับสามารถใช้เพื่อเร่งความเร็วการสร้างในเครื่องได้ โดยระบุเฉพาะสถาปัตยกรรมที่แอปของคุณต้องใช้
หากต้องการสร้างเฉพาะ iOS 64 บิต ("iphone64") และโปรแกรมจำลองที่เกี่ยวข้อง ("simulator64") ให้กำหนด J2OBJC_ARCHS="iphone64 simulator64"
ก่อนเรียกใช้ make
การสร้างการเผยแพร่แบบสมบูรณ์
แม้ว่าทีม j2objc จะไม่โพสต์การแจกจ่ายที่สร้างไว้ล่วงหน้าไปยัง GitHub อีกต่อไปเนื่องจากข้อจำกัดด้านขนาดไฟล์ แต่สคริปต์ "สร้างทุกอย่างในขั้นตอนเดียว" ยังคงใช้งานได้ ดังนี้
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
สคริปต์นี้ใช้เวลาในการเรียกใช้นานเนื่องจากมีการบิลด์สถาปัตยกรรมทุกรูปแบบสำหรับแพ็กเกจ j2objc ทุกรายการ อย่างไรก็ตาม ตัวเลือกนี้จะมีประโยชน์มากหากการบิลด์ทั่วไปล้มเหลว เนื่องจากจะสร้างโดยใช้ชุดตัวแปรสภาพแวดล้อมขั้นต่ำเท่านั้น หากสคริปต์ build_distribution ทำงานสำเร็จ แต่ขั้นตอนการสร้างปกติไม่สำเร็จ ให้ตรวจสอบว่ามีการกําหนดตัวแปรสภาพแวดล้อมในเครื่องไม่ถูกต้องหรือไม่