การสร้าง J2ObjC

ข้อกำหนด

  • ระบบ Apple Mac OS X
  • Xcode เวอร์ชันล่าสุด
  • ติดตั้ง JDK JDK 11 แล้ว
  • Apache Maven
  • (แนะนำ แต่ไม่จำเป็น) แหล่งที่มาของ Google Protocol Buffer

การตั้งค่า Mac

  • ติดตั้งเครื่องมือบรรทัดคำสั่ง Xcode โดยเรียกใช้:
sudo xcode-select --install
  • เพิ่มไปยัง .bash_profile:
export JAVA_HOME=`/usr/libexec/java_home -v 11`

สร้าง Fork ของโปรเจ็กต์ J2ObjC

หากต้องการแยกโปรเจ็กต์ J2ObjC ให้เปิดหน้าหลักของโปรเจ็กต์ และคลิกปุ่ม Fork:

ส้อม

เลือกชื่อบัญชี GitHub จากนั้นระบบจะสร้างส้อมให้ในอีกสักครู่

ต่อไป ให้โคลนสำเนาของส้อมลงในระบบในเครื่องเพื่อการพัฒนา ขั้นแรก ให้คลิก [โคลนหรือดาวน์โหลดปุ่ม] จากนั้นคลิกปุ่ม "คัดลอกไปยังคลิปบอร์ด"

โคลน

จากนั้นจึงโคลนไดเรกทอรีในเครื่องด้วยคำสั่งต่อไปนี้

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

ติดตั้ง protobuf

คุณต้องติดตั้ง protobuf C++ ก่อนจึงจะสร้าง J2ObjC ได้

หากต้องการติดตั้งแพ็กเกจไบนารี protobuf ให้ใช้ Homeเพศ

brew install protobuf

คุณต้องตั้งค่า PROTOBUF_ROOT_DIR เป็นรูทที่ติดตั้ง protobuf ซึ่งโดยปกติจะเป็น /usr/local ตามค่าเริ่มต้นของ Homeบางคน เพิ่มข้อมูลต่อไปนี้ลงใน .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 full distribution (including frameworks)
make frameworks

# 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 Protocol Buffers และรันไทม์ต้องมีการติดตั้ง Protocol Buffers (อย่างน้อย 3.21.3)

  • ดาวน์โหลดซอร์สโค้ดจากรุ่น Protocol Buffers 3.21.7
  • ทำตามวิธีการติดตั้ง C++ จาก README ให้ความสำคัญกับตัวเลือก --prefix เพื่อระบุตำแหน่งที่ติดตั้ง
  • กำหนดตัวแปรสภาพแวดล้อม PROTOBUF_ROOT_DIR ให้ชี้ไปยังตำแหน่งการติดตั้ง Protocol Buffers

ฟีเจอร์ภาษาของ Post Java 8

ดูประกาศ นอกเหนือจากขั้นตอนในส่วนก่อนหน้านี้แล้ว จะต้องสร้างโมดูล JRE ด้วย JDK 11 ดังนี้

JAVA_HOME=`/usr/libexec/java_home -v 11` \
make -C jre_emul/ -f java.mk emul_module_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 เพิ่มตัวเลขเพื่อย่นระยะเวลาการสร้าง หากระบบสามารถรองรับได้ และลดจำนวนลงหากระบบล้มเหลวหากเกิดข้อผิดพลาด

สถาปัตยกรรมของผู้ประมวลผลข้อมูลอาคาร

ตั้งแต่ j2objc รุ่น 2.3 สถาปัตยกรรม iOS 32 บิต ("iphone" และ "simulator") จะไม่รวมอยู่ในการเผยแพร่แบบสาธารณะ คุณสร้าง j2objc ด้วยพารามิเตอร์เหล่านี้ได้โดยระบุตัวแปรสภาพแวดล้อม J2OBJC_ARCHS ก่อน

$ export J2OBJC_ARCHS="iphone simulator macosx iphone64 watchv7k watch64 watchsimulator simulator64"
$ make -j8 all_dist

การทดสอบนี้ยังใช้เพื่อเร่งการสร้างบิลด์ได้ด้วยการระบุสถาปัตยกรรมที่แอปต้องการเท่านั้น หากต้องการสร้างเฉพาะ iOS แบบ 64 บิต ("iphone64") และเครื่องมือจำลองที่เกี่ยวข้อง ("simulator64") เช่น ให้กำหนด J2OBJC_ARCHS="iphone64 simulator64" ก่อนที่จะเรียกใช้เครื่องมือ