इस ट्यूटोरियल में Basel का इस्तेमाल करके, एक आसान iOS ऐप्लिकेशन बनाने का तरीका बताया गया है.
आप इन चीज़ों के बारे में जानेंगे
इस ट्यूटोरियल में आपको ये काम करने के बारे में जानकारी मिलेगी:
- Baज़र और Xcode इंस्टॉल करके, एनवायरमेंट को सेट अप करने के बाद, सैंपल प्रोजेक्ट
- Basel workspace सेट अप करें, जिसमें सोर्स कोड शामिल हो
और एक
WORKSPACE
फ़ाइल होती है, जो वर्कस्पेस डायरेक्ट्री - ज़रूरी जानकारी के रेफ़रंस शामिल करने के लिए,
WORKSPACE
फ़ाइल को अपडेट करें बाहरी डिपेंडेंसी BUILD
फ़ाइल बनाएं- Basel को चलाते हुए, सिम्युलेटर और iOS डिवाइस के लिए ऐप्लिकेशन बनाएं
- ऐप्लिकेशन को सिम्युलेटर और iOS डिवाइस पर चलाएं
अपना एनवायरमेंट सेट अप करें
शुरू करने के लिए, Basel और Xcode इंस्टॉल करें और सैंपल प्रोजेक्ट पाएं.
Basel इंस्टॉल करें
Basel को इंस्टॉल करने के लिए इंस्टॉलेशन निर्देशों का पालन करें और निर्भर है.
Xcode इंस्टॉल करें
Xcode को डाउनलोड और इंस्टॉल करें. Xcode में कंपाइलर, SDK टूल, और अन्य टूल शामिल होते हैं. इन टूल को बनाने के लिए Baज़र की ज़रूरत होती है Apple के ऐप्लिकेशन.
सैंपल प्रोजेक्ट डाउनलोड करें
आपको GitHub से ट्यूटोरियल के लिए सैंपल प्रोजेक्ट भी लेना होगा. GitHub
रेपो की दो ब्रांच होती हैं: source-only
और main
. source-only
की ब्रांच
इसमें सिर्फ़ प्रोजेक्ट की सोर्स फ़ाइलें शामिल होती हैं. आप इसमें मौजूद फ़ाइलों का इस्तेमाल करेंगे
ब्रांच में दी गई जानकारी देखें. main
ब्रांच में दोनों सोर्स फ़ाइलें होती हैं
और Basel WORKSPACE
और BUILD
फ़ाइलों को पूरा किया गया. आप इसमें मौजूद फ़ाइलों का इस्तेमाल कर सकते हैं
ब्रांच में जाकर, ट्यूटोरियल के चरण पूरे करने के बाद, अपने काम की जांच करें.
source-only
में फ़ाइलें पाने के लिए, कमांड लाइन पर यह डालें
ब्रांच:
cd $HOME
git clone -b source-only https://github.com/bazelbuild/examples
git clone
निर्देश $HOME/examples/
नाम की एक डायरेक्ट्री बनाता है. यह
डायरेक्ट्री में बेज़ल के लिए कई सैंपल प्रोजेक्ट शामिल हैं. इसके लिए प्रोजेक्ट फ़ाइलें
ट्यूटोरियल $HOME/examples/tutorial/ios-app
में हैं.
फ़ाइल फ़ोल्डर सेट अप करना
वर्कस्पेस एक डायरेक्ट्री है, जिसमें
एक या ज़्यादा सॉफ़्टवेयर प्रोजेक्ट की सोर्स फ़ाइलें और एक WORKSPACE
फ़ाइल
और BUILD
फ़ाइलें जिनमें ऐसे निर्देश होते हैं जिनका इस्तेमाल Baze ने बनाने के लिए किया
सॉफ़्टवेयर को कॉपी करने की कोशिश कर रहे हैं. फ़ाइल फ़ोल्डर में, आउटपुट के लिए सिम्बॉलिक लिंक भी हो सकते हैं
डायरेक्ट्री में जा सकते हैं.
फ़ाइल फ़ोल्डर की डायरेक्ट्री आपके फ़ाइल सिस्टम पर कहीं भी हो सकती है और उसे दिखाया जाता है
WORKSPACE
फ़ाइल के रूट में मौजूद होने से. इस ट्यूटोरियल में, आपके
फ़ाइल फ़ोल्डर की डायरेक्ट्री $HOME/examples/tutorial/
है, जिसमें सैंपल डेटा शामिल है
उन प्रोजेक्ट फ़ाइलों को चुनें जिन्हें आपने पिछले चरण में GitHub रेपो से क्लोन किया था.
अपनी सुविधा के लिए, $WORKSPACE
एनवायरमेंट वैरिएबल को अभी सेट करें, ताकि इसे रेफ़र किया जा सके
आपकी फ़ाइल फ़ोल्डर डायरेक्ट्री. कमांड लाइन पर, यह लिखें:
export WORKSPACE=$HOME/examples/tutorial
Workspace फ़ाइल बनाएं
हर फ़ाइल फ़ोल्डर में WORKSPACE
नाम की एक टेक्स्ट फ़ाइल होनी चाहिए, जो टॉप-लेवल में मौजूद हो
वर्कस्पेस डायरेक्ट्री. यह फ़ाइल खाली हो सकती है या इसमें रेफ़रंस हो सकते हैं
बाहरी डिपेंडेंसी के तौर पर होना ज़रूरी है, ताकि
सॉफ़्टवेयर डाउनलोड करें.
फ़िलहाल, आपको एक खाली WORKSPACE
फ़ाइल बनानी होगी, जो सिर्फ़ इन पर काम करती है:
वर्कस्पेस डायरेक्ट्री की पहचान करेगा. बाद के चरणों में, फ़ाइल को जोड़ने के लिए उसे अपडेट करना होगा
बाहरी डिपेंडेंसी जानकारी.
कमांड लाइन में यह जानकारी लिखें:
touch $WORKSPACE/WORKSPACE
open -a Xcode $WORKSPACE/WORKSPACE
इससे खाली WORKSPACE
फ़ाइल बन जाएगी और खुल जाएगी.
Workspace फ़ाइल अपडेट करें
Apple डिवाइस के लिए ऐप्लिकेशन बनाने के लिए, Basel को सबसे नए वर्शन का इस्तेमाल करना होगा
Apple बिल्ड के नियम
को GitHub रिपॉज़िटरी से लिया गया है. इसे चालू करने के लिए, नीचे दी गई चीज़ें जोड़ें
git_repository
आपकी WORKSPACE
फ़ाइल के लिए नियम:
load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository")
git_repository(
name = "build_bazel_rules_apple",
remote = "https://github.com/bazelbuild/rules_apple.git",
tag = "0.19.0",
)
git_repository(
name = "build_bazel_rules_swift",
remote = "https://github.com/bazelbuild/rules_swift.git",
tag = "0.13.0",
)
git_repository(
name = "build_bazel_apple_support",
remote = "https://github.com/bazelbuild/apple_support.git",
tag = "0.7.2",
)
git_repository(
name = "bazel_skylib",
remote = "https://github.com/bazelbuild/bazel-skylib.git",
tag = "0.9.0",
)
सोर्स फ़ाइलों की समीक्षा करें
इसमें मौजूद ऐप्लिकेशन की सोर्स फ़ाइलें देखें
$WORKSPACE/ios-app/UrlGet
. फिर से, आप अभी इन फ़ाइलों को बस
आपको ऐप्लिकेशन के स्ट्रक्चर के बारे में जानकारी होनी चाहिए. आपको इनमें से किसी एक में बदलाव करने की ज़रूरत नहीं है
सोर्स फ़ाइलों का इस्तेमाल करें.
एक BUILD फ़ाइल बनाएं
कमांड लाइन प्रॉम्प्ट पर, बदलाव करने के लिए एक नई BUILD
फ़ाइल खोलें:
touch $WORKSPACE/ios-app/BUILD
open -a Xcode $WORKSPACE/ios-app/BUILD
नियम लोड करने का स्टेटमेंट जोड़ें
iOS टारगेट बनाने के लिए, Basel को अपनी GitHub रिपॉज़िटरी से बिल्ड के नियम लोड करने होंगे
जब भी बिल्ड काम करता है. अपने प्रोजेक्ट पर इन नियमों को लागू करने के लिए,
आपकी BUILD
फ़ाइल की शुरुआत में यह लोड स्टेटमेंट:
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")
आपको सिर्फ़ ios_application
नियम लोड करना होगा, क्योंकि objc_library
का नियम बेज़ल पैकेज में बनाया गया है.
objc_library नियम जोड़ें
Basel ने कई बिल्ड रूल उपलब्ध कराए हैं. इनका इस्तेमाल करके,
iOS प्लैटफ़ॉर्म. इस ट्यूटोरियल के लिए, आप पहले
बेज़ल को बताने के लिए objc_library
नियम
XIb फ़ाइलों और ऐप्लिकेशन के सोर्स कोड से स्टैटिक लाइब्रेरी बनाने का तरीका. इसके बाद
आप इसका इस्तेमाल करेंगे
ios_application
नियम का इस्तेमाल करके, ऐप्लिकेशन बाइनरी और .ipa
बंडल बनाने का तरीका बताया है.
अपनी BUILD
फ़ाइल में ये चीज़ें जोड़ें:
objc_library(
name = "UrlGetClasses",
srcs = [
"UrlGet/AppDelegate.m",
"UrlGet/UrlGetViewController.m",
"UrlGet/main.m",
],
hdrs = glob(["UrlGet/*.h"]),
data = ["UrlGet/UrlGetViewController.xib"],
)
नियम का नाम UrlGetClasses
नोट करें.
कोई ios_application नियम जोड़ें
कॉन्टेंट बनाने
ios_application
नियम ऐप्लिकेशन बाइनरी बनाता है और .ipa
बंडल फ़ाइल बनाता है.
अपनी BUILD
फ़ाइल में ये चीज़ें जोड़ें:
ios_application(
name = "ios-app",
bundle_id = "Google.UrlGet",
families = [
"iphone",
"ipad",
],
minimum_os_version = "9.0",
infoplists = [":UrlGet/UrlGet-Info.plist"],
visibility = ["//visibility:public"],
deps = [":UrlGetClasses"],
)
ध्यान दें कि deps
एट्रिब्यूट, UrlGetClasses
नियम के आउटपुट का रेफ़रंस कैसे देता है
आपने ऊपर दी गई BUILD
फ़ाइल में जोड़ा है.
अब फ़ाइल को सेव करें और बंद करें. आप अपनी BUILD
फ़ाइल की तुलना
पूरा उदाहरण
GitHub रेपो की main
ब्रांच में.
ऐप्लिकेशन बनाएं और डिप्लॉय करें
अब आप अपना ऐप्लिकेशन बनाने के लिए तैयार हैं. साथ ही, इसे सिम्युलेटर और किसी iOS डिवाइस.
बनाया गया ऐप्लिकेशन, $WORKSPACE/bazel-bin
डायरेक्ट्री में मौजूद है.
इस ट्यूटोरियल के लिए पूरी की गई WORKSPACE
और BUILD
फ़ाइलें इसमें मौजूद हैं
मुख्य ब्रांच
GitHub रेपो की जानकारी देनी होगी. आप इनके लिए अपने काम की पूरी हो चुकी फ़ाइलों से तुलना कर सकते हैं
या समस्या का हल चाहिए.
सिम्युलेटर के लिए ऐप्लिकेशन बनाएं
पक्का करें कि आपकी मौजूदा वर्किंग डायरेक्ट्री, आपके Basel Workspace में मौजूद है:
cd $WORKSPACE
अब, सैंपल ऐप्लिकेशन बनाने के लिए, यह जानकारी डालें:
bazel build //ios-app:ios-app
Basel ने सैंपल ऐप्लिकेशन को लॉन्च करके बनाया. बिल्ड प्रोसेस के दौरान, इसके आउटपुट ऐसा दिखेगा:
INFO: Found 1 target...
Target //ios-app:ios-app up-to-date:
bazel-bin/ios-app/ios-app.ipa
INFO: Elapsed time: 0.565s, Critical Path: 0.44s
बिल्ड आउटपुट खोजना
.ipa
फ़ाइल और अन्य आउटपुट
$WORKSPACE/bazel-bin/ios-app
डायरेक्ट्री.
सिम्युलेटर में ऐप्लिकेशन चलाएं और उसे डीबग करें
अब आप iOS सिम्युलेटर का इस्तेमाल करके Xcode से ऐप्लिकेशन को चला सकते हैं. सबसे पहले, Tulsi का इस्तेमाल करके, Xcode प्रोजेक्ट जनरेट करें.
इसके बाद, प्रोजेक्ट को Xcode में खोलें, रनटाइम स्कीम के तौर पर कोई iOS सिम्युलेटर चुनें, और Run पर क्लिक करें.
किसी डिवाइस के लिए ऐप्लिकेशन बनाएं
आपका ऐप्लिकेशन बनाने के लिए, Basel को iOS डिवाइस पर इंस्टॉल और लॉन्च करने के लिए उस डिवाइस मॉडल के लिए सही प्रॉविज़निंग प्रोफ़ाइल चुनें. तो निम्न कार्य करें:
अपने Apple Developer Account पर जाएं और अपने डिवाइस के लिए सही प्रॉविज़निंग प्रोफ़ाइल डाउनलोड करें. यहां जाएं: Apple के दस्तावेज़ हमारा वीडियो देखें.
अपनी प्रोफ़ाइल को
$WORKSPACE
में ले जाएं.(ज़रूरी नहीं)
.gitignore
फ़ाइल में अपनी प्रोफ़ाइल जोड़ें.अपनी
BUILD
फ़ाइल में,ios_application
टारगेट में यह लाइन जोड़ें:provisioning_profile = "<your_profile_name>.mobileprovision",
अब अपने डिवाइस के लिए ऐप्लिकेशन बनाएं:
bazel build //ios-app:ios-app --ios_multi_cpus=armv7,arm64
यह ऐप्लिकेशन को फ़ैट बाइनरी के तौर पर बनाता है. किसी खास डिवाइस के लिए बनाने के लिए आर्किटेक्चर पर क्लिक करें, तो इसे बिल्ड के विकल्पों में शामिल करें.
Xcode के किसी खास वर्शन को बनाने के लिए, --xcode_version
विकल्प का इस्तेमाल करें. यहां की यात्रा पर हूं
SDK टूल के किसी खास वर्शन के लिए, --ios_sdk_version
विकल्प का इस्तेमाल करें. कॉन्टेंट बनाने
ज़्यादातर मामलों में, --xcode_version
विकल्प काफ़ी होता है.
कम से कम ज़रूरी iOS वर्शन तय करने के लिए, minimum_os_version
जोड़ें
पैरामीटर को आपकी BUILD
फ़ाइल में ios_application
बिल्ड नियम से जोड़ दें.
Google आपके यूआरएल पैरामीटर को कैसे इस्तेमाल करेगा, यह तय करने के लिए Tulsi से कमांड लाइन के बजाय GUI का इस्तेमाल करके अपना ऐप्लिकेशन बनाएं.
किसी डिवाइस पर ऐप्लिकेशन इंस्टॉल करें
डिवाइस पर ऐप्लिकेशन इंस्टॉल करने का सबसे आसान तरीका है Xcode लॉन्च करना और
Windows > Devices
निर्देश. यहां दी गई सूची में से, प्लग-इन किया गया डिवाइस चुनें
बाईं ओर, फिर जोड़ें (प्लस का निशान) बटन पर क्लिक करके ऐप्लिकेशन जोड़ें
"इंस्टॉल किए गए ऐप्लिकेशन" और अपनी बनाई गई .ipa
फ़ाइल को चुनें.
अगर आपका ऐप्लिकेशन आपके डिवाइस पर इंस्टॉल नहीं हो पाता है, तो पक्का करें कि आपने
आपकी BUILD
फ़ाइल में सही प्रावधान प्रोफ़ाइल (पिछले चरण में चरण 4
सेक्शन में बताया गया है).
अगर आपका ऐप्लिकेशन लॉन्च नहीं हो पाता है, तो यह पक्का करें कि आपका डिवाइस
के लिए उपलब्ध है. इस Devices
स्क्रीन पर मौजूद View Device Logs
बटन
Xcode गड़बड़ी के बारे में अन्य जानकारी भी दे सकता है.
इसके बारे में और पढ़ें
ज़्यादा जानकारी के लिए, यह देखें मुख्य ब्रांच GitHub रेपो की जानकारी देनी होगी.