कॉर्डोवा config.xml के माध्यम से iOS .plist फ़ाइल में प्रवेश करें


80

मैं कॉर्डोवा सीएलआई के लिए नया हूं।

मुझे कॉर्डोवा के माध्यम से निम्नलिखित चरणों को प्रोग्रामेटिक रूप से करने की आवश्यकता है।

  1. परियोजना में .plist एक नई पंक्ति जोड़ते हैं
  2. नई पंक्ति में निम्नलिखित मान दर्ज करें:
  3. कुंजी : GDLibraryMode प्रकार : स्ट्रिंग (डिफ़ॉल्ट) मान : GDEnterpriseSimulation

मुझे लगता है कि मुझे अपने प्रोजेक्ट के रूट में config.xml फ़ाइल में ऐसा करने की आवश्यकता है (या "प्लेटफ़ॉर्म" फ़ोल्डर में शायद एक)।

क्या कोई मुझे समझा सकता है कि config.xml के माध्यम से प्रविष्टि कैसे जोड़ा जाए ताकि उपर्युक्त प्रविष्टि संकलन-समय पर जोड़ी जाए?

मैं कॉर्डोवा 3.3.1-0.42 का उपयोग कर रहा हूं (मुझे पता है कि यह नवीनतम नहीं है)। मैंने अपना प्रोजेक्ट पहले ही बना लिया है और सब ठीक है, मुझे बस इस प्रविष्टि को pList में जोड़ना है।


4
देर से आने वाले किसी भी व्यक्ति के लिए, प्रोजेक्ट प्लिस्ट में मूल्यों को स्थापित करना अब कॉर्डोवा सीएलआई 7 और इसके बाद के संस्करण द्वारा समर्थित है
घट जाती है

जवाबों:


67

मुझे नहीं लगता कि आप सीधे config.xmlसंशोधन के माध्यम से ऐसा कर सकते हैं । कम से कम, मैंने डॉक्स में इसका कोई उल्लेख नहीं देखा: http://cordova.apache.org/docs/en/3.3.0/config_ref_index.md.html

मुझे लगता है कि आपको एक प्लगइन बनाना होगा, क्योंकि वे प्लिस्ट प्रविष्टियाँ डाल सकते हैं: http://docs.phonegap.com/en/3.3.0/plugin_ref_spec.md.html#Plugin%20Specification

'Config-file element ’अनुभाग देखें। यहां एक अनुमान लगाया गया है कि संबंधित अनुभाग क्या plugin.xmlदिखेगा:

<platform name="ios">
<config-file target="*-Info.plist" parent="CFBundleURLTypes">
<array>
    <dict>
        <key>GDLibraryMode</key>
        <string>GDEnterpriseSimulation</string>
    </dict>
</array>
</config-file>
</platform>

तब आप प्लगइन स्थापित कर सकते हैं: cordova plugin add <your plugin name or file location>


1
@ माफ करना, मुझे आपका उत्तर याद आ रहा है ... मुझे लगा कि आपका समाधान गैप: कॉन्फिग-फाइल का उपयोग कर रहा है । अब, मैं आपके दृष्टिकोण (विशेष रूप से plist संशोधनों के लिए एक समर्पित प्लगइन बनाने) को समझ गया, मैं इसे आज़माऊंगा। धन्यवाद!
फाफमान

6
@mooreds, Cordova / PhoneGap प्रलेखन भ्रामक है। मुझे पता चला कि कुंजी को निर्दिष्ट किया जाना चाहिए parent, जबकि मूल्य का हिस्सा आंतरिक XML होना चाहिए। इस विशेष मामले में यह इस प्रकार होना चाहिए: <config-file target = "* - Info.plist" parent = "GDLibraryMode"> <string> GDEnterpriseSimulation </ string> </ config-file>
हरमन कान

4

1
धन्यवाद @rjhilgefort, इतना आसान! :)
josebailo

2
संदर्भ के लिए, कॉर्डोवा सीएलआई 7+ के रूप में, यह तत्व के माध्यम से किया जा सकता है - यह कैसे करें के विवरण के लिए अन्य उत्तर देखें। config.xml<config-file>
घट जाती है

43

मैं वास्तव में एक कॉर्डोवा हुक का उपयोग करके @ जेम्स के समाधान को पसंद करता हूं । हालाँकि, दो मुद्दे हैं। डॉक्स राज्य:

  • "हम अत्यधिक Node.js का उपयोग करके अपने हुक लिखने की सलाह देते हैं "
  • " /hooksनिर्देशिका को हुक तत्वों के पक्ष में पदावनत माना जाता है config.xml"

यहाँ का उपयोग कर एक Node.js कार्यान्वयन है plist NPM पैकेज:

var fs    = require('fs');     // nodejs.org/api/fs.html
var plist = require('plist');  // www.npmjs.com/package/plist

var FILEPATH = 'platforms/ios/.../...-Info.plist';

module.exports = function (context) {

    var xml = fs.readFileSync(FILEPATH, 'utf8');
    var obj = plist.parse(xml);

    obj.GDLibraryMode = 'GDEnterpriseSimulation';

    xml = plist.build(obj);
    fs.writeFileSync(FILEPATH, xml, { encoding: 'utf8' });

};

कॉर्डोवा द्वारा प्रदान किए गए सभी हुक प्रकारों में से आपकी स्थिति के लिए प्रासंगिक हैं:

  • after_prepare
  • before_compile

एक हुक प्रकार चुनें, और फिर अपनी config.xmlफ़ाइल में हुक जोड़ें :

<platform name="ios">
    <hook type="after_prepare" src="scripts/my-hook.js" />
</platform>

नोड plistलाइब्रेरी में मेरी पलस्ट फाइल को पार्स करने के कुछ मुद्दे थे, इसलिए मैं इस समाधान का उपयोग करने में असमर्थ था और जेम्स के साथ चला गया ', जो PListBuddy निष्पादन योग्य का उपयोग करता है, जो मैक पर शामिल है। यह एक अच्छा समाधान था, यदि केवल plistपुस्तकालय अधिक विश्वसनीय था। config.xmlजैसा कि आपने सिफारिश की मैंने अपनी स्क्रिप्ट को फ़ाइल से संदर्भित किया ।
Stephen.hanson

अच्छा लगा! किसी भी अतिरिक्त प्लगइन्स और आकर्षण की तरह काम करने की आवश्यकता नहीं है! इस तरह के एक सरल मुद्दे के लिए अन्य सभी समाधान जटिल या पुराने हैं।
Arno van Oordt

प्लिस्ट एनपीएम मॉड्यूल गंभीरता से टूट गया है। जब स्रोत फ़ाइल में रिक्त मान होते हैं, तो यह अमान्य .plist फ़ाइल का उत्पादन करेगा। इसके बजाय सिंपल-प्लिस्ट का इस्तेमाल करें।
23

मुझे कॉर्डोवा @ 8 के साथ एक स्थानीय प्लगइन को जोड़ने में बहुत परेशानी हुई, यह समाधान मेरे मामले में बहुत बेहतर काम करता है और सरल है
जीन-बैप्टिस्ट मार्टिन

32

आप * -Info.plist फ़ाइल को संशोधित करने के लिए कॉर्डोवा हुक स्क्रिप्ट के अंदर प्लिस्टबॉडी उपयोगिता का उपयोग कर सकते हैं ।

उदाहरण के लिए, मेरे पास निम्न स्क्रिप्ट है, <project-root>/hooks/after_prepare/010_modify_plist.shजिसके तहत एक शब्दकोश संपत्ति मिलती है और उस शब्दकोश में एक प्रविष्टि जोड़ता है:

#!/bin/bash

PLIST=platforms/ios/*/*-Info.plist

cat << EOF |
Add :NSAppTransportSecurity dict
Add :NSAppTransportSecurity:NSAllowsArbitraryLoads bool YES
EOF
while read line
do
    /usr/libexec/PlistBuddy -c "$line" $PLIST
done

true

स्क्रिप्ट को निष्पादन योग्य बनाना सुनिश्चित करें ( chmod +x)।

trueस्क्रिप्ट के अंत में क्योंकि है PlistBuddyएक त्रुटि बाहर निकलने के कोड के साथ रिटर्न अगर कुंजी जा रहा है जोड़ा पहले से मौजूद है, और यदि कुंजी पहले से मौजूद पता लगाने के लिए एक तरीका प्रदान नहीं करता है। कॉर्डोवा एक बिल्ड त्रुटि की रिपोर्ट करेगा यदि हुक स्क्रिप्ट एक त्रुटि स्थिति के साथ बाहर निकलता है। बेहतर त्रुटि से निपटने संभव है लेकिन लागू करने के लिए एक दर्द।


यह काम करता हैं! मैंने आपके और TachyonVortex के समाधान दोनों की कोशिश की। TachyonVortex के समाधान का उपयोग करने वाले नोड.जेएस लाइब्रेरी ने मेरे PList फ़ाइल को सही ढंग से पार्स नहीं किया, जबकि आपके उत्तर में उपयोग किए गए मैक-शामिल PListBuddy ने किया था। मैं config.xmlहालांकि TachyonVortex के रूप में सिफारिश से हुक का संदर्भ दिया ।
Stephen.hanson

1
अगर आप ALWAYS को हर बार प्लिस्ट को अपडेट करना चाहते हैं, भले ही कुंजी पहले से मौजूद हो तो Remove : NSAppTransportSecurity ऐड स्टेटमेंट से ठीक पहले जोड़ें और यह पहले NSAppTransportSecurity को हटा देगा, फिर इसे जोड़ें। यह कुछ भी दुर्घटना नहीं होनी चाहिए।
शमूएल थॉम्पसन

22

ये वे चरण हैं जिन्हें मैंने अपने एप्लिकेशन को डिवाइसों के बीच इट्यून्स के माध्यम से फ़ाइलें साझा करने में सक्षम बनाने के लिए किया है।

1. अपने आवेदन में अपने config.xml में नेविगेट करें। प्लेटफ़ॉर्म टैग के तहत इस टुकड़े को अपने कॉन्फिगर में टाइप करें <platform name="ios">

 <config-file platform="ios" target="*-Info.plist" parent="UIFileSharingEnabled">
      <true/>
  </config-file>

2. फिर अपने कमांड लाइन टूल पर जाएं और कॉर्डोवा तैयार करें

  1. अपने डिवाइस पर अपने एप्लिकेशन को अनइंस्टॉल और पुनर्स्थापित करें, और आप देखेंगे कि आपका ऐप आपके डिवाइसों के बीच किसी भी फाइल को साझा करने के लिए itunes में दिखाई देगा।

कुछ चीजें, सुनिश्चित करें कि कॉर्डोवा अद्यतित है, और आपने ios के लिए प्लेटफ़ॉर्म जोड़ा है।

npm install -g cordova

यह कमांड कॉर्डोवा स्थापित करता है।

cordova platform add ios

यह कमांड ios के लिए प्लेटफॉर्म जोड़ता है।

क्या हो रहा है जब आप कॉर्डोवा तैयार कमांड चलाते हैं तो आप Apple के Xcode एसडीके का उपयोग कर रहे हैं जो प्लेटफॉर्म / आईओएस फ़ोल्डर में उत्पन्न होता है। वहां आप अपने एप्लिकेशन के लिए उत्पन्न plist फ़ाइल देख सकते हैं, जिसे "yourApp-info.plist" के रूप में लेबल किया गया है। वहां आप xml लेआउट में उत्पादित नई कुंजी और स्ट्रिंग देख सकते हैं जो इस तरह दिखता है:

 <key>UIFileSharingEnabled</key>
 <true/>

चेतावनी के शब्द, मेरी कंपनी ने कुछ हफ़्ते पहले (वास्तव में कम समय सीमा के साथ) इस आयनिक फ्रेमवर्क एप्लिकेशन को मेरी गोद में गिरा दिया। जो कुछ मैं आपको बता रहा हूं वह सब कुछ कुछ हफ्तों के सीखने पर आधारित है। तो यह सबसे अच्छा अभ्यास नहीं हो सकता है, लेकिन मुझे आशा है कि यह किसी को बाहर करने में मदद करता है।

संपादित करें

डॉक्स से लिंक करें


4
क्या इसके लिए कुछ और काम करना आवश्यक है? मैं कॉर्डोवा 6.2 (नवीनतम उत्पादन) का उपयोग कर रहा हूं और भले ही मैंने config.xml में प्रवेश को जोड़ा है, लेकिन मैं इसे प्लिस्ट में नहीं देखता हूं। क्या यह संभव है कि आपके पास कॉर्डोवा कस्टम कॉन्फिग प्लगइन ( github.com/dpa99c/cordova-custom-config ) है?
तोमर कागन

1
एक जादू की तरह काम करता है। धन्यवाद।
लोगुस

<config-file>तत्व तो Cordova CLI का नवीनतम संस्करण के साथ कॉर्डोबा CLI संस्करण 7 में जोड़ा गया है,, इस काम करता है (देखें कॉर्डोबा-रिवाज-config के लेखक से एक प्रतिलिपि प्रस्तुत करने योग्य सबूत के लिए इस GitHub मुद्दा )।
घट जाती है

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

14

ऐसा लगता है कि config.xml का उपयोग करके अब संभव हो सकता है: कम से कम कुछ मुख्य प्लगइन लेखक ऐसा कहते हैं। उदाहरण के लिए, कॉर्डोवा कैमरा प्लगइन के लिए डॉक्स में , वे iOS 10 में नई आवश्यकता पर चर्चा करते हैं कि आप plist में एक अनुमति संदेश स्ट्रिंग प्रदान करते हैं। इसे पूरा करने के लिए, वे सुझाव देते हैं कि प्लगइन को जोड़ना तर्कों के साथ कमांड जोड़ें, इस प्रकार:

cordova plugin add cordova-plugin-camera --variable CAMERA_USAGE_DESCRIPTION="My App would like to access your camera, to take photos of your documents."

इसका परिणाम यह होता है कि आपको न केवल <plugin>config.xml में एक नया जोड़ा जाता है, बल्कि इसमें एक <variable>बच्चा होता है:

<plugin name="cordova-plugin-camera" spec="~2.3.0">
    <variable name="CAMERA_USAGE_DESCRIPTION" value="My App would like to access your camera, to take photos of your documents." />
</plugin>

जो तब मेरी info.plist में नई कुंजी के लिए सहसंबंधी लगता है, शायद किसी तरह रनटाइम पर मान गुजर रहा है?

  <key>NSCameraUsageDescription</key>
  <string/>
  <key>NSPhotoLibraryUsageDescription</key>
  <string/>

मैं झूठ बोल रहा हूँ अगर मैंने कहा कि मुझे पता है कि यह कैसे काम करता है, लेकिन यह इस तरह इंगित करता है।


CAMERA_USAGE_DESCRIPTION NSCameraUsageDescription में पास हो जाता है। यदि आप NSPhotoLibraryUsageDescription के लिए कोई मान जोड़ना चाहते हैं तो आपको भी जोड़ना होगा<variable name="PHOTOLIBRARY_USAGE_DESCRIPTION" value="whatever" />
Nico Westerdale

1
यदि आप PhoneGap बिल्ड सेवा का उपयोग कर रहे हैं तो यह उन मूल्यों को सेट करने के लिए अनुशंसित तरीका है
निको वेस्टरडेल

मुझे अपनी बिल्ड के स्वीकार किए जाने के लिए <string>Random camera usage text</string>नीचे एक कुंजी जोड़ना था <key>NSCameraUsageDescription</key>। कॉन्फ़िगरेशन पाठ नहीं जोड़ता है
Slartibartfast

9

अद्यतन: लोग iOS> = 10. के साथ कैमरे का उपयोग करना चाहते हैं, इसका मतलब है कि सामान्य रूप से आप प्लगइन में कॉन्फ़िगर कर सकते हैं:

 <!-- ios -->
 <platform name="ios">

     <config-file target="*-Info.plist" parent="NSLocationWhenInUseUsageDescription">
         <string></string>
     </config-file>
     <config-file target="*-Info.plist" parent="NSCameraUsageDescription">
         <string></string>
     </config-file>
      <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
         <string></string>
     </config-file>

 </platform>

लेकिन अभी के लिए, आप कॉन्फ़िगर NSCameraUsageDescriptionऔर NSPhotoLibraryUsageDescriptionप्लगइन में नहीं कर सकते । आपको उन्हें प्लेटफ़ॉर्म -> iOS प्रोजेक्ट द्वारा Xcode या *-Info.plistफ़ाइल में कॉन्फ़िगर करना होगा ।

IOS 10 के बाद से info.plist में NSCameraUsageDescription और NSPhotoLibraryUsageDescription जोड़ना अनिवार्य है।

और जानें: https://www.npmjs.com/package/cordova-plugin-camera


8

मैं बिना किसी अतिरिक्त प्लगइन या आयात के ईओण 3 में निम्नलिखित का उपयोग कर रहा हूं और मुझे लगता है कि यह दूसरों के लिए मददगार हो सकता है:

<platform name="ios">
    <edit-config file="*-Info.plist" mode="merge" target="NSLocationWhenInUseUsageDescription">
        <string>Location is required so we can show you your nearby projects to support.</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSCameraUsageDescription">
        <string>Camera accesss required in order to let you select profile picture from camera.</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="NSPhotoLibraryUsageDescription">
        <string>Photo library accesss required in order to let you select profile picture from gallery / library.</string>
    </edit-config>
</platform>

4

आप प्लगइन्स डायरेक्ट्री में ios.json को सीधे एडिट करके ऐप के प्लिस्ट में डिस्प्ले नाम सेट कर सकते हैं।

Ios.json फ़ाइल के config_munge.files अनुभाग में निम्नलिखित को जोड़ना चाल को करेगा और CLI का उपयोग करते समय भी इसे बनाए रखा जाएगा।

"*-Info.plist": {

    "parents": {
        "CFBundleDisplayName": [
            {
                "xml": "<string>RevMob Ads Cordova Plugin Demo</string>",
                "count": 1
            }
        ]
    }
}

यहाँ एक पूर्ण उदाहरण है


1
कोर्डोवा के लिए विजुअल सॉट्डियो टूल्स से चलने पर यह काम नहीं करता है, क्योंकि ios.json टूल द्वारा ओवरराइट हो जाता है।
हरमन कान

2
इस उत्तर के साथ दो मुद्दे हैं। सबसे पहले, किसी भी मैनुअल संपादन को उसके बाद /plugins/ios.jsonचलने पर खो दिया जाएगा । दूसरा, @ Red2678 ने "कोर्डोवा के माध्यम से प्रोग्राम को संपादित करने का प्रदर्शन करने के लिए एक समाधान के लिए कहा ... ताकि संकलन-समय पर नई प्रविष्टि को जोड़ा जाए।" cordova platform remove ioscordova platform add ios
TachyonVortex

3

@TachyonVortex समाधान सबसे अच्छा विकल्प लगता है, लेकिन मेरे मामले में नीचे गिर रहा था। समस्या एक रिक्त NSMainNibFile फ़ील्ड के कारण होती है जो plist NPM पैकेज द्वारा सही रूप से परिवर्तित नहीं होती है। में .plist फ़ाइल

    <key>NSMainNibFile</key>
    <string></string>
    <key>NSMainNibFile~ipad</key>
    <string></string>

में परिवर्तित किया गया है:

    <key>NSMainNibFile</key>
    <string>NSMainNibFile~ipad</string>

मैंने इसे स्क्रिप्ट में जोड़कर तय किया:

    obj.NSMainNibFile = '';
    obj['NSMainNibFile~ipad'] = '';

स्क्रिप्ट आखिरकार (स्क्रिप्ट्स / my-hook.js) जैसी दिखती है:

var fs    = require('fs');     // nodejs.org/api/fs.html
var plist = require('plist');  // www.npmjs.com/package/plist

var FILEPATH = 'platforms/ios/***/***-Info.plist';

module.exports = function (context) {

    var xml = fs.readFileSync(FILEPATH, 'utf8');
    var obj = plist.parse(xml);

    obj.GDLibraryMode = 'GDEnterpriseSimulation';
    obj.NSMainNibFile = '';
    obj['NSMainNibFile~ipad'] = '';

    xml = plist.build(obj);
    fs.writeFileSync(FILEPATH, xml, { encoding: 'utf8' });

};

और config.xml:

<platform name="ios">
    <hook type="before_build" src="scripts/my-hook.js" />
</platform>

मैंने इस कोड के साथ डायरेक्टरी patch_plist.jsमें लिखा है hooks/after_platform_add। लेकिन मैं अभी भी <key>NSMainNibFile</key><string>NSMainNibFile~ipad</string>अपनी फाइल में मिलता हूं। किसी भी विचार कैसे मैं इस मुद्दे को हल कर सकता है कृपया?
रोमेन आर।


2

हाँ यह संभव है!

मैं कॉर्डोवा 9.0.0 (कॉर्डोवा-lib@9.0.1) का उपयोग कर रहा हूं।

उदाहरण के लिए यह कॉन्फ़िगरेशन फ़ाइल है जिसे मैंने Info.plist में नया स्ट्रिंग मान सम्मिलित करने के लिए उपयोग किया था:

<platform name="ios">
    <edit-config file="*-Info.plist" mode="merge" target="NSMicrophoneUsageDescription">
        <string>My awesome app wish to hear your awesome voice through Microphone. Not for fancy stuff, just want to hear you.</string>
    </edit-config>
    <edit-config file="*-Info.plist" mode="merge" target="---Key configuration---">
        <string>---string value---</string>
    </edit-config>
</platform>

उसके बाद, अपने टर्मिनल में इस दो कमांड को चलाकर अपनी स्टेजिंग फ़ाइल को फिर से बनाना न भूलें:

cordova platform rm ios
cordova platform add ios

परिवर्तन की पुष्टि करने के लिए, आप नई उत्पन्न .plist फ़ाइल को xCode के साथ खोलकर जांच सकते हैं।

-Info.plist फ़ाइल यहां स्थित है:

./platform/ios/[your app name]/[your app name]-Info.plist

edit-configलक्ष्य मान लेता है कि पहले से ही आपकी मुट्ठी में मौजूद है। बस स्पष्ट होने के लिए, यदि आप एक नई कुंजी / स्ट्रिंग जोड़ी जोड़ना चाहते हैं, तो आपको config-fileइसके बजाय का उपयोग करना चाहिए , जो नए बच्चों को xml पेड़ में जोड़ता है
डैनियल लिज़िक

1

यदि आप अपने में .plistएक <config-file>टैग के साथ एक देशी आईओएस प्लगइन में संशोधन करने की कोशिश कर रहे हैं plugin.xml, तो यहां आपको यह करने की आवश्यकता है:

  1. सुनिश्चित करें कि आपका .plistxml है, बाइनरी नहीं! आप plutilद्विआधारी .plistको xml में परिवर्तित करने के लिए उपयोग कर सकते हैं , और इसे संस्करण नियंत्रण के लिए प्रतिबद्ध कर सकते हैं।

    plutil -convert xml1 Info.plist

  2. <config-file>संकेत के लिए निर्देशtarget= जो जेनरेट की गई xcode परियोजना के सापेक्ष है platforms/ios/<project>/, लेकिन मैंने पाया कि मुझे काम करने के लिए अपने रास्ते पर एक वाइल्डकार्ड चरित्र को प्रस्तुत करने की आवश्यकता थी:

    target="*/Resources/MyResources.bundle/Info.plist"

  3. यदि आप के शीर्ष स्तर पर एक कुंजी जोड़ना चाहते हैं .plist, तो आपको मूल नाम के बराबर माता-पिता को सेट करने की आवश्यकता है, और फिर <string>मूल्य के साथ एक टैग घोंसला करें । एक <array>या <dict>किसी भी उदाहरण शो के रूप में उपयोग करने से इन कुंजियों के नीचे घोंसला हो जाएगा parent

यहां एक संपूर्ण उदाहरण दिया गया है जो कई शीर्ष स्तरीय गुणों को जोड़ने के लिए मेरे लिए काम करता है:

<platform name="ios">
    <config-file target="*/Resources/MyResources.bundle/Info.plist" parent="MyDistribution">
        <string>Cordova</string>
    </config-file>
    <config-file target="*/Resources/MyResources.bundle/Info.plist" parent="MyVersion">
        <string>3.2.0</string>
    </config-file>
</platform>

इसने मेरे लिए काम नहीं किया। मैंने जोड़ने की कोशिश की कि आपके पास क्या है, और मेरी मुट्ठी में कुछ भी नहीं बदला
सैमुअल थॉम्पसन

पहली बार मूल निर्देशिका में प्लिस्ट रखकर कारण को कम करने का प्रयास करें? दुर्भाग्य से, यह सुविधा चुपचाप विफल रहती है जहां तक ​​मैं बता सकता हूं।
स्काई केल्सी

0

मैं बड़ी परियोजनाओं के लिए after_prepare हुक पसंद करता हूं या यदि आपके पास समान अनुमतियों का उपयोग करके कई प्लगइन्स हैं। लेकिन आप हमेशा सरल तरीके से जा सकते हैं:

बस: - इच्छित अनुमति की आवश्यकता वाले प्लगइन को हटा दें - इसे फिर से जोड़ें - save - config.xml में, प्लगइन अब एक खाली विवरण के साथ एक नया चर है जिसे आप भर सकते हैं - अब ios के साथ निर्माण करें - विमोचन और उन्हें सेट किया जाएगा।


-4

आपको केवल निम्नलिखित चरणों की आवश्यकता है 1

प्रोजेक्ट नेविगेटर पर जाएं लक्ष्य का चयन करें टैब विकल्प से जानकारी पर क्लिक करें अन्य विकल्प बिल्ड सेटिंग चरण का निर्माण कर रहे हैं आप कुंजी प्रकार का मूल्य देखेंगे जब आप किसी भी महत्वपूर्ण नाम पर इंगित करते हैं तो आपको + और - साइन इन करें Key: GDLibraryModeकुंजी अनुभाग Type:Stringमें + साइन राइट पर क्लिक करें । Value:GDEnterpriseSimulationमूल्य खंड में tyoe अनुभाग


1
मैं पूरी तरह से ऐसा करना चाहता हूं, लेकिन जब मैं सीएलआई से कॉर्डोवा ऐप संकलित करता हूं, तो प्रोजेक्ट का फ़ोल्डर मूल रूप से हटा दिया जाता है और फिर से बनाया जाता है। फिर मुझे हर बार मेरे द्वारा संकलित (ऐसा नहीं है कि कठिन है) उपरोक्त करना होगा, लेकिन मैं यह उम्मीद कर रहा था कि मेरे लिए इसे करने के लिए कॉर्डोवा के config.xml का उपयोग करें।
Red2678

क्या आप मुझे बता सकते हैं कि आपके द्वारा ऐप को एक्सकोड के माध्यम से चलाने की आवश्यकता क्यों है, तो यह समाधान आपके लिए काम करता है
Nitin

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