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