এক্সকোড 6 - কমান্ড লাইন থেকে সিমুলেটর চালু করুন


102

আমি কমান্ড লাইন থেকে আইফোন সিমুলেটর চালু করতে চাই।

এখন অবধি আমি নীচের কমান্ডটি ব্যবহার করে আসছি

/ অ্যাপ্লিকেশনস / এক্সকোড.এপ / কনটেন্টস / ডেভেলপার / প্লাটফর্মস / আইফোনসিমুলেটর.প্ল্যাটফর্ম / ডেভেলপার / অ্যাপ্লিকেশনস / আইফোন সিমুলেটর.এপ / কনটেন্টস / ম্যাকোস / আইফোন সিমুলেটর -সিমুলেট ডিভাইস

-সিমুলেট ডিভাইস একটি নির্দিষ্ট ডিভাইসের প্রকার চালু করতে ব্যবহৃত হয়

এখন এক্সকোড 6 এর সাথে পাথ এবং অ্যাপটি পরিবর্তন করা হয়েছে

/ অ্যাপ্লিকেশনস / এক্সকোড.এপ / সামগ্রী / ডেভেলপার / অ্যাপ্লিকেশনস / আইওএস সিমুলেটর

তবে দুঃখের বিষয় - সিমুলেট ডিভাইস বিকল্পটি এখন কাজ করছে না। আমি সিমুলেটরটি চালু করতে পারি, তবে কোনটি চালু করতে হবে তা নির্দিষ্ট করার বিকল্প নেই

এক্সকোড 6 এর সাথে কেউ এর জন্য কোনও বিকল্প খুঁজে পেয়েছে?

উত্তর:


210

আমি যা চাই তা অর্জনের একটি উপায় খুঁজে পেয়েছি।

অ্যাপল এক্সকোড 6 সহ একটি আকর্ষণীয় সরঞ্জাম উপস্থাপন করেছে!

simctl

সিমক্লিট আপনাকে চলমান সিমুলেটরটি নিয়ন্ত্রণ করতে দেয়।

xcrun simctlউপলব্ধ সাবকম্যান্ডগুলির তালিকা পেতে চালান run চারপাশে খেলতে প্রচুর নতুন বিকল্প।

এখন আমি যা চাইছিলাম তা করতে এখানে সিমুলেটরটি চালু করার আদেশ দেওয়া হল:

xcrun instruments -w "iPhone 5 (8.0 Simulator)"

-w হ'ল একটি ডিভাইস প্রকার সরবরাহ করা এবং উপলভ্য ডিভাইসের তালিকা পাওয়া।

কেবল এটি কার্যকর করুন:

xcrun instruments -s

সিমুলেটরটি চালু করার পরে আপনি এটি ব্যবহার করে নিয়ন্ত্রণ করতে পারেন simctl

আপনার অ্যাপ্লিকেশন ইনস্টল করতে:

xcrun simctl install booted <app path>

অ্যাপ্লিকেশন চালু করতে:

xcrun simctl launch booted <app identifier>

আশাকরি এটা সাহায্য করবে.


8
<অ্যাপ শনাক্তকারী> হ'ল আপনার অ্যাপ্লিকেশন বান্ডেল আইডি
হুগো

আমি দেখেছি না, কিছু জ্ঞাত সমস্যা ছাড়া অন্যান্য হিসাবে উল্লেখ করা চলমান xcrun simctlআদেশগুলি তালিকাভুক্ত করবে। আমার মতে তারা বেশ স্ব ব্যাখ্যাযোগ্য।
ড্যানিয়েলম্ব

1
আমি ব্যবহার কাজ করতে এটি পেতে সক্ষম হয়নি xcrun simctl boot <device id>পরিবর্তেxcrun instruments -w...
CambridgeMike

একরকম আমি পেয়ে যাচ্ছি: সিমক্টেল [23846: 459252] *** অপ্রয়োজনীয় ব্যতিক্রম 'এনএসআইএনওটিএলজিমেন্টএক্সেপশন' এর কারণে অ্যাপ্লিকেশনটি সমাপ্ত করা হচ্ছে, কারণ: '*** - [__ এনএসপিএসহোল্ডার ডায়রিয়ড ইনিউইথঅবজেক্টস: ফরকি: গণনা:]: অবজেক্ট থেকে শূন্য বস্তু sertোকানোর চেষ্টা [0] সিমক্টেল ইনস্টল বুট হয়েছে
পূজা শাহ

2
আপনি প্রকৃত ডিভাইস UDID উল্লেখ বা নাম বদলে করা উচিত bootedহিসাবে bootedশুধু ইচ্ছামত কাল্পনিক উপর বুট ডিভাইসের একটি নির্বাচন করবে।
devios1

63

এক্সকোড With সহ আপনি যদি আইওএস সিমুলেটারটি চালু করতে চান তবে কোনও নির্দিষ্ট ডিভাইস বুট করতে চান, আপনি এটি কমান্ড লাইন থেকে চালাতে পারেন:

open -a "iOS Simulator" --args -CurrentDeviceUDID <DEVICE UDID>

আপনি যে ডিভাইসটি থেকে বুট করতে চান তার ইউডিআইডি বের করতে পারেন:

xcrun simctl list

এক্সকোড With সহ, অ্যাপ্লিকেশনটির নামকরণ করা হয়েছিল সিমুলেটর.এপ, সুতরাং আপনার সেই অনুযায়ী উপরেরটি আপডেট করা উচিত:

open -a Simulator --args -CurrentDeviceUDID <DEVICE UDID>


6.2 বিটাতে, এই আদেশটি আর কাজ করে না। উদাহরণস্বরূপ, আইফোন 5 এস সিমুলেটর চালু করার পরিবর্তে (এর আইডি দেওয়া), আমি আইপ্যাড এয়ার সিমুলেটরটি পাই।
মাইকেল টেপার

হুম, আমাদের কাছে এটি নির্ভরযোগ্যভাবে 3 টি বিভিন্ন মেশিনে কাজ করছে না। সমস্যা সমাধানের জন্য আমি সরবরাহ করতে পারি এমন অন্য কোনও তথ্য?
মাইকেল টেপার

আমি কি ঘটছে তা বুঝতে পেরেছি। আমরা এক্সকোড 6.2 বিটা ইনস্টল করেছি, তবে এটি ডিফল্ট এক্সকোড তৈরি করি নি। সুতরাং, /usr/bin/xcrun simctl listনিয়মিত এক্সকোডে উপলব্ধ সিমুলেটরগুলি তালিকাভুক্ত করে। তবে, open -a "iOS Simulator"6.2 বিটা সিমুলেটর চালু করেছে, যা বিটা সিমুলেটর থেকে ডিভাইস আইডি প্রত্যাশা করে। আমি কোন সিমুলেটর চালু করব তা আমি কীভাবে নির্দিষ্ট করতে পারি (নিয়মিত বনাম বিটা)?
মাইকেল টেপার

1
খুলুন /পথ / টো / এক্সকোড.এপ / বিষয়বস্তু / ডেভেলপার / অ্যাপ্লিকেশনস / আইওএস \ সিমুলেটর.এপ
জেরেমি হাডলস্টন সিকোইয়া

2
@ chrisco এখানে কোন নথি নেই। আপনি ডিফল্টগুলির মাধ্যমে চেক করতে defaults read com.apple.iphonesimulatorপারেন এবং কমান্ড লাইনে থাকা যে কোনও একটিকে ওভাররাইড করতে পারেন। সিমুলেটর.এপগুলি ডিভাইসগুলিকে স্বতন্ত্রভাবে সনাক্ত করতে শুধুমাত্র ইউডিআইডি ব্যবহার করে। আপনি নামটি ব্যবহার করতে পারবেন না।
জেরেমি হাডলস্টন সিকোইয়া

17

এক্সকোড 7 এর জন্য:

open /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID <DeviceUDID>

আপনার সিমুলেটর ইউডির কাছ থেকে পান xcrun simctl list


12

সমস্ত ডিভাইসের তালিকা উপলব্ধ হওয়ার জন্য তালিকাভুক্ত ডিভাইস সাবকম্যান্ড ব্যবহার করে নির্দিষ্ট ডিভাইস বুট করা আইআইএম সহ একটি সিমুলেটর চালু করতে

$ xcrun simctl list devices
== Devices ==
-- iOS 11.2 --
iPhone 5s (E3B6EA43-C805-49C2-9502-A44A465D8DF2) (Shutdown)
iPhone 6 (801E9E11-CA86-473A-9879-4B0742B827FB) (Shutdown)
iPhone 6 Plus (24013349-1A6F-489C-9A68-ABB00EBB4BBF) (Shutdown)
iPhone 6s (1A594D75-146C-4BEA-A250-1FADE7886114) (Shutdown)
iPhone 6s Plus (C2730FA0-11CB-49C9-A087-CB3C1BF1CC3D) (Shutdown)
iPhone 7 (F58B3749-3276-49E5-81C8-EBA1AEA7B242) (Shutdown)
iPhone 7 Plus (98167D8C-8F27-404C-AB02-588D9AAFD071) (Shutdown)
iPhone 8 (96322368-F763-4E0A-8576-ADE9F678211F) (Shutdown)
iPhone 8 Plus (E916D1EE-B67B-4C01-B3F5-C5C80CC4CDF8) (Shutdown)
iPhone SE (ABEFEDDF-7A7C-4B94-9E91-E065170FA47F) (Shutdown)
iPhone X (84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31) (Shutdown)
iPad Air (DCD8CF4B-2C9F-4BA1-952A-ACB9CAD0A84D) (Shutdown)
iPad Air 2 (A47C9A05-233F-450F-9A39-318258E9ADEA) (Shutdown)
iPad (5th generation) (819C058E-64AC-4E73-8F41-2C0F919F8B56) (Booted)

এই কমান্ডটি তার ইউডিআইডি এবং স্ট্যাটাস সহ উপলব্ধ ডিভাইসগুলির একটি তালিকা আউটপুট দেবে

তারপরে আমি সিম্যুলেটর অ্যাপ্লিকেশন চালু করি -কারেন্টডেভাইস ইউডিআইডি বিকল্পের সাহায্যে একটি ডিভাইস নির্দিষ্ট করে

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID <DEVICE-UDID>

দ্রষ্টব্য: তালিকা থেকে বৈধ ইউডিআইডি দিয়ে প্রতিস্থাপন করুন।

উদাহরণস্বরূপ, যদি আমরা একটি আইপ্যাড (% প্রজন্মের বুট করা) সহ সিমুলেটরটি চালু করতে চাই:

/Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator -CurrentDeviceUDID 84DAB7AB-3CA2-4F5B-8C4E-A5B54CA15C31

আপডেট 23/05/2018

এক্সকোড 9.3 দিয়ে কারেন্টডেভাইস ইউডিআইডি বিকল্পটি আমার পক্ষে কাজ করছে না, একটি কার্যকারণ হিসাবে, ডিভাইসটি এটি খোলার আগে আমাকে বুট করার জন্য সিমক্টেল ব্যবহার করতে হবে।

xcrun simctl boot 2BF01FC0-7E29-4AF1-ADD1-886DF129A9A9
open -a Simulator 

আপনি সিমেক্টল ব্যবহার করে মুছে ফেলতে, মুছতে, মুছতে, বুট করতে, শাটডাউন এবং আপগ্রেড করতে পারেন।

$ xcrun simctl create
Usage: simctl create <name> <device type id> <runtime id>

$ xcrun simctl delete
Usage: simctl delete <device> [... <device n>] | unavailable

বৈধ ডিভাইসের ধরণ এবং রানটাইমের তালিকা পেতে

xcrun simctl list devicetypes

xcrun simctl list runtimes

10

একটি সিমুলেটর বুট করতে:

xcrun simctl boot "iPhone X"

এটি হেডলেস মোড হিসাবে বুট করবে। সিমুলেটরটি দৃশ্যমান করতে:

open -a Simulator

xcrun simctl bootতুলনায় সহজ xcrun instruments -winstrumentsপুরো ডিভাইসের নাম প্রয়োজন।


8

আপনি -W পতাকা সহ হার্ডওয়্যার এবং iOS সংস্করণ নির্দিষ্ট করতে পারেন। বিন্যাসটি হ'ল

instruments -w "simulator-version"

যেমন:

instruments -w "iPhone Retina (3.5-inch) - Simulator - iOS 7.1"

আপনি instruments -w help কমান্ডটি ব্যবহার করে উপলব্ধ হার্ডভার-আইওএস সমন্বয়গুলি পাবেন ।


2
instruments -s devicesডিভাইসের একটি তালিকা পেতে ব্যবহার করুন । যাইহোক, আপনার ডিভাইসের নামটি একবার হয়ে গেলে, কেবল কল করার instruments -w <device>ফলে ত্রুটি পাওয়া যায় কারণ যন্ত্রগুলি আপনার ড্রাইভের মূলটিতে কোনও চিহ্ন লেখার চেষ্টা করে। আপনি ট্রেসটির জন্য এটি সফলভাবে লিখতে চান এমন কোনও পথ নির্দিষ্ট করতে চাইতে পারেন।
মাইকেল টেপার

@ মাইকেলTeper এর মন্তব্যে বিস্তারিত -Dজানাতে, .trace নথিগুলির জন্য একটি আউটপুট ডিরেক্টরি নির্দিষ্ট করতে ব্যবহার করুন ।
ডিভাইস 1

3

এক্সকোড 9.4.1 এ যাচাই করা হয়েছে

সত্যিই নিস ফর্ম্যাটে ডিভাইসের তালিকা: ~/Library/Developer/CoreSimulator/Devices/device_set.plist

Root
    DefaultDevices
        com.apple.CoreSimulator.SimRuntime.iOS-8-4
             com.apple.CoreSimulator.SimDeviceType.iPad-Retina : AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4

তারপরে আপনি আপনার সিমুলেটর অ্যাপটি চালাতে (খুলুন) এবং অ্যাপটির নতুন উদাহরণ চালু হয়েছে তা নিশ্চিত করতে চান।

অ্যাপ্লিকেশনটি এখানে রয়েছে: /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app

এবং আপনি যে ফর্ম্যাটটি ব্যবহার করবেন এটি এর মতো:

open -n -a <SimulatorPath> --args -CurrentDeviceUDID <SimDeviceTypeUDID>

সুতরাং, যদি আমি উপরের সিমুলেটরটি চালু করতে চাই, আমি এটি করতাম।

open -n -a /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app --args -CurrentDeviceUDID AB335FAF-E3E3-4AE9-A0AF-D1C6AEB5FBD4

গরম অভিশাপ! আমি এটি পরীক্ষা করেছি এবং এটি ম্যাক ওএস 10.11.6 এ কাজ করে। এখন পরবর্তী কৌশলটি আমাদের ইনস্টলড অ্যাপ্লিকেশনটি খুলতে সিমুলেটারকে বলছে। আমি এখনও নেই। আশাকরি এটা সাহায্য করবে. তার বিশদ ব্যাখ্যার জন্য https://stackoverflow.com/users/726106/jeremy-huddleston-sequoia ধন্যবাদ ।


"অ্যাপটির নতুন উদাহরণ" বলে কোনও জিনিস নেই। ম্যাকিনটোস-এ, লগ-ইন করা ব্যবহারকারী অনুসারে একটি অ্যাপ্লিকেশনটির কেবল একটি উদাহরণ রয়েছে। একক প্রক্রিয়া হিসাবে হোস্ট করা এই একক-উদাহরণ অ্যাপ্লিকেশনটি নিজেই অনেকগুলি "নথি" হোস্ট করতে পারে (এক্ষেত্রে - সিমুলেটর)।
মোটি শ্নের

1

এই আদেশটি চালান। অ্যাপ্লিকেশনগুলি পুনরায় শুরু হবে তারপরে পরিবর্তনগুলি। এটি আবার পুনর্নির্মাণের দরকার নেই।

ios-sim "launch" "/Library/WebServer/Documents/testapp/build/iphone/build/Debug-iphonesimulator/test.app" "--devicetypeid" "iPad-2" "--exit";

ডিভাইসটাইপাইড তালিকার জন্য:

ios-sim showdevicetypes

আইওএস-সিম (হিউংগাস নোড সহ) অবশ্যই এটি ইনস্টল করা উচিত এবং দেশীয় কমান্ড লাইন 'স্ক্রাব সিম্কিটল' এর সাথে তুলনা করে এটি দুঃখের সাথে সীমাবদ্ধ।
মোটি শ্নোয়ার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.