কর্ডোভা: নির্দিষ্ট আইওএস এমুলেটর চিত্র শুরু করুন


120

আমি কর্ডোভা ব্যবহার করে একটি ক্রস-প্ল্যাটফর্ম মোবাইল অ্যাপ্লিকেশন বিকাশ করছি, মূলত উন্নয়নের পর্যায়ে আইওএসের উপর ফোকাস করছি।

আমার বিকাশের প্রক্রিয়াটির জন্য এটি আদর্শ হবে যদি আমি আমার কর্ডোভা অ্যাপ্লিকেশনটি কমান্ড লাইন থেকে সরাসরি শুরু করতে এবং এটি একটি নির্দিষ্ট এমুলেটারে লোড করতে পারি। প্রকল্পের রুট ডিরেক্টরি থেকে নিম্নলিখিতটি চালিয়ে আমি এটি করতে পারি:

$cordova run --debug --emulator iOS

এটি দুর্দান্ত কাজ করে এবং এর ফলস্বরূপ একটি আইওএস-সিমুলেটর আইওএস 7.0.3 সহ একটি সিমুলেটেড আইফোন 4 রেটিনাতে আমার অ্যাপটি চালায়

এই সিমুলেটেড ডিভাইসটি ছাড়াও, আমি কোনও আইপ্যাডও পরীক্ষা করতে চাই। আমার এই ইমুলেশন ইমেজ ইনস্টল করা আছে এবং আমি এক্সকোডে ম্যানুয়ালি সেগুলিতে আমার অ্যাপ্লিকেশনটি শুরু করতে পারি। এছাড়াও, কমান্ড list-emulator-images(অবস্থিত project_dir/platforms/ios/cordova/lib) নিম্নলিখিত আউটপুট দেয়:

"iPhone Retina (3.5-inch)"
"iPhone Retina (4-inch)"
"iPhone Retina (4-inch 64-bit)"
"iPhone"
"iPad"
"iPad Retina"

যাইহোক, জিনিসটি হ'ল: আমি ডিফল্ট (যা iPhone Retina (4-inch)এমুলেশন চিত্র হিসাবে প্রদর্শিত হয় ) ব্যতীত অন্য কোনও কিছুর মধ্যে এমুলেটরটি কীভাবে শুরু করব তা অনুভব করতে পারি না । সম্পর্কিত আউটপুট cordova helpনিম্নলিখিত তথ্য দেয়:

run [--debug|--release]
    [--device|--emulator|--target=FOO]
    [PLATFORM] ............................ deploys app on specified platform devices / emulators

আমি নীচের মত জিনিস চেষ্টা করেছি:

cordova run --debug --emulator=iPad iOS

এবং এর বিভিন্ন প্রকরণ, তবে ভাগ্য নেই। প্রতিবার এটি একই এমুলেটারে শুরু হয়।

কমান্ড-লাইন সরঞ্জামের জন্য ডকুমেন্টেশন এই বিষয়ে কোনও তথ্য সরবরাহ করে না, এবং গুগল-এর একটি বিস্তৃত অনুসন্ধানও কিছু পরিবর্তন করতে ব্যর্থ হয়েছিল। আমি কি তুচ্ছ কিছু অনুভব করছি? বা আমি কি অদ্ভুত কিছু করার চেষ্টা করছি? আমি সত্যিই আশা করি যে এখানে কারও সাথে এটির অভিজ্ঞতা আছে এবং কিছু উত্তর সরবরাহ করতে পারে।

আগাম ধন্যবাদ!

সম্পাদনা: স্পষ্টভাবে উল্লেখ করতে ভুলে গেছি; আমি একটি ম্যাক এ সব করছি। পূর্বে উল্লিখিত হিসাবে, এক্সকোডে বিভিন্ন এমুলেটর / সিমুলেটরগুলিতে অ্যাপটি চালানো ভাল কাজ করে।

উত্তর:


335

সিমুলেটর চিত্রগুলি কী কী উপলভ্য তা অনুসন্ধান করতে আপনি সেগুলি তালিকাভুক্ত করতে পারেন

$ cordova emulate ios --list
Available iOS Virtual Devices:
    iPhone-4s, 9.3
    iPhone-5, 9.3
    iPhone-5s, 9.3
    iPhone-6, 9.3
    iPhone-6-Plus, 9.3
    iPhone-6s, 9.3
    iPhone-6s-Plus, 9.3
    iPad-2, 9.3
    iPad-Retina, 9.3
    iPad-Air, 9.3
    iPad-Air-2, 9.3
    iPad-Pro, 9.3

তারপরে --target প্যারামিটারে একটি সিমুলেটারের নাম ব্যবহার করুন:

cordova emulate ios --target="iPhone-4s, 9.3"
cordova emulate ios --target="iPad-Air-2, 9.3"
cordova emulate ios --target="iPhone-6s, 9.3"
cordova emulate ios --target="iPhone-6-Plus, 9.3"

গুরুত্বপূর্ণ একটি ভিন্ন লক্ষ্য সিমুলেটর চালু করার আগে সিমুলেটরটি প্রস্থান করুন (মেনু বার নির্বাচন করুন Simulator->Quit)

আপনি 3.5 থেকে 4 ইঞ্চি আইফোন থেকে স্যুইচ করতে মেনুর মাধ্যমে আইওএস সিমুলেটরটি ছেড়ে দিতে হবে এমন অ্যাকাউন্টটি বিবেচনা করুন।

গতিশীল তালিকা পাওয়া যায় platforms/ios/cordova/lib/list-emulator-images


3
ধন্যবাদ, এটি সাহায্য করেছে। এই জন্য আপনার উত্স কি ছিল? আমি কীভাবে নিজেকে এই বিষয়টি বুঝতে পেরেছিলাম তা ভাবছি ... এই প্রশ্নের উত্তরটিও আপনাকে অনেক সহায়তা করেছিল: স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 13877840/… স্পষ্টতই 'কর্ডোভা এমুলেট করা' একটি মোড়কটি ভোর আইওস-সিম, যা আপনি কথা বলতে পারেন সরাসরি। এটিই আমি শেষ করেছিলাম, তাই আমি আমার পছন্দসই আইডিই থেকে আমার কোডটি তৈরি এবং লঞ্চ করতে পারি।
এগজিস্টার

আমি এই কমান্ডটি কেবল চালিয়েছি এবং নিশ্চিত করতে পারি যে 4..7 এবং ৫.৫ ইঞ্চি অনুকরণকারী তালিকাভুক্ত নয়, এমনকি এক্সকোড installed ইনস্টল করা রয়েছে :-(
বেন ক্লেটন

হাই, আমি এই কমান্ডটি "। / প্ল্যাটফর্ম / আইওএস / কর্ডোভা / লিবি / লিস্ট-ইমুলেটর- চিত্রগুলি চেষ্টা করেছি" তবে আমি সমস্ত বিকল্প দেখতে পাইনি, কোনও আইফোন 6, কোনও আইফোন 6-প্লাস, কোনও আইপ্যাড-এয়ার কী হবে সমস্যাটি? ধন্যবাদ
ব্যবহারকারী 2120121

10
আমি জানি না কেন তবে আমার জন্য কর্ডোভা সিএলআই "Error: Cannot read property 'name' of undefined"কোট দিয়ে লক্ষ্য নির্দিষ্ট করার সময় নিক্ষেপ করবে , আমি কেবল এটির মতো চালিয়ে এটি কাজ করতে পারতাম cordova run ios --target=iPhone-6। আশা করি এটি অন্য কাউকে কিছুটা সমস্যা বাঁচায়!
জিফফোর্ড এন।

1
আমি গিফোর্ড এন এর মতো একই সমস্যাযুক্ত ফলাফল পেয়েছি I'm আমি কর্ডোভা 7.0.0 ব্যবহার করছি
টেরি উইলকিনসন

18

যেমনটি স্যান্টানাপ্র আপনি ব্যবহার করতে পারেন:

cordova emulate ios --target="iPhone-4s"

তবে, এক্ষেত্রে কর্ডোভা (বা ফোনগ্যাপ বা অন্যান্য) প্রকল্প আইওএস সংস্করণ 7.0.3 সহ আইফোন 4 এস সিমুলেটারে চালু হবে ।

আপনি যদি একই সিমুলেটারে প্রকল্পটি চালু করতে চান তবে অন্যান্য সংস্করণ আইওএসের সাথে (7.1 বা 8.0, যদি এটির সংস্করণগুলি আপনার সিস্টেমে উপস্থিত থাকে)?

কর্স সম্পর্কে , আপনি কোবারবয় বলার মতো করতে পারেন :

একটি নির্দিষ্ট এমুলেটর শুরু করুন এবং সরাসরি আইওস-সিম ব্যবহার করে আপনার আইওএস সংস্করণটি চয়ন করুন।

তবে আপনি --targetকর্ডোভা runকমান্ডের বিকল্পটি উন্নত করতে পারেন ।

প্রথমে আপনাকে অবশ্যই নিশ্চিত করতে হবে আপনার সিস্টেমে কোন টার্গেট আইওএস সংস্করণ উপলব্ধ।

এটির জন্য কোবারবয়ের উত্তর ব্যবহার করুন :

$ ios-sim showdevicetypes

তারপরে আপনাকে ফাইলটি খুলতে হবে your_project_dir/platforms/ios/cordova/lib/run.jsএবং নীচের মত কোডের লাইনগুলি সন্ধান করতে হবে :

// validate target device for ios-sim
// Valid values for "--target" (case sensitive):
var validTargets = ['iPhone-4s', 'iPhone-5', 'iPhone-5s', 'iPhone-6-Plus', 'iPhone-6',
    'iPad-2', 'iPad-Retina', 'iPad-Air', 'Resizable-iPhone', 'Resizable-iPad'];

ব্যবহারের জন্য iPhone-4s, 7.1(বা অন্য কোনও সাধারণ) অ্যারেতে এটি যুক্ত করুন validTargets

var validTargets = ['iPhone-4s', 'iPhone-4s, 7.1', 'iPhone-5', 'iPhone-5s', 'iPhone-6-Plus', 'iPhone-6',
    'iPad-2', 'iPad-Retina', 'iPad-Air', 'Resizable-iPhone', 'Resizable-iPad'];

এবং ভিতরে

cordova emulate ios --target="iPhone-4s, 7.1"

আপনার --target="iPhone-4s, 7.1"বৈধ হবে।

এবং ফাংশন deployToSimএর run.js:

function deployToSim(appPath, target) {
// Select target device for emulator. Default is 'iPhone-6'
if (!target) {
    target = 'iPhone-6';
    console.log('No target specified for emulator. Deploying to ' + target + ' simulator');
}
var logPath = path.join(cordovaPath, 'console.log');
var simArgs = ['launch', appPath,
    '--devicetypeid', 'com.apple.CoreSimulator.SimDeviceType.' + target,
    // We need to redirect simulator output here to use cordova/log command
    // TODO: Is there any other way to get emulator's output to use in log command?
    '--stderr', logPath, '--stdout', logPath,
    '--exit'];
return spawn('ios-sim', simArgs);
}

রূপান্তর iPhone-4s, 7.1বৈধ যুক্তি com.apple.CoreSimulator.SimDeviceType.iPhone-4s, 7.1জন্য ios-sim


এটি পুরোপুরি কাজ করে এবং ionic run ios --target='iPhone-6, 9.0'আয়নিক ফ্রেমওয়ার্ক ব্যবহার করার সময় আমাকে ব্যবহারের অনুমতি দেয় ।
জরিস

ভাল সন্ধান 👍। আমি কেবল ব্লক আউট মন্তব্য যাচাই যে validTargetsআমি পূর্ণ প্ল্যাটফর্ম, প্রাক্তন নির্দিষ্ট করতে সক্ষম ছিল: "--target="iPhone-6, 8.4""। কর্ডোভা টার্গেটের বৈধতা যদি অর্পণ করে তবে খুব সুন্দর হবে ios-sim
কাইল ফক্স

এটি আমার পক্ষে কাজ করে না। আমি রান.জেজে জঞ্জাল টাইপ করেছি এবং এটি উপেক্ষা করা হয়েছিল। এনপিএম কি এই কিছু বা কিছু ক্যাশে করে? আমি কীভাবে এনপিএমের ক্যাশে রিফ্রেশ করতে পারি?
র‌্যাংডাল্ট

আপনি "আয়নিক প্ল্যাটফর্ম আপডেট আইওএস" চালাতে পারেন এবং আপনি সম্প্রতি ইনস্টলড এমুলেটরগুলি চালাতে সক্ষম হবেন
বেনজমিন পাইট

10

টি এল; ডিআর

আপনি একটি নির্দিষ্ট এমুলেটর শুরু করতে পারেন এবং সরাসরি আইওস-সিম ব্যবহার করে আপনার আইওএস সংস্করণটি চয়ন করতে পারেন।

export appname="./platforms/ios/build/emulator/Hello World.app"
ios-sim launch "$appname" --devicetypeid "com.apple.CoreSimulator.SimDeviceType.iPad-2, 8.0" --stderr ./platforms/ios/cordova/console.log --stdout ./platforms/ios/cordova/console.log

বিস্তারিত

আমি যখন এটি চালিয়েছি:

cordova emulate ios --target="iPad"

এবং চলমান প্রক্রিয়াগুলির দিকে তাকিয়ে আমি এটি দেখতে (একক লাইনে):

ios-sim launch ./platforms/ios/build/emulator/HelloWorld.app 
        --stderr ./platforms/ios/cordova/console.log 
        --stdout ./platforms/ios/cordova/console.log 
        --family ipad 
        --exit

আইওএস-সিমের আরও তদন্ত করে দেখে মনে হচ্ছে আরও কিছু সুনির্দিষ্ট বিকল্প রয়েছে, বিশেষত:

--devicetypeid <device type>    The id of the device type that should be simulated (Xcode6+). Use 'showdevicetypes' to list devices.
  e.g "com.apple.CoreSimulator.SimDeviceType.Resizable-iPhone6, 8.0"

সুতরাং আমি এটি প্রস্তাবিত হিসাবে করেছি এবং একটি "শোড্যাভিসিকেটাইপস" যুক্তি দিয়ে আইওস-সিম চালিয়েছি এবং এটি পেয়েছি:

$ ios-sim showdevicetypes
com.apple.CoreSimulator.SimDeviceType.iPhone-4s, 7.1
com.apple.CoreSimulator.SimDeviceType.iPhone-5, 7.1
com.apple.CoreSimulator.SimDeviceType.iPhone-5s, 7.1
com.apple.CoreSimulator.SimDeviceType.iPad-2, 7.1
com.apple.CoreSimulator.SimDeviceType.iPad-Retina, 7.1
com.apple.CoreSimulator.SimDeviceType.iPad-Air, 7.1
com.apple.CoreSimulator.SimDeviceType.iPhone-4s, 8.0
com.apple.CoreSimulator.SimDeviceType.iPhone-5, 8.0
com.apple.CoreSimulator.SimDeviceType.iPhone-5s, 8.0
com.apple.CoreSimulator.SimDeviceType.iPhone-6-Plus, 8.0
com.apple.CoreSimulator.SimDeviceType.iPhone-6, 8.0
com.apple.CoreSimulator.SimDeviceType.iPad-2, 8.0
com.apple.CoreSimulator.SimDeviceType.iPad-Retina, 8.0
com.apple.CoreSimulator.SimDeviceType.iPad-Air, 8.0
com.apple.CoreSimulator.SimDeviceType.Resizable-iPhone, 8.0
com.apple.CoreSimulator.SimDeviceType.Resizable-iPad, 8.0

এটি ডিফল্ট সিমুলেটর পরিবর্তনের জন্য কীভাবে কাজ করে? আপনি এখানে কর্ডোভা বিটটি বাইপাস করছেন এবং সরাসরি সরাসরি চালু করছেন, তাই না?
মিশ্র


4

এক্সকোড 8.3.2 হিসাবে ...

পুরানো থ্রেড, আমি জানি, তবে মনে হয়, সম্ভবত উত্তরটি কিছুটা পরিবর্তন হয়েছে। এই থ্রেডটিতে আগের পোস্টগুলির ইঙ্গিতগুলি সহায়তা করেছিল, তবে কোডের সাথে অন্তর্ভুক্ত ডকুমেন্টেশনগুলি পড়েছিল,<cordova-project>/platforms/ios/cordova/lib/run.js

সম্পাদন ./platforms/ios/cordova/lib/list-emulator-imagesপ্রাপ্তিসাধ্য এমুলেটর ইমেজ তালিকা। পছন্দসই এমুলেটরে চালানোর জন্য কর্ডোভা কল করার সময় শেষ সংস্করণ নম্বরটি অন্তর্ভুক্ত করবেন না।

cordova run ios --emulator --target="iPad-Air"

আরো দেখুন


আপনার মন্তব্যের জন্য thankশ্বরের ধন্যবাদ! এটি সর্বশেষ আপডেটের পরে কাজ করে না এবং কোনও তথ্য খুঁজে পায় না। ত্রুটি বার্তাটি সবেমাত্র পেয়েছে: "ত্রুটি: অপরিজ্ঞাতকৃত সম্পত্তিটির নাম 'পড়তে পারে না" যা আইওএস সংস্করণ অন্তর্ভুক্ত না করার পরে ঠিক করা হয়েছিল।
মার্কো রিঙ্ক

@ মার্কো রিঙ্ক উত্তরটির মন্তব্যটি পরীক্ষা করে দেখুন, টাইপ করে দ্রুত সমাধান রয়েছে:cordova run ios --target=iPhone-6
কিরা হাও

3

আমার নিম্ন সুনামের কারণে আমি উপরের উত্তরে মন্তব্য করতে পারি না, তবে লক্ষ্যগুলির তালিকাটি থেকে পাওয়া যায়:

start-emulator 

অধীনে

your platform/ios/cordova/lib/

এটি বলার পরে, আমি আইপ্যাড রেটিনা এমুলেটরকে কাজ করতে পারি না ...


3

ডিভাইসের তালিকার দ্রুততম আউটপুট: $ instruments -s devices

সংস্করণ ছাড়াই কেবল ডিভাইসের নাম ব্যবহার করুন।


0

কর্ডোভা অ্যাপ্লিকেশনটির জন্য ইতিমধ্যে উত্পাদিত বিল্ডের ভিত্তিতে ওয়েব অনুরোধের সাথে আইওএস সিমুলেটর চালায়। ব্রাউজার থেকে এই অনুরোধটি কার্যকর করুন আইফোন 8 প্লাস সংস্করণ সহ ম্যাকের উপর সিমুলেটর খোলে: http: // হোস্টনাম: 3000 / কর্ডোভা / বিল্ড / [এক্সএক্সএক্সএক্স-বিল্ডনम्बर] / অনুকরণ? লক্ষ্য = আইফোন-8-প্লাস


0

বিভিন্ন আইফোন এবং আইপ্যাড সিমুলেটর

  1. কর্ডোভা আইওএস - তালিকা চালান

  2. কর্ডোভা ইমুলেটস আইওএস - বাজার "আইফোন -7"


0

@ বিরজার উত্তর এখনই কাজ করছে তবে শেষ পর্যন্ত তিনি যে রান কমান্ডটি ব্যবহার করেছিলেন তা এখনও ভুল তাই সঠিক উত্তর এখানে:

সিমুলেটারে উপলভ্য সমস্ত ডিভাইসগুলির তালিকা করতে cordova run ios --list

এর ফলে এরকম কিছু ঘটবে:

Available ios devices:
Available ios virtual devices:
Apple-TV-1080p, tvOS 12.2
Apple-Watch-Series-2-38mm, watchOS 5.2
iPhone-5s, 12.2
iPhone-6, 12.2
iPad-Air-2, 12.2
iPad--5th-generation-, 12.2
iPad-Pro--9-7-inch-, 12.2
iPad-Pro, 12.2
iPad-Pro--12-9-inch---2nd-generation-, 12.2
iPad-Pro--10-5-inch-, 12.2
iPad--6th-generation-, 12.2
iPad-Pro--11-inch-, 12.2
iPad-Pro--12-9-inch---3rd-generation-, 12.2

cordova run ios --target "iPad-Pro, 12.2"উপরের যে কোনও লক্ষ্য ব্যবহার করুন। সিমুলেটারে চালানো।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.