ios - mini - icloud data



फोनगैप 3.0 आईओएस प्लगइन्स नहीं मिला (10)

जब ऐसा होता है, ऐसा लगता है कि pbxproj फ़ाइल में परिवर्तन करने के लिए जिम्मेदार xcode npm संकुल कभी-कभी हटाए गए प्लगइन फ़ाइलों के संदर्भ छोड़ देता है। मैंने यह नहीं देखा है कि यह किस सटीक परिस्थितियों में होता है, लेकिन ऐसा लगता है कि यह अक्सर प्लगइन हटाने / जोड़ने के संचालन (उदाहरण के लिए प्लगइन अपडेट करने के लिए) होता है।

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

जब xcode npm पैकेज प्लगइन फ़ाइल संदर्भों को फिर से जोड़ने का प्रयास करता है, तो यह पहले जांचता है कि संदर्भ पहले से ही pbxproj में हैं या नहीं। यह PBXFileReference अनुभाग में दिखता है, और चूंकि इसे वहां प्लगइन के संदर्भ मिलते हैं, इसलिए आगे बढ़ने के बाद, हमें कहीं भी नहीं मिल रहा है।

मेरा समाधान, जब यह नीचे आता है तो एक हैक के बावजूद, xcode npm पैकेज को इसके बजाय PBXBuildFile अनुभाग को जांचने के लिए मजबूर करना है। उस अनुभाग में संदर्भ गुम हो जाएंगे और बदले में प्लगइन सही ढंग से पुनः स्थापित किया जाएगा।

इस लाइन पर pbxFileReferenceSection लिए pbxBuildFileSection बदलें: https://github.com/alunny/node-xcode/blob/master/lib/pbxProject.js#L620

अपने प्लगइन्स को दोबारा स्थापित करें, और आपको जाने के लिए अच्छा होना चाहिए।

मुझे एक्सकोड में यह त्रुटि मिल रही है:

2013-08-23 14:36:18.284 Tell The DJ[14955:c07] ERROR: Plugin 'Device' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-08-23 14:36:18.284 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [
  "Device1096677259",
  "Device",
  "getDeviceInfo",
  [

  ]
]
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] CDVPlugin class CDVConnection (pluginName: NetworkStatus) does not exist.
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] ERROR: Plugin 'NetworkStatus' not found, or is not a CDVPlugin. Check your plugin mapping in config.xml.
2013-08-23 14:36:18.285 Tell The DJ[14955:c07] -[CDVCommandQueue executePending] [Line 116] FAILED pluginJSON = [
  "NetworkStatus1096677260",
  "NetworkStatus",
  "getConnectionInfo",
  [

  ]
]

मैंने कमांड लाइन इंटरफेस के साथ फोनगैप 3.0 स्थापित किया और मेरी www फ़ाइलों को प्रोजेक्ट फ़ोल्डरों में पेस्ट किया। ऐप ठीक काम करता है लेकिन जब मैं डिवाइस आईडी, कैमरा, नेटवर्क कनेक्शन जैसे देशी कार्यों में आता हूं तो यह विफल हो जाता है और मुझे यह त्रुटि मिलती है। लेकिन मुझे लगता है कि मेरी config.xml सही है?

<?xml version='1.0' encoding='utf-8'?>
<widget id="io.cordova.helloCordova" version="2.0.0" xmlns="http://www.w3.org/ns/widgets">
    <name>Hello Cordova</name>
    <description>
        A sample Apache Cordova application that responds to the deviceready event.
    </description>
    <author email="[email protected]" href="http://cordova.io">
        Apache Cordova Team
    </author>
    <content src="index.html" />
    <feature name="LocalStorage">
        <param name="ios-package" value="CDVLocalStorage" />
    </feature>
    <access origin="http://dev.tellthedj.de" />
    <preference name="KeyboardDisplayRequiresUserAction" value="true" />
    <preference name="SuppressesIncrementalRendering" value="false" />
    <preference name="UIWebViewBounce" value="true" />
    <preference name="TopActivityIndicator" value="gray" />
    <preference name="EnableLocation" value="false" />
    <preference name="EnableViewportScale" value="false" />
    <preference name="AutoHideSplashScreen" value="true" />
    <preference name="ShowSplashScreenSpinner" value="true" />
    <preference name="MediaPlaybackRequiresUserAction" value="false" />
    <preference name="AllowInlineMediaPlayback" value="false" />
    <preference name="OpenAllWhitelistURLsInWebView" value="false" />
    <preference name="BackupWebStorage" value="cloud" />
    <preference name="orientation" value="portrait" />
    <preference name="webviewbounce" value="false" />
    <preference name="prerendered-icon" value="true" />
    <preference name="phonegap-version" value="3.0.0" />
    <preference name="fullscreen" value="false" />
    <preference name="stay-in-webview" value="false" />
    <preference name="android-minSdkVersion" value="7" />
    <preference name="android-installLocation" value="internalOnly" />
    <preference name="target-device" value="universal" />
    <preference name="autohide-splashscreen" value="true" />
    <preference name="load-url-timeout" value="60000" />
    <preference name="show-splashscreen-spinner" value="true" />
    <preference name="show-splash-screen-spinner" value="true" />
    <preference name="allow-inline-media-playback" value="false" />
    <preference name="launch-mode" value="standard" />
    <feature name="Media">
        <param name="ios-package" value="CDVSound" />
    </feature>
    <feature name="Camera">
        <param name="ios-package" value="CDVCamera" />
    </feature>
    <feature name="Console">
        <param name="ios-package" value="CDVLogger" />
    </feature>
    <feature name="Device">
        <param name="ios-package" value="CDVDevice" />
    </feature>
    <feature name="Notification">
        <param name="ios-package" value="CDVNotification" />
    </feature>
    <feature name="File">
        <param name="ios-package" value="CDVFile" />
    </feature>
    <feature name="FileTransfer">
        <param name="ios-package" value="CDVFileTransfer" />
    </feature>
    <feature name="Geolocation">
        <param name="ios-package" value="CDVLocation" />
    </feature>
    <feature name="Capture">
        <param name="ios-package" value="CDVCapture" />
    </feature>
    <feature name="NetworkStatus">
        <param name="ios-package" value="CDVConnection" />
    </feature>
    <feature name="SplashScreen">
        <param name="ios-package" value="CDVSplashScreen" />
    </feature>
    <plugins>
        <plugin name="Device" value="CDVDevice" />
    </plugins>
</widget>


Answer #2

मुझे एक ही समस्या का सामना करना पड़ा। मैंने जेफरी वान अल्स्टिन द्वारा दिए गए समाधान का पालन किया है। फोनगैप 3.0 / 3.1 का उपयोग करके विकसित आईओएस ऐप के निर्माण और परीक्षण के लिए यह मेरी स्क्रिप्ट है।

#!/bin/bash
echo "Killing xcode..."
kill $(ps aux | grep 'Xcode' | awk '{print $2}')
rm -r platforms/ios
rm plugins/ios.json
phonegap build ios
open platforms/ios/*.xcodeproj

इसे एक बैश फ़ाइल के रूप में सहेजें, उदाहरण के लिए, ios.sh आपकी कार्यशील निर्देशिका (निर्देशिका जिसमें www फ़ोल्डर है) में चलाएं और चलाएं ./ios.sh


Answer #3

मुझे लगता है कि आपको मेरे लिए सही config.xml का उपयोग करने की आवश्यकता है, यह एक्सकोड प्रोजेक्ट लक्ष्य फ़ोल्डर config.xml है, और मंच www फ़ोल्डर नहीं है


Answer #4

मैं कॉर्डोवा 3.7 का उपयोग करता हूं और मैंने कोबक्रित वीरियायुधकोर्न के समाधान के साथ समस्या हल की, लेकिन निश्चित रूप से आपको उपयोग करने की ज़रूरत है

cordova build ios    

के बजाय

phonegap build ios    

Answer #5

मैं प्लगइन मुद्दों के लिए प्लेटफार्मों को हटाने और फिर से जोड़ने के लिए बहुत थक गया हूँ! ऐसा लगता है कि यह अभी भी एक समस्या है (2014/10) जहां आप प्लेटफॉर्म जोड़ने के बाद किसी ऐप में प्लगइन जोड़ते हैं, तो प्लगइन कभी-कभी संबंधित प्लेटफ़ॉर्म फ़ोल्डरों / आदि तक प्रचारित नहीं होता है। नोट यह मुख्य रूप से आईओएस को प्रभावित करता है - एंड्रॉइड नहीं।

मुझे लगता है कि मेरा समाधान बस एक ही चीज करने का एक अद्यतन तरीका है जो पहले पोस्ट किया गया था - लेकिन एक्सकोड 6 में इस प्लेटफॉर्म को हटाने / पुनः जोड़ने के बिना इस तरह की चीज़ को ठीक करने के लिए I:

  • बाएं प्रोजेक्ट नेविगेटर पैनल में मेरे ऐप / प्लगइन्स फ़ोल्डर का विस्तार करें
  • सूची में प्रत्येक प्लगइन फ़ाइल पर क्लिक करें जो वर्तमान में लाल पाठ में है (एक बार में)
  • दाएं तरफ (उपयोगिताओं) पैनल पर जाएं और वास्तविक फ़ाइल में पुनः लिंक करने के लिए पहचान और प्रकार अनुभाग में फ़ोल्डर आइकन पर क्लिक करें (नीचे स्क्रीनशॉट देखें)।

उपरोक्त करने के बाद मेरी परियोजना आखिरकार बनाता है।


Answer #6

मैंने config.xml में "सुविधा" प्रविष्टि में "प्लगइन" प्रविष्टि को बदलकर इस समस्या का समाधान किया। (फोनगैप 3.1 / आईओएस का उपयोग कर)। फिक्स इस तरह दिखता है:

<feature name="DGGeofencing">
    <param name="ios-package" value="DGGeofencing"/>
</feature>

Answer #7

मैंने इस मुद्दे को सीएलआई टूल के माध्यम से नोड.जेएस और फोनगैप की पूरी तरह से पुनर्स्थापित करने के साथ हल किया


Answer #8

यह तब भी हो सकता है जब आपके पास एक प्लगइन है जिसे संदर्भित किया गया हो लेकिन इंस्टॉल नहीं किया गया हो। यदि आपने उपर्युक्त समाधानों का प्रयास किया है और संदर्भित प्लगइन की .m फ़ाइल नहीं मिल पाती है तो यह हो सकता है कि प्लगइन वास्तव में स्थापित नहीं है।

मैं यह सुनिश्चित करने के लिए आपकी प्लगइन्स निर्देशिका जांचूंगा कि इसमें फाइलें हैं। यदि नहीं, प्लगइन को पुनर्स्थापित करें। जब मैं config.xml से प्लगइन्स को पुनर्स्थापित करते समय गिट रेपो में टाइपो था, तो मैं इसमें भाग गया।


Answer #9

प्लेटफॉर्म / आईओएस फ़ोल्डर को हटाना मेरे लिए एक समाधान नहीं है क्योंकि एक्सकोड प्रोजेक्ट के सभी मैन्युअल अनुकूलन खो जाएंगे।

लेकिन चारों ओर एक आसान तरीका है:

एक्सकोड में, गोटो बिल्ड चरण -> संकलित स्रोत ड्रॉपडाउन खोलें। + पर क्लिक करें और लापता प्लगइन। एम फ़ाइल जोड़ें जो आपकी प्लगइन्स निर्देशिका में होनी चाहिए (लेकिन संकलित स्रोतों से गुम है)।

यह समाधान एक और स्टैक ओवरफ़्लो उत्तर से आया, यहां: https://.com/a/21148428/80254

एक और विकल्प:

एक्सकोड में सुनिश्चित करें कि प्लगइन की स्रोत फ़ाइलों में 'लक्ष्य सदस्यता' सेटिंग्स सेट हैं: फ़ाइल-एक्सप्लोरर में प्लगइन्स> CDVDevice.m पर जाएं और जांचें कि दाईं ओर "लक्षित सदस्यता" पर आपके ऐप नाम के बगल में कोई टिक है या नहीं एक्सकोड विंडो के पक्ष में। यह वास्तव में अन्य समाधान के समान होता है लेकिन थोड़ा और सुविधाजनक है।

यहां से: https://.com/a/20576744/80254





cordova