การสร้าง J2ObjC

ข้อกำหนด

  • ระบบ 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 ทำงานสำเร็จ แต่ขั้นตอนการสร้างปกติไม่สำเร็จ ให้ตรวจสอบว่ามีการกําหนดตัวแปรสภาพแวดล้อมในเครื่องไม่ถูกต้องหรือไม่