मैं पूरी तरह से एक Xcode प्रोजेक्ट(अर्थात फ़ोल्डर्स के समावेश) का नाम कैसे बदलूं?




ide rename (5)

मेरा एक प्रोजेक्ट है जिसका नाम XXX । मैं इस परियोजना का नाम बदलकर YYY करना चाहता हूं।

ध्यान दें कि XXX एक अत्यंत सामान्य शब्द है (उदाहरण के लिए "डेटा", या बस "प्रोजेक्ट"), और इस प्रकार प्रोजेक्ट कॉन्फ़िगरेशन फ़ाइलों को दूषित करने के जोखिम से एक सरल RegEx खोज और बदलना संभव नहीं है।

मेरी वर्तमान परियोजना निर्देशिका में निम्नलिखित आइटम हैं:

  • XXX
  • XXXTests
  • XXX.xcodeproj

और मैं उनका नाम बदलना चाहता हूं:

  • YYY
  • YYYTests
  • YYY.xcodeproj

... क्रमशः, आवश्यक परिवर्तन के साथ मेरी परियोजना फ़ाइल में परिलक्षित होती है।

किसी नई परियोजना को मैन्युअल रूप से बनाने और आबाद करने के बिना मैं इसे कैसे पूरा कर सकता हूं?

संपादित करें: यह बिल्कुल हास्यास्पद है कि यह मेरा सबसे उत्कट प्रश्न बन गया है।


शेल कमांड का उपयोग कर एक तेज़ समाधान (कोकोपॉड्स के साथ भी काम करता है):

कृपया किसी गैर-लाभकारी संस्था से संपर्क करने के लिए cd TO से पहले TO

चरण 1 - पूर्वापेक्षाएँ

  1. अपने मूल प्रोजेक्ट फ़ोल्डर को एक अस्थायी /NewProjectFolder कॉपी करें अपने गिट रिपॉजिटरी से बाहर /NewProjectFolder ⚠️ में परिवर्तन .it आपके गिट सूचकांक को भ्रष्ट कर सकता है git git

चरण 2 - टर्मिनल खोलें

अब हम पुराने नाम से oldName के प्रोजेक्ट का नाम बदलने जा रहे हैं।

  • XCode को बंद करें।
  • अपने /NewProjectFolder
cd /Path/to/your/NewProjectFolder
  • आवश्यक अतिरिक्त उपकरण स्थापित करें।
brew install rename ack
  • स्रोत स्ट्रिंग युक्त फ़ाइलों और निर्देशिकाओं का नाम बदलें। आपको इस COMMIS TWICE को रन करने की आवश्यकता होगी , क्योंकि निर्देशिकाओं को पहले नाम दिया जाएगा, फिर उन फ़ाइलों और निर्देशिकाओं को अगले पुनरावृत्ति पर नाम दिया जाएगा।
find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'NewProject'
  • जांचें कि क्या स्रोत स्ट्रिंग वाली सभी फ़ाइलों का नाम बदल दिया गया है। आपको खाली आउटपुट देखना चाहिए।
find . -name 'oldName*'
  • स्ट्रिंग की सभी घटनाओं को सभी फाइलों में बदलें।
ack --literal --files-with-matches 'oldName' --print0 | xargs -0 sed -i '' 's/oldName/NewProject/g'
  • जांचें कि क्या सभी फाइलों में स्ट्रिंग की सभी घटनाओं को बदल दिया गया था। आपको खाली आउटपुट देखना चाहिए।
ack --literal 'oldName'
  • pod install चलाएं
  • अपने रिपॉजिटरी में NewProjectFolder जोड़ें।
  • आप कर चुके हैं!

चरण 1 - परियोजना का नाम बदलें

  1. उस प्रोजेक्ट पर क्लिक करें जिसे आप Xcode दृश्य के बाईं ओर "प्रोजेक्ट नेविगेटर" में बदलना चाहते हैं।
  2. दाईं ओर "फ़ाइल निरीक्षक" चुनें और आपकी परियोजना का नाम "पहचान और प्रकार" के तहत होना चाहिए, इसे नए नाम में बदलें।
  3. ड्रॉपडाउन मेनू में "नाम बदलें" पर क्लिक करें

चरण 2 - योजना का नाम बदलें

  1. शीर्ष बार में ("स्टॉप" बटन के पास), आपके ओएलडी उत्पाद के लिए एक योजना है, उस पर क्लिक करें, फिर "प्रबंधित योजनाएं" पर जाएं
  2. योजना में OLD नाम पर क्लिक करें, और यह संपादन योग्य हो जाएगा, नाम बदल दें

चरण 3 - अपनी संपत्ति के साथ फ़ोल्डर का नाम बदलें

  1. एक्सकोड से बाहर निकलें
  2. सही ढंग से नामित मास्टर फ़ोल्डर में, एक गलत नामित ओएलडी फ़ोल्डर के साथ एक नया नाम xcodeproj फ़ाइल है। अपने नए नाम के लिए OLD फ़ोल्डर का नाम बदलें (यदि आप Git का उपयोग करते हैं, तो आप git mv oldame newname चला सकते हैं ताकि Git यह मान ले कि यह एक चाल है, बजाय नई फ़ाइलों को हटाने / जोड़ने के)।
  3. प्रोजेक्ट को फिर से खोलें, आपको एक चेतावनी दिखाई देगी: "फ़ोल्डर OLD मौजूद नहीं है", चेतावनी को खारिज कर दें
  4. बाईं ओर "प्रोजेक्ट नेविगेटर" में, शीर्ष स्तर ओएलडी फ़ोल्डर नाम पर क्लिक करें
  5. "पहचान और प्रकार" के तहत उपयोगिताएँ फलक में आपको "नाम" प्रविष्टि दिखाई देगी, इसे OLD से नए नाम में बदलें
  6. बस नीचे एक "स्थान" प्रविष्टि है। OLD नाम वाले फ़ोल्डर पर क्लिक करें और नए नामांकित फ़ोल्डर को चुने

चरण 4 - बिल्ड प्लिस्ट डेटा का नाम बदलें **

  1. बाईं ओर "प्रोजेक्ट नेविगेटर" में प्रोजेक्ट पर क्लिक करें, मुख्य पैनल में "सेटिंग बनाएँ" चुनें
  2. इस अनुभाग में "प्लिस्ट" खोजें
  3. पैकेजिंग के तहत, आप Info.plist , और Product bundle identifier देखेंगे
  4. Info.plist में शीर्ष प्रविष्टि का नाम बदलें
  5. Product Identifier लिए भी यही करें
  6. यदि आप SwiftUI का उपयोग करते हैं, तो "विकासात्मक संपत्ति" की खोज करें और पथ को अपडेट करें

चरण 5 - परीक्षणों के लिए चरण 3 को दोहराएं (यदि आपके पास है) **

चरण 6 - कोर डेटा के लिए चरण 3 को दोहराएँ अगर यह नाम प्रोजेक्ट नाम से मेल खाता है (यदि आपके पास है) **

अंत में , आप कर रहे हैं और पुनर्निर्माण कर सकते हैं ( कमांड + शिफ्ट + के को साफ करने के लिए, कमांड + बी बनाने के लिए)


@ ल्यूक-वेस्ट के @ वैद्य के समाधान के बाद अतिरिक्त निर्देश:

  • यदि आपकी योजना स्टॉप बटन के बगल में बाईं ओर शीर्ष पर (अभी भी मेरा मैक दिखा) नहीं बदली है:

    1. नया बनाया गया प्रोजेक्ट नाम (स्टॉप बटन के बगल में) पर क्लिक करें> एडिट स्कीम्स पर क्लिक करें> बिल्ड (बाएं हाथ की ओर)> पुराने लक्ष्य को हटा दें (यह गायब है) और नए नाम वाले प्रोजेक्ट के तहत नए नाम वाले प्रोजेक्ट लोगो के साथ बदलें

इसके अलावा, मुझे @ वैद्यन के समाधान के चरण 3 का उपयोग नहीं करना पड़ा। टर्मिनल में बस rm -rf Pods/ चलाने से सभी पुरानी पॉड फ़ाइलों से छुटकारा मिल गया

मुझे @ वैद्यन के समाधान में चरण 9 का उपयोग करने की भी ज़रूरत नहीं थी, इसके बजाय मैंने लिंक बाइनरी लाइब्रेरीज़ के तहत ओएलडी प्रोजेक्ट नाम की रूपरेखा को हटा दिया (नए नाम वाला ढांचा पहले से ही था)

तो अद्यतन चरण निम्नानुसार होंगे:

चरण 1 - परियोजना का नाम बदलें

  1. यदि आप अपनी परियोजना में कोकोपोड्स का उपयोग कर रहे हैं, तो कार्यक्षेत्र को बंद करें, और इन चरणों के लिए XCode प्रोजेक्ट खोलें।
  2. उस प्रोजेक्ट पर क्लिक करें जिसे आप Xcode दृश्य के बाईं ओर "प्रोजेक्ट नेविगेटर" में बदलना चाहते हैं।
  3. दाईं ओर "फ़ाइल निरीक्षक" चुनें और आपकी परियोजना का नाम "पहचान और प्रकार" के तहत होना चाहिए, इसे नए नाम में बदलें।
  4. ड्रॉपडाउन मेनू में "नाम बदलें" पर क्लिक करें

चरण 2 - योजना का नाम बदलें

  1. शीर्ष बार में ("स्टॉप" बटन के पास), आपके ओएलडी उत्पाद के लिए एक योजना है, उस पर क्लिक करें, फिर "प्रबंधित योजनाएं" पर जाएं
  2. योजना में OLD नाम पर क्लिक करें, और यह संपादन योग्य हो जाएगा, नाम बदल दें
  3. XCode से बाहर निकलें।
  4. मास्टर फ़ोल्डर में, OLD.xcworkspace का नाम बदलकर NEW.xcworkspace करें।

चरण 3 - अपनी संपत्ति के साथ फ़ोल्डर का नाम बदलें

  1. एक्सकोड से बाहर निकलें
  2. सही ढंग से नामित मास्टर फ़ोल्डर में, एक गलत नामित ओएलडी फ़ोल्डर के साथ एक नया नाम xcodeproj फ़ाइल है। अपने नए नाम के लिए OLD फ़ोल्डर का नाम बदलें
  3. प्रोजेक्ट को फिर से खोलें, आपको एक चेतावनी दिखाई देगी: "फ़ोल्डर OLD मौजूद नहीं है", चेतावनी को खारिज कर दें
  4. बाईं ओर "प्रोजेक्ट नेविगेटर" में, शीर्ष स्तर ओएलडी फ़ोल्डर नाम पर क्लिक करें
  5. "पहचान और प्रकार" के तहत उपयोगिताएँ फलक में आपको "नाम" प्रविष्टि दिखाई देगी, इसे OLD से नए नाम में बदलें
  6. बस नीचे एक "स्थान" प्रविष्टि है। OLD नाम वाले फ़ोल्डर पर क्लिक करें और नए नामांकित फ़ोल्डर को चुने

चरण 4 - बिल्ड प्लिस्ट डेटा का नाम बदलें

  1. बाईं ओर "प्रोजेक्ट नेविगेटर" में प्रोजेक्ट पर क्लिक करें, मुख्य पैनल में "सेटिंग बनाएँ" चुनें
  2. इस अनुभाग में "प्लिस्ट" खोजें पैकेजिंग के तहत, आपको Info.plist, और उत्पाद बंडल पहचानकर्ता दिखाई देगा
  3. Info.plist में शीर्ष प्रविष्टि का नाम बदलें
  4. उत्पाद पहचानकर्ता के लिए भी यही करें

चरण 5 हैंडलिंग पॉडफाइल

  1. XCode में: प्रोजेक्ट नेविगेटर से पॉडफाइल चुनें और संपादित करें। आपको OLD नाम के साथ एक लक्ष्य खंड देखना चाहिए। इसे नए में बदलें।
  2. XCode से बाहर निकलें।
  3. टर्मिनल में, cd प्रोजेक्ट डायरेक्टरी में, फिर: rm -rf Pods/
  4. पॉड इंस्टॉल चलाएं।
  5. XCode खोलें।
  6. प्रोजेक्ट नाविक में अपने प्रोजेक्ट के नाम पर क्लिक करें।
  7. मुख्य फलक में, बिल्ड चरण टैब पर जाएँ। लाइब्रेरी के साथ लिंक बाइनरी के तहत, ओएलडी फ्रेमवर्क देखें और इसे हटा दें (यह कहना गायब है) नया नाम वाला ढांचा पहले से ही होना चाहिए, अगर इसे जोड़ने के लिए खिड़की के नीचे "+" बटन का उपयोग न करें।
  8. यदि आपके पास वस्तुनिष्ठ-ग ब्रिजिंग हेडर है तो सेटिंग पर जाएं और हेडर का स्थान ओएलडी / ओएलडी-ब्रिजिंग-हेडर से बदलकर नया / न्यू-ब्रिजिंग-हेडर करें।
  9. साफ करें और चलाएं।

आपके द्वारा सभी चरणों का सफलतापूर्वक पालन करने के बाद आपको कोई त्रुटि नहीं होनी चाहिए


एक GitHub प्रोजेक्ट है जिसे Xcode Project Renamer कहा जाता है:

इसे Xcode प्रोजेक्ट डायरेक्टरी के रूट से निष्पादित किया जाना चाहिए और दो स्ट्रिंग मापदंडों के साथ बुलाया जाना चाहिए: $ OLD_PROJECT_NAME और NEW_PROJECT_NAME

स्क्रिप्ट सभी फ़ाइलों और निर्देशिकाओं से होकर गुजरती है, जिसमें Xcode प्रोजेक्ट या कार्यक्षेत्र फ़ाइल शामिल है और $ OLD_PROJECT_NAME स्ट्रिंग की सभी घटनाओं को $ NEW_PROJECT_NAME स्ट्रिंग (प्रत्येक फ़ाइल के नाम और सामग्री दोनों) के साथ बदल देती है।

Xcode प्रोजेक्ट रेनमर


ल्यूक और वैडन की सिफारिश की गई सभी कदमों के अलावा, मुझे अपने स्टोरीबोर्ड में नए नाम से मेल करने के लिए सभी कस्टममॉडल गुणों का भी नाम बदलना पड़ा और इसके लिए मामला संवेदनशील होना चाहिए।








batch-rename