আইফোন সিমুলেটর পরিষ্কার করা


107

আইফোন সিমুলেটারের জন্য বিল্ডিং করার সময় এক্সকোড কোনও অ্যাপ স্থাপন করে সেই ডিরেক্টরিটি পরিষ্কার করার জন্য কি সোজা উপায় আছে? আমার কাছে একটি স্ক্লাইট ডাটাবেস যা প্রয়োজন হলে প্রারম্ভকালে ডকুমেন্টস ফোল্ডারে অনুলিপি করা হয়। সমস্যাটি হ'ল আমি আমার স্কিমা পরিবর্তন করতে পারি, তবে নতুন ডাটাবেস অনুলিপি করা হবে না, কারণ একটি ইতিমধ্যে বিদ্যমান।

আদর্শভাবে, প্রতিবার আমি তৈরি করার সময় এটি পূর্ববর্তী বিষয়বস্তুগুলিকে নাক করে দেবে। এটি কি সম্ভব, না আমাকে নিজেই এটি করতে হবে?


সিমুলেটর অ্যাপলস্ক্রিপ্ট সমর্থন করে?
রোগ

হ্যাঁ এটা করে. আমি প্রতিটি ডিভাইস এবং ওএস সংস্করণের জন্য সমস্ত আইওএস সিমুলেটারের মাধ্যমে পুনরাবৃত্তি করতে এবং তাদের বিষয়বস্তু এবং সেটিংস পুনরায় সেট করতে একটি অ্যাপলস্ক্রিপ্ট লিখেছি: github.com
মাইকেলপ্যাটজার

উত্তর:


91

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

"$HOME/Library/Application Support/iPhone Simulator/User/Applications"

এছাড়াও পরীক্ষা করুন:

"$HOME/Library/Developer/CoreSimulator/Devices"

জিইউডি ফাইল এবং ডিরেক্টরিগুলি সিমুলেটারের ইনস্টলড অ্যাপ্লিকেশনগুলিতে মেলে।

সিমুলেটর থেকে সমস্ত অ্যাপ্লিকেশন অপসারণ করতে ম্যানুয়ালি সেই সমস্ত ফাইল / ডিরেক্টরি মুছুন।

আমি জানি এক্সকোডে বিল্ড প্রসেসে স্ক্রিপ্ট যুক্ত করার কিছু উপায় আছে।

এছাড়াও দেখে মনে হচ্ছে যেন এক্সকোড প্রতিটি বিল্ড (যে ডিরেক্টরিটি আমার অ্যাপ্লিকেশনটি এক্সকোডে বিল্ডগুলির মধ্যে পরিবর্তনগুলি বসায়) ব্যবহার করে তার GID পরিবর্তন করে, তাই সার্বক্ষণিক একই ডিরেক্টরি মুছে ফেলার চেষ্টা করবে না। আপনি যদি একবারে কেবল একটি অ্যাপ্লিকেশনটিতে কাজ করছেন তবে পুরো ডিরেক্টরিটি সাফ করা একটি বিকল্প হবে।


2
নীচে নীচে @ আইডিস্টারের উত্তরটি পরীক্ষা করে দেখতে ভুলবেন না। এতে সিংহ / এক্সকোড 4 সম্পর্কিত আপডেট তথ্য এবং জিনিসগুলি স্বয়ংক্রিয় করতে সহায়তা করার জন্য একটি দুর্দান্ত ছোট স্ক্রিপ্ট রয়েছে।
পাইজামসাম

আমি ক্যালেন্ডার সাবস্ক্রিপশন যোগ / অপসারণ পরীক্ষা করছিলাম। সত্যিকারের ডিভাইসে, আপনি সেটিংস> অ্যাকাউন্টগুলিতে একটি ক্যালেন্ডার সাবস্ক্রিপশন সরাতে পারেন তবে এই মেনুটি আইওএস সিমুলেটারে বিদ্যমান নেই এবং আমি পুরো সিমুলেটরটি পুনরায় সেট করতে চাইনি। সুতরাং আমি স্থানীয়ভাবে আমার ডিভাইস ফোল্ডারটি গিট দিয়ে সংস্করণ করে শেষ করেছি এবং git reset HEAD --hard && git clean -fআমি ক্যালেন্ডার সাবস্ক্রিপশন যুক্ত করার পরে এটি সরিয়ে ফেলতে একটি সম্পাদন করেছি।
থিবল্ট ডি

132

আপেল দেব সংস্থান থেকে:

সিমুলেটারের ব্যবহারকারীর সামগ্রী এবং সেটিংসকে তাদের কারখানার স্থিতিতে সেট করতে এবং আপনি যে অ্যাপ্লিকেশন ইনস্টল করেছেন সেগুলি সরাতে, আইফোন সিমুলেটর> সামগ্রী এবং সেটিংস পুনরায় সেট করুন

এটি সাদৃশ্যপূর্ণ:

আইওএস রিসেট


3
এই একটিকে
এসকিউএলাইট

1
এটি উদাহরণস্বরূপ ব্রাউজারের ক্যাশে সাফ করে না
মউ

1
এখন এই সেটিংটি অবস্থিতHardware > Reset Content and Settings
Haseeb Eqx

22

আমি যেভাবে এটি করি তা হ'ল সিমুলেটারে আমার অ্যাপ্লিকেশনটির জন্য আইকনটি ক্লিক করা এবং ধরে রাখা - তারপরে এটি যখন কালো রঙের এবং সাদা (এক্স) ক্লিক করতে শুরু করে। আপনি সত্যিই মুছতে চান কিনা তা জিজ্ঞাসা করে একটি বার্তা পপ আপ হবে এবং আপনি কেবল হ্যাঁ ক্লিক করুন। পরের বার আপনি আপনার অ্যাপ্লিকেশনটি তৈরি এবং স্থাপন করার সময় এটি কোনও স্কোচ ছাড়াই নতুন স্ক্লাইট ডিবি ব্যবহার করবে এবং আপনাকে ফাইল সিস্টেমে ঘেউ ঘেউ করতে হবে না।


এটি কাজ করে বলে মনে হচ্ছে না - এটি সিমুলেটর থেকে সত্যই ডেটা মুছবে না?
আদম

1
আমার ভুল - এটি সূক্ষ্মভাবে কাজ করে (স্বীকৃত উত্তরে ডিরেক্টরিটি পড়ে নিশ্চিত হয়েছে Apple আমি কেবল অ্যাপল-এর ​​এনএসইউসারডেফলস-এর বন্ধুত্বপূর্ণ নকশাকে ভুলে গিয়েছি (আনসেট মানগুলি কোনও বুদ্ধিমান পদ্ধতিতে রিপোর্ট করা হয় না)
অ্যাডাম

@ কুডেলিরাস, আমি মনে করি আপনার এই উত্তরটি এই পরিস্থিতিতে সবচেয়ে উপযুক্ত।
15

এটি হ'ল আমি ঠিক তাই করেছি, তবে ইতিমধ্যে সিমুলেটারে খোলা অ্যাপটি কীভাবে বন্ধ করবেন তা সম্পর্কে আমি নিশ্চিত নই। আমি অ্যাপটি বন্ধ না করা পর্যন্ত আমি সিমুলেটারের উপর নিয়ন্ত্রণ পেতে পারি না।
ওয়ান্না কফি

1
@WannaCoffee দেখুন stackoverflow.com/questions/18519799/...
জন

12

ম্যাক ওএস এক্স লায়নটিতে আইওএস 5 এর পরে, আপনি চেষ্টা করতে পারেন:

  1. নামে পরিচিত একটি স্ক্রিপ্ট তৈরি করুন RemoveSimulatorApps.command:
    আরএম-আরএফ "/ হোম / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / 5.0 / অ্যাপ্লিকেশন / *"
    
  2. এই স্ক্রিপ্টটি আপনার একটি ডিরেক্টরিতে সংরক্ষণ করুন PATH
  3. ফাইলটিকে এক্সিকিউটেবল করুন, যেমন:
    chmod + x সরানসিমুলেটর অ্যাপস.কম

অনুমিতি

  • আপনি এটি কোনও কীবোর্ডের পছন্দের বোতামগুলি থেকে শুরু করতে পারেন যেমন কোনও লগিচেক বা মাইক্রোসফ্ট কীবোর্ডে প্রোগ্রামেবল কীগুলির সাহায্যে (সুতরাং, .sh বলার পরিবর্তে এটি একটি কম্যান্ড ফাইল হিসাবে সংরক্ষণ করা)
  • আইওএস সিমুলেটরটিতে সমস্ত কিছু ফেলে দেওয়ার সাথে আপনি ঠিক আছেন (আদর্শ যদি আপনি কেবলমাত্র একটি অ্যাপ্লিকেশনে সক্রিয়ভাবে কাজ করছেন)
  • অন্যের কাছ থেকে পাওয়া সমস্ত নোট একটি ভাল আপগ্রেডযোগ্য অ্যাপ্লিকেশন ইত্যাদি সম্পর্কিত প্রযোজ্য ((আমি ব্যক্তিগতভাবে এই দরকারী সত্ত্বেও খালি / সি আমার কাছে বিকাশ মোডের স্যুইচগুলি পাওয়া গেছে যা নির্দিষ্ট অবস্থায় একটি ডাটাবেস পুনরায় লোড করে আমি কিছু ধারাবাহিক দৃ rob়তা / ত্রুটি পরিচালনার চেষ্টা করছিলাম)

1
এটি পুরোপুরি
কার্যকরভাবে

1
নিখুঁত পথের পরিবর্তে ~ যুক্ত করা কি বোধগম্য হবে?
নিকিতা লিওনভ

8

এটি ওভারকিল হতে পারে তবে ..

আপনি মেনু এবং 'রিসেট সামগ্রী এবং সেটিংস ...' ব্যবহার করতে পারেন


7

আপনি যা করার চেষ্টা করছেন তা হ'ল আপনার ডাটাবেস সাফ করা, যদি আপনি স্কিমা পরিবর্তন করে থাকেন। এটি করার একটি উপায় এবং আপনি যখন আপনার অ্যাপ্লিকেশনটির ২.০, 3.0.০ ইত্যাদি সংস্করণ শিপিং শুরু করেন তখন এটি আপনাকে দীর্ঘমেয়াদে আরও সুখী করে তুলবে, তা হল আপনার স্ক্লাইট টেবিলের সংস্করণটি পরীক্ষা করা, এবং যদি এটি পরিবর্তিত হয়, তবে এটি বাতিল করুন পুরানো ফাইল এবং আপনার বান্ডেলের মধ্যে একটি ব্যবহার করুন।

সিমুলেটরটি পরিষ্কার করার একটি উপায় সন্ধানের মাধ্যমে আপনি যখন কোনও নতুন স্কিমার সাহায্যে একটি নতুন সংস্করণ প্রেরণ করবেন তখন কোনও গ্রাহকের আইফোন কীভাবে পরিষ্কার করবেন তার আসল বিশ্ব সমস্যাটিকে সাহায্য করবে না।

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


সাধারণভাবে, আপনি যখন মুক্তির আপগ্রেডগুলির বিষয়ে কথা বলছেন তখন আমি আপনার সাথে একমত হই তবে কোনও নির্দিষ্ট সংস্করণের বিকাশের মাঝে এটি প্রয়োজনীয়ের চেয়ে অনেক বেশি ওভারহেড। ডেটাবেস স্কিমা প্রতি বিল্ড ভিত্তিতে পরিবর্তিত হতে পারে এবং প্রতিটি বিল্ডের জন্য রূপান্তর কোড লেখার প্রয়োজন কেবল ভুল।
ট্র্যাভিস জেনসেন 21


6

আপনি যদি Xcode 9 -> মেনুবার -> হার্ডওয়্যার -> সমস্ত সামগ্রী এবং সেটিংস মুছুন

এক্সকোড -> হার্ডওয়্যার -> সমস্ত সামগ্রী এবং সেটিংস মুছুন


5

এক্সকোড 6 হিসাবে, আপনি কমান্ড লাইন থেকে এটি করতে পারেন: xcrun সিমক্টেল মুছে ফেলুন

এছাড়াও, আইওএস সিমুলেটর অ্যাপ্লিকেশন (উভয় এক্সকোড 6 সংস্করণ এবং পুরানো সংস্করণ) এর "রিসেট সামগ্রী এবং সেটিংস" নামে একটি মেনু আইটেম রয়েছে যা বর্তমানে বুট হওয়া ডিভাইসটি মুছতে ব্যবহার করা যেতে পারে।


কিন্তু এটি প্রতিটি বিল্ডে স্বয়ংক্রিয়ভাবে কার্যকর করা যায়? উদাহরণস্বরূপ পরীক্ষার জন্য?
ড্যানিয়েল গোমেজ রিকো

ধরে নিই যে আপনি কোনও স্ক্রিপ্ট ব্যবহার করে আপনার পরীক্ষা করছেন, আপনি অবশ্যই যথাযথ যেখানে স্ক্রিপ্টটিতে 'xcrun সিম্কটল মুছে <ইউডি>' যুক্ত করতে পারেন ...
জেরেমি হডলস্টন সিকোইয়া

হ্যাঁ, আমি যা বলেছিলাম ঠিক সেটাই।
জেরেমি হাডলস্টন সিকোইয়া

5

এটি এক্সকোড 6 এর সাথে কাজ করে:

xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}

.বাশ_প্রোফাইলের জন্য

alias cleansim="xcrun simctl list | grep -oh '[A-Z0-9]\{8\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{4\}-[A-Z0-9]\{12\}' | xargs -I{} xcrun simctl erase {}"

3

এক্সকোড 6 হিসাবে:

xcrun simctl erase <sim udid> <- সিমুলেটর পুনরায় সেট করুন।


1

এক্সকোড ক্যাশে সাফ করুন;

কম্যান্ড + অপশন + করতে Shift + কে

কমান্ড + Shift + K

(তাদের উভয় ব্যবহার করুন কারণ তাদের কার্যকারিতা আলাদা)

ডেরিভড ডেটা বিষয়বস্তু সাফ করুন;

মেনু বার -> উইন্ডো -> সংগঠক -> প্রকল্প -> আপনার প্রকল্প নির্বাচন করুন

ডান ফলকটি ফোল্ডারের নাম প্রদর্শন করে এবং ডান পাশের বোতাম মুছতে আপনাকে সমস্ত প্রাপ্ত ডেটা সামগ্রী মুছে ফেলার অনুমতি দেয়।

সিমুলেটর ক্যাশে সাফ করুন;

মেনু বার -> আইওএস সিমুলেটর -> সামগ্রী এবং সেটিংস পুনরায় সেট করুন


1

আমি যাচাই করা উত্তরের অধীনে একটি মন্তব্যে ব্যাখ্যা করছিলাম :

আমি ক্যালেন্ডার সাবস্ক্রিপশন যোগ এবং অপসারণ পরীক্ষা করছিলাম। আসল ডিভাইসে, আপনি সেটিংস , অ্যাকাউন্টগুলিতে একটি ক্যালেন্ডার সাবস্ক্রিপশন সরাতে পারেন তবে এই মেনুটি আইওএস সিমুলেটারে নেই এবং আমি পুরো সিমুলেটরটি পুনরায় সেট করতে চাইনি।

সুতরাং আমি স্থানীয়ভাবে আমার ডিভাইস ফোল্ডারটি গিট দিয়ে সংস্করণ করে শেষ করেছি এবং ক্যালেন্ডার সাবস্ক্রিপশন যুক্ত করার পরে এটি সরিয়ে ফেলতে নিম্নলিখিত কমান্ডগুলি সম্পাদন করেছি:

$ git reset HEAD --hard
$ git clean -f

সুতরাং পদক্ষেপগুলি হ'ল:

  1. আইওএস সিমুলেটারে আপনার অ্যাপ্লিকেশন ইনস্টল করুন এবং আপনার যা করতে হবে তা করুন
  2. আপনার ডিভাইসটি সনাক্ত করুন ~/Library/Developer/CoreSimulator/Devices/এবং cdএটির git initজন্য একটি করুন , তারপরে গিট সংগ্রহস্থল তৈরি করতে
  3. একবার আপনি রাষ্ট্রটি সংরক্ষণ করতে চান, সঞ্চালন করুন git commit -a "Message"
  4. সেটিংস পরিবর্তিত যাই হোক না কেন (উদা: একটি ক্যালেন্ডার সাবস্ক্রিপশন যুক্ত করা) এবং আপনার পরীক্ষাগুলি সম্পাদন করুন
  5. সিমুলেটর বন্ধ
  6. ডু git reset --hard HEAD
  7. সিমুলেটরটি শুরু করুন, সমস্ত পরিবর্তনগুলি পরে git commitচলে যাবে।

1

এক্সকোডে, উইন্ডো মেনু বিকল্পে যান, ডিভাইসগুলি নির্বাচন করুন এবং তারপরে আপনি কেবল যার প্রয়োজন নেই সেগুলি মুছতে পারেন।


0

এক্সকোডের জন্য <= 5

আমি আমার সাথে নিম্নলিখিতগুলি যুক্ত করেছি ~/.bash_profile

alias cleansim='rm -r ~/Library/Application\ Support/iPhone\ Simulator/5.1/Applications/*'

এটি সিমের সমস্ত অ্যাপ্লিকেশানগুলিকে কেবল সংকুচিত করে।


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