الزامات
- سیستم عامل اپل مک او اس ایکس
- آخرین نسخه Xcode
- JDK 21 نصب شده است
- آپاچی ماون
- (توصیه میشود اما الزامی نیست) منبع بافر پروتکل گوگل
راهاندازی مک
- ابزارهای خط فرمان Xcode را با اجرای دستور زیر نصب کنید:
sudo xcode-select --install- به
.bash_profileخود اضافه کنید:
export JAVA_HOME=`/usr/libexec/java_home -v 21`- اگر Maven نصب نشده است (
mvn -versionدر ترمینال امتحان کنید)، از Homebrew استفاده کنید:
brew install mavenایجاد یک انشعاب از پروژه J2ObjC
برای انشعاب پروژه J2ObjC، صفحه اصلی آن را باز کنید و روی دکمه انشعاب کلیک کنید:

نام حساب گیتهاب خود را انتخاب کنید، و فورک در عرض چند ثانیه ایجاد خواهد شد.
در مرحله بعد، یک کپی از fork خود را برای توسعه در سیستم محلی خود کپی کنید. ابتدا روی [دکمه Clone or download] کلیک کنید، سپس روی دکمه Copy to Clipboard کلیک کنید:

سپس در یک دایرکتوری محلی کلون کنید:
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 librariesmake dist# Build the protocol buffer compiler and runtime for J2ObjCmake protobuf_dist# Build everything that is included in the project's distribution bundlesmake all_dist
تست J2ObjC
برای آزمایش از طریق خط فرمان در پنجره ترمینال، دستور زیر را اجرا کنید:
# Run translator and library unit testsmake test# Run all unit tests, including for protocol buffersmake test_all
تمیز کردن یک ساختمان
# Remove all files generated by the buildmake clean
ساختهای موازی
ساخت J2ObjC از ساختهای موازی پشتیبانی میکند که با استفاده از پرچم -j<n> مشخص میشوند، که در آن n حداکثر تعداد وظایف همزمان است. حداکثر به سرعت سیستم شما بستگی دارد؛ پیشنهاد میکنیم با -j4 شروع کنید. اگر سیستم شما میتواند آن را مدیریت کند، تعداد را افزایش دهید تا زمان ساخت کوتاه شود و اگر به دلیل خطاهای سیستمی با شکست مواجه شد، آن را کاهش دهید.
ساخت معماریهای ۳۲ بیتی iOS
معماریهای ۳۲ بیتی iOS ("iphone" و "simulator") به طور پیشفرض ساخته نشدهاند. میتوانید j2objc را با استفاده از این معماریها و با مشخص کردن آنها در متغیر محیطی J2OBJC_ARCHS بسازید:
$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist
مشخص کردن زیرمجموعهای از معماریهای پشتیبانیشده بهطورکلی میتواند برای سرعت بخشیدن به ساختهای محلی، تنها با مشخص کردن معماریهایی که برنامه شما نیاز دارد، مورد استفاده قرار گیرد. برای مثال، برای ساخت فقط iOS 64 بیتی ("iphone64") و شبیهساز مرتبط با آن ("simulator64")، قبل از اجرای make، J2OBJC_ARCHS="iphone64 simulator64" را تعریف کنید.
ساخت توزیع کامل
اگرچه تیم j2objc به دلیل محدودیتهای حجم فایل، دیگر توزیعهای از پیش ساخته شده را در GitHub منتشر نمیکند، اما اسکریپت «ساخت همه چیز در یک مرحله» هنوز هم قابل استفاده است:
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
اجرای این اسکریپت زمان زیادی میبرد زیرا هر معماری برای هر بسته j2objc ساخته شده است. با این حال، اگر در ساخت کلی با شکست مواجه شویم، بسیار مفید است، زیرا فقط با حداقل مجموعه متغیرهای محیطی ساخته میشود. اگر اسکریپت build_distribution موفقیتآمیز باشد اما مراحل ساخت عادی موفقیتآمیز نباشند، بررسی کنید که آیا متغیرهای محیطی محلی به اشتباه تنظیم شدهاند یا خیر.