2016-09-28 31 views
14

में स्विफ्ट निर्भरताओं को कैसे अपडेट करें निर्भरता के साथ एक नया स्विफ्ट पैकेज बनाने के बाद मैं swift package generate-xcodeproj पर कॉल करता हूं। अगर मेरी निर्भरताओं का एक नया संस्करण है तो मैं swift package update पर कॉल करता हूं। मेरी निर्भरता का नया संस्करण डाउनलोड और बनाया जाता है लेकिन एक्सकोड पर अब निर्भरता के पुराने संस्करण का बुरा संदर्भ है। मैं फिर से swift package generate-xcodeproj पर कॉल कर सकता हूं लेकिन यह मेरे द्वारा सेट किए गए किसी भी कस्टम लक्ष्य को हटा देगा।एक्सकोड

मैं अपने कस्टम लक्ष्य को हटाए बिना अपनी त्वरित निर्भरताओं और मेरे एक्सकोड प्रोजेक्ट को कैसे अपडेट करूं?

+1

मेरे पास यह वही प्रश्न है। '.xcodeproj' की एक नई प्रति उत्पन्न करने से भी किसी भी फ़ोल्डर संरचना को हटा दिया जाता है जिसका उपयोग स्रोत फ़ाइलों को व्यवस्थित करने के लिए किया जा रहा था। –

+1

मैंने इसके साथ मदद करने के लिए एक उपकरण बनाया है। https://github.com/saltzmanjoelh/XcodeHelperCli इसे बनाने और इसे/usr/local/bin पर कॉपी करने के बाद या जहां भी आप 'xchelper update-packages -s' कह सकते हैं, यह आपके संकुल को अपडेट करेगा और आपके एक्सकोड प्रोजेक्ट के लिए सिम्लिंक बनाएगा। इस तरह जब आपके पैकेज नए संस्करण प्राप्त करते हैं, तो आपको मैन्युअल रूप से संदर्भों को अपडेट करने की आवश्यकता नहीं होती है। – joels

उत्तर

8

जेनरेट किए गए प्रोजेक्ट में अपने परिवर्तनों को संरक्षित करने की कोशिश करने के बजाय, आप एक अलग परियोजना में निर्भरता का प्रबंधन कर सकते हैं, जैसे कोकोपोड करता है।

नई परियोजना शुरू करने जब:

  1. अपने अनुप्रयोग MyApp.xcodeproj
  2. के लिए Xcode परियोजना बनाने को बचाने एक कार्यक्षेत्र MyApp.xcworkspace
  3. Package.swift
  4. करने के लिए अपने निर्भरता के लिए पैकेज बनाने mkdir MyDeps && cd MyDeps swift package init --type library
  5. निर्भरता को जोड़ने के रूप में निर्भरता पैकेजके लिए एक्सकोड परियोजना उत्पन्न करें swift package generate-xcodeproj
  6. ऐड उत्पन्न परियोजना MyDeps.xcodeproj अपने कार्यक्षेत्र MyApp.xcworkspace
  7. ऐड लक्ष्य MyDeps.framework अपने अनुप्रयोग MyApp.xcodeproj

की लिंक्ड फ़्रेमवर्क इस सेटअप आप स्वतंत्र रूप से Package.swift में निर्भरता अद्यतन कर सकते हैं और इस पर निर्भर परियोजना को पुनर्जीवित के साथ के रूप में की जरूरत के लिए ।

+0

मुझे यह पसंद है - ठोस कामकाज। –