ज़रूरी शर्तें
- 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 इंस्टॉल करना
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
आम तौर पर, काम करने वाले आर्किटेक्चर के सबसेट की जानकारी देकर, स्थानीय बिल्ड को तेज़ किया जा सकता है. इसके लिए, सिर्फ़ उन आर्किटेक्चर की जानकारी दें जिनकी आपके ऐप्लिकेशन को ज़रूरत है.
उदाहरण के लिए, सिर्फ़ 64-बिट iOS ("iphone64") और उससे जुड़े सिम्युलेटर ("simulator64") को बनाने के लिए, make को चलाने से पहले J2OBJC_ARCHS="iphone64 simulator64"
तय करें.
पूरा डिस्ट्रिब्यूशन बनाना
फ़ाइल के साइज़ की सीमाओं की वजह से, j2objc टीम अब GitHub पर पहले से बने डिस्ट्रिब्यूशन पोस्ट नहीं करती. हालांकि, "एक चरण में सब कुछ बनाएं" स्क्रिप्ट का इस्तेमाल अब भी किया जा सकता है:
$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR
इस स्क्रिप्ट को चलने में काफ़ी समय लगता है, क्योंकि हर j2objc पैकेज के लिए हर आर्किटेक्चर बनाया जाता है. हालांकि, अगर बिल्ड में सामान्य गड़बड़ियां होती हैं, तो यह बहुत काम का होता है. ऐसा इसलिए, क्योंकि यह सिर्फ़ एनवायरमेंट वैरिएबल के कम से कम सेट के साथ बिल्ड होता है. अगर build_distribution स्क्रिप्ट काम करती है, लेकिन सामान्य बिल्ड चरणों में कोई गड़बड़ी होती है, तो देखें कि क्या कोई स्थानीय एनवायरमेंट वैरिएबल गलत तरीके से सेट है.