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


470

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

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

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

  • XXX
  • XXXTests
  • XXX.xcodeproj

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

  • YYY
  • YYYTests
  • YYY.xcodeproj

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

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


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



1
इसके अलावा पूछा गया और यहां उत्तर दिया गया stackoverflow.com/questions/17744319/… जवाब पर 200 अप वोट के साथ
रॉन मैसचुक

1
यहाँ भी पूछा और जवाब दिया stackoverflow.com/questions/8262613/… 189 वोटों के साथ दोनों पद अभी भी Xcode 7 में प्रासंगिक हैं
Ron Myschuk

यदि आप केवल ऐप आइकन का नाम बदलना चाहते हैं, तो इस उत्तर को देखें stackoverflow.com/questions/238980/…
LYu

जवाबों:


1019

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

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

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

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

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

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

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

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

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

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

चरण 7 - अपनी परियोजना का पुनर्निर्माण करें

  1. Command+ Shift+ Kसाफ करने के लिए
  2. Command+ Bका निर्माण करने के लिए

5
आप प्रोजेक्ट का नाम बदलने में सक्षम हैं, लेकिन फ़ोल्डर्स के नाम अभी भी समान हैं। क्या आप जानते हैं कि उन लोगों को कैसे बदला जाए
Coder221

5
धन्यवाद! Xcode 8 के लिए, एंटाइटेलमेंट फ़ाइल को मैन्युअल रूप से बदला जाना चाहिए।
झाओ

54
चरण 3 भाग 2 करते समय (फ़ोल्डर का नाम बदलकर), यदि आप गिट का उपयोग कर रहे हैं, तो मैं सुझाव देता हूं git mv oldname newname, इस तरह गिट यह पहचान लेगा कि यह एक चाल थी, न कि आपकी सभी फाइलों को हटाने और जोड़ने की।
आरोन ऐश

14
एकदम सही, पूरी तरह से Xcode 8.2 में काम करता है, इस योजना को संपादित करते समय केवल एक बात यहाँ बताई गई है यदि स्कीम के नाम पर क्लिक करने के बाद एक बार इसे संपादन योग्य नहीं बनाया जाता है तो स्कीम का चयन करें और वापसी कुंजी को हिट करें इससे स्कीम का नाम संपादन योग्य हो जाएगा।
खुर्रम शहजाद

5
अपने पुराने प्रोजेक्ट नाम के अन्य उदाहरणों को खोजने और बदलने के लिए मत भूलना ।
डेरेक सोइक

194

@ ल्यूक-वेस्ट के उत्कृष्ट उत्तर को जोड़ने के लिए:

कोकोआपोड्स का उपयोग करते समय

चरण 2 के बाद:

  1. XCode से बाहर निकलें।
  2. मास्टर फ़ोल्डर में, नाम बदलने OLD.xcworkspaceके लिए NEW.xcworkspace

चरण 4 के बाद:

  1. XCode में: Podfileप्रोजेक्ट नेविगेटर से चुनें और संपादित करें । आपको targetOLD नाम के साथ एक क्लॉज देखना चाहिए । इसे नए में बदलें।
  2. XCode से बाहर निकलें।
  3. प्रोजेक्ट फ़ोल्डर में, OLD.podspecफ़ाइल को हटा दें ।
  4. rm -rf Pods/
  5. भागो pod install
  6. XCode खोलें।
  7. प्रोजेक्ट नेविगेटर में अपने प्रोजेक्ट के नाम पर क्लिक करें।
  8. मुख्य फलक में, Build Phasesटैब पर स्विच करें ।
  9. के तहत Link Binary With Libraries, के लिए देखो libPods-OLD.aऔर इसे हटा दें।
  10. यदि आपके पास वस्तुनिष्ठ-ग ब्रिजिंग हेडर है तो बिल्ड सेटिंग्स पर जाएं और हेडर का स्थान ओएलडी / ओएलडी-ब्रिजिंग-हेडर से बदलकर नया / न्यू-ब्रिजिंग-हेडर करें।
  11. साफ करें और चलाएं।

7
Xcode 8.3.2 का उपयोग करते हुए मुझे नए नाम के साथ प्रोजेक्ट को चलाने के लिए cocoapods-deintegrate का उपयोग करना होगा और सभी पॉड्स को फिर से स्थापित करना होगा।
स्टेफेनक

2
@SteffenK उस विधि और rm -rf पॉड्स / के बीच अंतर है? यह देखते हुए कि आपने अन्य सभी कदम उठाए हैं?
वैडन

1
क्या आप कृपया विस्तार से बताएंगे? क्या निशान?
वैदिक

2
@ कोको के साथ काम करने पर अतिरिक्त स्पष्टता के लिए आपको बहुत बहुत धन्यवाद! प्रक्रिया ने एक दूसरा संदर्भ बनाया, जो अजीब था, लेकिन इसे हटाने के बाद सब कुछ पूरी तरह से काम कर रहा था! एक बार फिर धन्यवाद! :)
मैट स्विफ्ट

4
क्या कोई मुझे बता सकता है कि मुझे इस उत्तर में उल्लिखित OLD.podspec फ़ाइल कहाँ मिल सकती है? अपने प्रोजेक्ट में मैं 'Podfile' / 'Podfile.lock' / 'Pods.xcodeproj' की तरह कुछ फ़ाइलों मिला है और मैं 'स्थानीय Podspecs' नामक एक खाली फ़ोल्डर है, लेकिन मुझे एक .podspec फ़ाइल नहीं मिल सकता है
codeDude

51

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

कृपया cdकिसी गैर-लाभकारी संस्था से संपर्क करें N

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

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

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

अब हम से परियोजना का नाम बदलने के लिए जा रहे हैं oldNameकरने के लिए NewProject

  • 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'
  • Daud pod install
  • NewProjectFolderअपने भंडार में जोड़ें ।
  • आप कर चुके हैं!

3
इसके लिए धन्यवाद मुझे उपयोगी लगा। जब इस तरह से कमांड को कॉपी और पेस्ट करना मुझे पसंद है अगर काम को कम से कम किया जा सकता है तो "YourNewAmazingProjectName" का एक उदाहरण नाम ओवरकिल है, बस "उदाहरण" का उपयोग करें क्योंकि यह मेरी डिलीट कुंजी के जीवन को लम्बा खींचता है।
LpLrich

1
@LpLrich आपके सुझाव के लिए धन्यवाद, मैंने अभी अपना उत्तर अपडेट किया है।
पिएत्रो बास्सो

मुख्य फ़ोल्डर का नाम बदल दिया गया था, लेकिन मैं किसी भी अन्य निर्देशिका या फ़ाइलों का नाम नहीं देख रहा हूँ, कोई सुझाव?
एथन पार्कर

2
@EthanParker आपको find . -name 'oldName*' -print0 | xargs -0 rename --subst-all 'oldName' 'ExampleName'दो बार चलाने की जरूरत है , मुख्य फ़ोल्डर के अंदर फ़ाइलों और निर्देशिकाओं को दूसरे पुनरावृत्ति पर नाम दिया जाएगा।
पिएत्रो बैसो

1
मैंने अपने प्रोजेक्ट में CoreData का उपयोग किया और मुझे इस कमांड को दो बार नहीं बल्कि तीन बार चलाना पड़ा।
ShadeToD

21

एक GitHub परियोजना कहा जाता है Xcode Project Renamer:

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

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

अपने प्रोजेक्ट को वापस लाने के लिए मत भूलना!

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


यह शुरुआती लोगों के लिए उपयोगी नहीं है, यह मेरी मुख्य परियोजना फ़ाइल को भी भ्रष्ट करता है, यह समय बर्बाद करने वाले आदेशों के नीचे स्क्रिप्ट का उपयोग नहीं करता है। $ rm rename.swift
पीटर वाल्टर

शॉर्टकट के बाद मत जाओ।
पीटर वाल्टर

6
@ पीटर-वाल्टर आपको ऐसे ऑपरेशन से पहले हमेशा अपने डेटा का बैकअप रखना चाहिए।
ओल्के एर्टा

इसने एकदम जादू की तरह काम किया। केवल एक चीज गायब है जो आपको pod installस्क्रिप्ट चलाने के बाद चलाने की आवश्यकता है ।
रोमिन 21

11

XCode 11.0+।

यह अब वास्तव में आसान है। बस Project NavigatorXCode विंडो के बाएं पैनल पर जाएं। नाम बदलने के लिए इसे सक्रिय करने के लिए
दबाएँ Enter, जैसे आप फ़ोल्डर का नाम बदलते हैं।
यहाँ छवि विवरण दर्ज करें

बस यहां नया नाम बदलें, और XCode आपको अन्य सामानों के नाम बदलने के लिए कहेगा।

यहाँ छवि विवरण दर्ज करें

Renameयहां पर टैप करें और आप कर रहे हैं।
यदि आप अपने रूट फ़ोल्डर नाम के बारे में भ्रमित हैं कि यह क्यों नहीं बदला गया है, तो ठीक है कि यह सिर्फ एक फ़ोल्डर है। बस एक नए नाम के साथ इसका नाम बदला।
यहाँ छवि विवरण दर्ज करें


7

परियोजना का नाम बदलने के लिए;

  1. प्रोजेक्ट नेविगेटर में अपनी परियोजना का चयन करें।

2. फ़ाइल इंस्पेक्टर की पहचान और प्रकार अनुभाग में, नाम फ़ील्ड में एक नया नाम दर्ज करें।

3. वापसी।

एक संवाद प्रदर्शित किया जाता है, जो आपके प्रोजेक्ट में उन वस्तुओं को सूचीबद्ध करता है जिनका नाम बदला जा सकता है। संवाद में पूर्वावलोकन शामिल है कि परिवर्तन के बाद आइटम कैसे दिखाई देंगे।

  1. आइटम का नाम बदलने के लिए, जिन आइटमों का आप नाम बदलना नहीं चाहते हैं, उनके लिए चेकबॉक्स को अक्षम करें। केवल अपने ऐप का नाम बदलने के लिए, चयनित ऐप को छोड़ दें और अन्य सभी आइटमों को अचयनित करें।

  2. "नाम बदलें" दबाएँ


5

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

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

    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 फ़ोल्डर है। अपने नए नाम के लिए OLD फ़ोल्डर का नाम बदलें
  3. प्रोजेक्ट को फिर से खोलें, आपको एक चेतावनी दिखाई देगी: "फ़ोल्डर OLD मौजूद नहीं है", चेतावनी को खारिज कर दें
  4. बाईं ओर "प्रोजेक्ट नेविगेटर" में, शीर्ष स्तर OLD फ़ोल्डर नाम पर क्लिक करें
  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. साफ करें और चलाएं।

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


2
चरण 5.3 के rm-rf Pods/लिए क्लीनर के बजाय चलना है pod deintegrateजो आपके Xcode प्रोजेक्ट से CocoaPods के सभी निशान को हटाता है लेकिन आपके पॉडफाइल को बरकरार रखता है।
२०:४y बजे जक्काप्विक

यह नियम। इसने मुझे एक मौजूदा iOS ऐप के साथ एक ईओण ऐप को मर्ज करने की नींव प्रदान की।
t4l

2

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


1
एकमात्र व्यक्ति जिसने कभी इसका उल्लेख किया है!
फेटी

1
ध्यान दें कि आप इस क्षेत्र में "फिर से क्लिक" के आधार पर, इन्टरोल्यूशन बिल्डर कर सकते हैं। यह तब आपके नए प्रोजेक्ट के नाम को सही ढंग से "री-डिफॉल्ट" करेगा।
फटी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.