ساخت J2ObjC

الزامات

  • سیستم عامل مک او اس ایکس اپل
  • آخرین نسخه Xcode
  • JDK JDK 11 نصب شده است
  • آپاچی ماون
  • (توصیه می شود اما لازم نیست) منبع بافر پروتکل Google

راه اندازی مک

  • ابزارهای خط فرمان 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 خود را انتخاب کنید و فورک در عرض چند ثانیه ایجاد می شود.

سپس، یک کپی از فورک خود را برای توسعه در سیستم محلی خود کلون کنید. ابتدا روی [Clone or download button] کلیک کنید، سپس روی دکمه 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 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 شروع کنید. اگر سیستم شما از عهده آن برآید، تعداد را افزایش دهید تا زمان‌های ساخت را کوتاه کنید و در صورت خطای سیستم با خطا، آن را کاهش دهید.

ساخت معماری های 32 بیتی iOS

معماری های 32 بیتی iOS ("iphone" و "شبیه ساز") به طور پیش فرض ساخته نشده اند. شما می توانید 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 موفق شد اما مراحل ساخت معمولی موفق نشد، بررسی کنید که آیا متغیرهای محیط محلی به درستی تنظیم نشده اند یا خیر.