Bazel ट्यूटोरियल: iOS ऐप्लिकेशन बनाएं

अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है किसी समस्या की शिकायत करें सोर्स देखें रात · 7.3 · 7.2 · 7.1 · 7.0 · 6.5

इस ट्यूटोरियल में 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 डिवाइस पर इंस्टॉल और लॉन्च करने के लिए उस डिवाइस मॉडल के लिए सही प्रॉविज़निंग प्रोफ़ाइल चुनें. तो निम्न कार्य करें:

  1. अपने Apple Developer Account पर जाएं और अपने डिवाइस के लिए सही प्रॉविज़निंग प्रोफ़ाइल डाउनलोड करें. यहां जाएं: Apple के दस्तावेज़ हमारा वीडियो देखें.

  2. अपनी प्रोफ़ाइल को $WORKSPACE में ले जाएं.

  3. (ज़रूरी नहीं) .gitignore फ़ाइल में अपनी प्रोफ़ाइल जोड़ें.

  4. अपनी 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 रेपो की जानकारी देनी होगी.