2015-03-24 7 views
6

मैं ओएस एक्स पर नवीनतम कॉर्डोवा (4.3) के साथ काम कर रहा हूं और मेरे पास 2 मैकबुक प्रो से जुड़े आईफोन हैं। जब भी मेरे एप्लिकेशन का परीक्षण करना चाहते हैं, मैं टर्मिनल में निम्नलिखित कमांड चलाएँ:एक निर्दिष्ट आईफोन डिवाइस पर सीएलआई के माध्यम से कॉर्डोवा ऐप को कैसे तैनात किया जाए?

cordova run ios --device 

स्क्रिप्ट टर्मिनल में निम्न उत्पादन का उत्पादन:

** BUILD SUCCEEDED ** 
[....] Waiting up to 5 seconds for iOS device to be connected 
[....] Found iPhone 4S 'iPhone 4S' (0b2799xxxxx) connected through USB. 
[....] Found iPhone 4 (GSM) 'QA iPhone 4' (40daa94b6dc607595a570c0893ba54b185a85124) connected through USB. 
[....] Waiting for iOS device to be connected 
[....] Using iPhone 4S 'iPhone 4S' (0b27990xxxxxx) (0b2799xxxx). 
------ Install phase ------ 
[ 0%] Found iPhone 4S 'iPhone 4S' (0b279904xxxxxxx) connected through USB, beginning install 

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

जब मैं lldb से बाहर निकलें ('exit' 'y' के माध्यम से), स्क्रिप्ट एक त्रुटि दिखाता है:

Quitting LLDB will kill one or more processes. Do you really want to proceed: [Y/n] y 
Error code 253 for command: ios-deploy with args: -d,-b,/Users/path_to_app/appname.app 
ERROR running one or more of the platforms: Error: /Users/path_to_app/platforms/ios/cordova/run: Command failed with exit code 2 
You may not have the required environment or OS to run this project 

मैं सभी Cordova CLI प्रलेखन और गूगल से अधिक देखा है, लेकिन मैं नहीं देख सकता मैं कैसे लागू कर सकते हैं एक विशिष्ट भौतिक आईफोन डिवाइस (एमुलेटर नहीं!) के लिए एक ऐप। एंड्रॉइड पर, मैं "कॉर्डोवा रन एंड्रॉइड - लक्ष्य = 06af27413440e95f" का उपयोग कर सकता हूं, जहां एडीबी में डिवाइस आईडी लंबी संख्या है। मैं iPhones के लिए ऐसा कैसे करूं?

cordova run ios --target='QA iPhone 4' 
cordova run ios --device='QA iPhone 4' 
cordova run ios --device --target='QA iPhone 4' 
+1

तुम कोशिश किया था इस 'कॉर्डोबा चलाने ios --target = 0b27990xxxxxx' – AtanuCSE

+0

हाँ, मैंने किया, इसके साथ" 0b27990xxxxxx एमुलेटर के लिए एक वैध लक्ष्य नहीं है "प्रतिक्रिया करता है (xxxx हिस्सा निश्चित रूप से छिपाने के लिए है मेरी वास्तविक यूडीआईडी) –

+0

धन्यवाद @AtanuCSE आपकी आत्मा ने मेरे लिए काम किया – yatg

उत्तर

12

हाय मैं एक आयनिक डेवलपर हूं, फिर भी मैं स्पष्ट रूप से उपयोग करने कॉर्डोबा:

मैं कोई लाभ नहीं हुआ निम्नलिखित की कोशिश की। मुझे आपकी मदद करने की कोशिश करें।

निजी सर्गेई!

मैं एक शेल स्क्रिप्ट का उपयोग करता हूं जो आईओएस-तैनाती नोड मॉड्यूल का उपयोग करता है जो एक्सकोड के उपयोग के माध्यम से तैनाती और डीबग कर सकता है।

सबसे पहले सभी उपकरणों को सूचीबद्ध करने के इस आदेश को चलाने के लिए, आप उन दोनों को देखना चाहिए (FYI करें, जो सामान्य से एक बार xcode का उपयोग करने में 2 उपकरणों के लिए तैनात करने के लिए है?)

ios-deploy -c 

ios तैनाती की स्थापना के लिए, देखना (https://github.com/phonegap/ios-deploy)

अब एक विशिष्ट उपकरण उपयोग करने के लिए इस आदेश को जोड़ने और आदेशों को चलाने के लिए:

ios-deploy --id <device_id> --bundle my.app 

वीं के लिए शॉर्टकट हैं भयानक कमांड लाइन उपकरण है।

Usage: ios-deploy [OPTION]... 
    -d, --debug     launch the app in GDB after installation 
    -i, --id <device_id>   the id of the device to connect to 
    -c, --detect     only detect if the device is connected 
    -b, --bundle <bundle.app> the path to the app bundle to be installed 
    -a, --args <args>   command line arguments to pass to the app when launching it 
    -t, --timeout <timeout>  number of seconds to wait for a device to be connected 
    -u, --unbuffered    don't buffer stdout 
    -n, --nostart    do not start the app when debugging 
    -I, --noninteractive   start in non interactive mode (quit when app crashes or exits) 
    -L, --justlaunch    just launch the app and exit lldb 
    -v, --verbose    enable verbose output 
    -m, --noinstall    directly start debugging without app install (-d not required) 
    -p, --port <number>   port used for device, default: 12345 
    -r, --uninstall    uninstall the app before install (do not use with -m; app cache and data are cleared) 
    -1, --bundle_id <bundle id> specify bundle id for list and upload 
    -l, --list     list files 
    -o, --upload <file>   upload file 
    -w, --download    download app tree 
    -2, --to <target pathname> use together with up/download file/tree. specify target 
    -V, --version    print the executable version 
    -e, --exists     check if the app with given bundle_id is installed or not 
+0

केवल आपके उत्तर को देखा (क्योंकि SO ने मुझे इस प्रश्न के लिए '1000 विचार' बैज दिया है) इसलिए ... धन्यवाद, मुझे लगता है :) यह पुष्टि नहीं कर सकता कि यह काम कर रहा है लेकिन यह निश्चित रूप से ऐसा लगता है जैसे आप जानते हैं कि आप किस बारे में बात कर रहे हैं। Спасибо! –

+0

अद्यतन जोड़ना: यह टूल कॉर्डोवा-क्ली की भविष्य की रिलीज में बहिष्कृत हो सकता है, वे इस स्क्रिप्ट के नए बिना क्ली टूल के माध्यम से अलग-अलग तैनात करने में सक्षम होंगे। – jeveloper

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