2016-01-27 9 views
15

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

सबकुछ ठीक काम करता है जब तक कि मुझे प्रत्येक स्टोरीबोर्ड दृश्य के लिए मॉड्यूल संदर्भ बदलने की याद आती है, ताकि यह संबंधित घड़ीकिट एक्सटेंशन लक्ष्य में सही इंटरफ़ेस नियंत्रक के लिए मानचित्र हो।

हालांकि, हर बार जब मुझे एप संस्करण/लक्ष्य चलाने/निर्माण करने की आवश्यकता होती है, तो यह एक दर्द है और वास्तव में एक दीर्घकालिक समाधान नहीं है।

मैंने निम्न आदेश बनाया है जिसे मैं सही समय पर चलाने के लिए चाहता हूं, जैसे कि यह संकलित होने से पहले स्टोरीबोर्ड संदर्भों को बदलता है।

perl -pi.bak -e 's/customModule=\"(.*?)\">/customModule=\"watchMyTarget_Extension\">/g' ${SRCROOT}/watch/Base.lproj/Interface.storyboard 

मैं भी निष्कर्ष निकाला है कि मैं शायद बदलाव को रीसेट करना के बाद एप्लिकेशन संकलित किया गया था, के बाद से मैं Git बारे में शिकायत करने के लिए एक फ़ाइल परिवर्तन नहीं करना चाहती चाहते हैं। यही कारण है कि उपरोक्त स्क्रिप्ट एक .bak फ़ाइल बनाता है। तो बाद संकलन किया है और पैक किया जाता है/उपकरण या जो कुछ भी पर चलाने के लिए, मैं चलाने के लिए

mv ${SRCROOT}/watch/Base.lproj/Interface.storyboard.bak ${SRCROOT}/watch/Base.lproj/Interface.storyboard 

मैं लक्ष्य के (watchTarget, नहीं appTarget) योजना का निर्माण, Build->Pre/Post Actions ये नही किया में स्क्रिप्ट रखने की कोशिश की है चाहता हूँ प्रतीत होता है कि कोई प्रभाव पड़ता है। और मैंने इसे Run->Pre/Post Actions में डालने का प्रयास किया जो कुछ हद तक काम करता था, लेकिन ऐसा लगता है कि एप को सिम्युलेटर पर धक्का दिया गया था और इस प्रकार एप्लिकेशन को दुर्घटनाग्रस्त कर दिया गया था ("डिवाइस लॉग नहीं देख सका" या ऐसा कुछ)।

तो पृथ्वी पर जहां मुझे इन स्क्रिप्ट को निर्माण प्रक्रिया में सही समय पर चलाने की आवश्यकता है?

उत्तर

2

आप अपने लक्ष्य के चरण बिल्ड में नई भागो स्क्रिप्ट चरण जोड़ने का उपयोग करना चाहिए से पहले संकलित सूत्रों का कहना है

कदम रख: (Apple से)

  1. परियोजना संपादक में, लक्ष्य चुनें, जिन पर आप रन स्क्रिप्ट बिल्ड चरण जोड़ना चाहते हैं।
  2. प्रोजेक्ट एडिटर के शीर्ष पर चरण बनाएं पर क्लिक करें।
  3. संपादक चुनें> बिल्ड चरण जोड़ें> रन स्क्रिप्ट बिल्ड चरण जोड़ें।
  4. प्रोजेक्ट एडिटर में रन स्क्रिप्ट अनुभाग का खुलासा करें।
  5. रन स्क्रिप्ट टेम्पलेट में स्क्रिप्ट को कॉन्फ़िगर करें।
+0

मैंने सफलता के बिना यह कोशिश की है। मुझे इसे पहले और बाद में चलाने के लिए चलाने की आवश्यकता है।चूंकि मैं घड़ी के लक्ष्य को शुरू करने से पहले घड़ी स्टोरीबोर्ड को बदलना चाहता हूं, और उसके बाद इसे – tskulbru

+0

@tskulbru बनाया गया है इसे साफ करने के बाद इसे वापस लेना है, आपको संग्रह के बाद इसे करना चाहिए, संग्रह के बाद के कार्यों में क्लीनअप कमांड डालें । – Allen

+0

मैंने अपनी मुख्य ऐप बिल्ड स्कीम से क्लीनअप के लिए बिल्ड/आर्काइव इत्यादि के पोस्ट-एक्शन का उपयोग करने की कोशिश की लेकिन कुछ कारणों से ऐसा लगता है कि यह देर से पर्याप्त नहीं था और बदलावों को घड़ी ऐप में वापस शामिल किया गया था, जो तब इंस्टॉल करने में विफल रहा क्योंकि यह इंस्टॉल नहीं हुआ सही परिवर्तन है। – tskulbru

0

मेरे समाधान उत्पाद मॉड्यूल का नाम, उदाहरण के लिए, एक ही मूल्य के लिए सेटिंग xxx_watch_extension, बिल्ड सेटिंग्स प्रत्येक घड़ी विस्तार लक्ष्य के जाना है। फिर हमें स्टोरीबोर्ड पर कस्टम कक्षाओं के लिए इस मॉड्यूल को चुनने में सक्षम होना चाहिए।

यह मेरे लिए ठीक काम करता है।

संबंधित मुद्दे