সফলভাবে পরীক্ষিত হয়েছে যে আই 40 ওয়েস্টের সমাধানটি ম্যানুয়ালি সিমুলেটারটি চালু করতে কাজ করে তবে নির্বোধ বলে মনে হয় যে এই দিন এবং যুগে আইওএস সিমুলেটারের কমান্ড লাইন থেকে সাম্প্রতিক পরীক্ষা চলাকালীন বিভিন্ন এক্সকোড সংস্করণ এবং বিভিন্ন ডিভাইসের প্রকারের প্রয়োজন হয় (কিছুটা আলাদা ব্যবহারের ক্ষেত্রে তবে মূল প্রশ্নের সাথে সম্পর্কিত) )।
কমান্ড লাইন তৈরি এবং পরীক্ষার জন্য এখানে প্রাসঙ্গিক অ্যাপল নিবন্ধটি দেখুন:
https://developer.apple.com/library/ios/technotes/tn2339/_index.html
এক্সসিআরউনের আউটপুট থেকে ইউআইডি-র মান সহ 'এক্সকোডবিল্ড পরীক্ষা' চালানোর আগে 'এক্সকোড বিল্ড পরীক্ষা' চালানোর আগে 'আইওএস সিমুলেটর.এপ' - - যদি একাধিক সমবর্তী পরীক্ষাগুলি আমাদের পক্ষে ভাল কাজ করেছে বিভিন্ন এক্সকোড সংস্করণ বাইনারিগুলি নির্বাচন করতে (যেমন Xcode 6.1 এবং 6.4 এর বেস পাথ) সিমেটল তালিকা ', এবং DEVELOPER_DIR পরিবেশ পরিবর্তনশীল সেট করে
একই শারীরিক মেশিন এবং একই আইওএস সিমুলেটর ডিভাইসে যেমন আইপ্যাড বা আইফোন এবং একই এক্সকোড সংস্করণে সমবর্তী ইউনিট পরীক্ষাগুলির প্রয়োজনীয়তার কারণটি মূলত যে কোনও আইওএস প্রকল্পের সিআই (অবিচ্ছিন্ন ইন্টিগ্রেশন) সমর্থন করে যেখানে একই বিল্ড সিস্টেম একাধিক বিল্ড একাধিক বিল্ড চালাতে পারে অ্যাপসগুলিতে (আমাদের সংস্থার 30 টি অ্যাপ্লিকেশন রয়েছে) বৈশিষ্ট্যযুক্ত শাখাগুলি একবারে চেক-ইন করার পরে ফিচার শাখাগুলি স্বয়ংক্রিয়ভাবে স্ক্যান করে বাঁশের এজেন্ট দ্বারা নির্মিত হয় অন্য চলমান বিল্ডসগুলি সম্পূর্ণ হওয়ার জন্য অপেক্ষা না করে - বাঁশ অটো- এ এই ধরণের অটো বিল্ডকে সমর্থন করে সক্ষম করা থাকলে বৈশিষ্ট্য শাখা আবিষ্কার।
একাধিক সমবর্তী পরীক্ষার চলাকালীন যা ঘটে থাকে তা হিসাবে, আমরা বিভিন্ন টার্মিনাল.এপ উইন্ডোতে একাধিকবার 'এক্সকোডবিল্ড পরীক্ষা' কমান্ডগুলি চালিত করি, ফলাফলটি কেবলমাত্র একটি সিমুলেটর উইন্ডো প্রদর্শিত হয় এবং পরীক্ষাগুলি সহজতম পরীক্ষায় ব্যর্থ হয়।
যখন আমরা আমাদের পরীক্ষার প্রবর্তনের জন্য প্রবেশের মানদণ্ডকে জটিল করি, প্রতিটি সিম এবং পরীক্ষা প্রবর্তনের জন্য পৃথক এক্সকোড সংস্করণ, যখন ম্যান পেজগুলি (এক্সকোডবিল্ড পরীক্ষা) অনুযায়ী DEVELOPER_DIR ব্যবহার করার সময় আমরা একটি পৃথক ডিভাইস নির্দিষ্ট করে যা দুটি পৃথক উইন্ডোতে খোলে, তবে ফলাফলটি হয় প্রথম উইন্ডোতে চলমান কোনও পরীক্ষা দ্বিতীয় আইওএস সিমুলেটর উইন্ডো দ্বারা বাধাগ্রস্থ হয়।
এই হুডের নীচে একটি সাধারণ শেয়ার্ড রিসোর্স রয়েছে বলে মনে হচ্ছে, এটি নিশ্চিত নয় বা কেবল একটি নতুন বৈশিষ্ট্য যার বিরূপ প্রভাবগুলি ছাড়াই সমবর্তী পরীক্ষা চালানো আরও ভালভাবে বাস্তবায়িত করার জন্য কয়েক দিনের বেশি গুরুতর চিন্তাভাবনার প্রয়োজন।
আমরা সিম বিধিনিষেধের আশেপাশে কাজ করার জন্য ভিএম ব্যবহার করতে চাই না কারণ আমাদের অভিজ্ঞতা এবং সাধারণভাবে অন্যরা হ'ল আইওএস ভিএমগুলিতে প্রচুর সংখ্যক ছোট ফাইল সহ পারফরম্যান্স হার্ডওয়্যার থেকে ধীর হয়। ভিএমওয়্যার সফ্টওয়্যার এবং অ্যাপল হার্ডওয়্যার এবং / বা ফার্মওয়্যারের সংমিশ্রণে আই / ও ইস্যুগুলির কারণে ভিএমগুলি সাধারণত বিল্ডটি ধীর করে দেয়। দুঃখিত ভার্চুয়াল ঘেটটো তবে আমাদের জন্য ভিএমগুলি ভাল পারফর্ম করে না - ভার্চুয়ালঘেটো সাইটটি আমাদের বিল্ড ফার্মের জন্য ম্যাক মিনির উপর কীভাবে ESXi 5.5 ইনস্টল করতে হবে সে সম্পর্কে আমাদের নির্দেশাবলী সরবরাহ করেছে।
আমরা ম্যাক মিনিতে ESXi 5.5 এর সাথে বিল্ড পারফরম্যান্সের সমস্যাটি 2 বা ততোধিক সংখ্যক (যেমন 10 মিনিটের বারিমেটাল বিল্ড ভিএম-তে 20 নেবে) দ্বারা খালি ধাতব তুলনায় ধীর হয়ে উঠছে experienced কেন নীচে স্কোয়ারআপ নিবন্ধ পড়ুন।
https://corner.squareup.com/2015/07/ios-build-infrastructure.html
এক্সকোডবিল্ড ইউনিট পরীক্ষার জন্য একসাথে 1 টি সিম ডিভাইসের সীমাবদ্ধতা উত্পাদনশীলতা মারাত্মকভাবে হ্রাস করে এবং দ্রুত এবং অ্যাপল এবং বাস্তুতন্ত্রের জন্য উল্লেখযোগ্য ব্যয় যুক্ত করে।
অ্যাপলকে আরও বেশি হার্ডওয়্যার ক্রয়ের ন্যায্যতা প্রমাণের জন্য সমর্থন না করার ব্যয়টি সাবধানতার সাথে চিন্তা করা উচিত, সিমস এবং EULA এর ক্ষেত্রে কম প্রতিবন্ধী অন্যান্য প্রতিযোগীদের বিরুদ্ধে বিকাশকারী বেগ হ্রাস করার ঝুঁকি ওজন করা উচিত risks
একই ব্যবহারকারীর লগইন (সর্বাধিক সিআই সিস্টেমগুলি কীভাবে কাজ করে) এর সমবর্তী পরীক্ষার সুবিধাটি হ'ল অ্যাপল ব্র্যান্ডযুক্ত অ্যাপ স্টোর অ্যাপ্লিকেশনগুলির গুণমানটি সেই অংশটি যা লোকেরা প্রথম স্থানে আইওএস ডিভাইসগুলি কিনতে সক্ষম করে। দুর্বল সফ্টওয়্যার গুণমান পুরো ব্র্যান্ডটিকে আইওএস সিমুলেটরগুলিতে কিছুটা স্লাগ এবং একযোগে সমর্থন করে তোলে বাস্তবে বাস্তুতন্ত্রকে সমর্থন করার মতো স্মার্ট উপায় like সাময়িকভাবে ইস্যুটির সামান্য সংশোধনী হ'ল সাম্প্রতিক উন্নতি যেমন সিআইয়ের জন্য অ্যাপলের এক্সকোড সার্ভার, এক্সকোডের স্বয়ংক্রিয় ইউআই পরীক্ষার কার্যকারিতা এক্সকোড 7।
লোকেরা প্রচুর পরিমাণে হার্ডওয়্যার, সেটআপ, কনফিগারেশন কিনতে, এবং সমস্ত মেশিন, নেটওয়ার্ক এবং পাওয়ার পয়েন্টগুলি সমর্থন করার জন্য প্রয়োজনীয় অসংখ্য ব্যক্তির উল্লেখ না করার জন্য উত্সাহিত করা শেষ পর্যন্ত অ্যাপলের লাভের ক্ষতি করবে কারণ সবাই অ্যাপলের মতো নয় এবং সিমুলেটরগুলিতে সাম্প্রতিক পরীক্ষাগুলি সমর্থন করার জন্য ম্যাকপ্রো বা ম্যাক মিনির র্যাকগুলি বহন করতে সক্ষম। সিমুলেটারের পুরো বিষয়টি হ'ল হার্ডওয়্যার ব্যবহার এবং পরীক্ষাগুলি দ্রুত করা এড়ানো।
এছাড়াও ভিএমএসে ইইউএলএ এর সীমাবদ্ধতা ম্যাক প্রোতে ভিএমদের ক্ষেত্রে কেসটিকে বেশ দুর্বল করে তোলে। এই হার্ডওয়্যার ধরণটি আকর্ষণীয় হবে যদি একাধিক সিম চলতে পারে তবে যেহেতু একযোগে ইউনিট পরীক্ষাগুলি সমর্থিত না হয় (উপরের দুটি শর্ত ব্যতীত - বিভিন্ন এক্সকোড সংস্করণ এবং বিভিন্ন সিমুলেটর ডিভাইস) আমরা সম্ভাব্য অবকাঠামো তৈরির জন্য ম্যাক মিনির সাথে থাকব।
অ্যাপল থেকে প্রাপ্ত এই সিম এবং EULA সীমাবদ্ধতাগুলি কেবল বিল্ড পাইপলাইনকে ধীর করে তুলবে না তবে অপ্রয়োজনীয় জটিলতা এবং ব্যয়ও যুক্ত করে। ছোট অ্যাপ্লিকেশনগুলির ক্ষেত্রে এটি এতটা গুরুত্বপূর্ণ নাও হতে পারে তবে অ্যাপ্লিকেশনগুলির আকার এবং জটিলতা বাড়ার সাথে সাথে বিল্ডটি এক ঘন্টারও বেশি সময় নিতে পারে (আমি শুনেছি যে ফেসবুক আইওএস বিল্ডগুলি এতে দীর্ঘ সময় নিতে পারে)। বিল্ড কেটে গেছে কিনা তা জানতে কেউ এক ঘন্টা অপেক্ষা করতে চায় না।
আমরা ম্যাক মিনিসে ইএসএক্সআই ভিএম চালানোর মতো হ্যাক সমাধানগুলি জানি যা একটি আধুনিক ম্যাক বুক প্রো বা ম্যাক মিনি, বা বিভিন্ন লগইন অ্যাকাউন্টগুলিতে 10 মিনিটের বেশি সময় নেয় এমন বিল্ডগুলির সাথে বড় প্রকল্পগুলিতে ওএস এক্স এবং এক্সকোডবিল্ডের সাথে ভাল পারফরম্যান্স অনুযায়ী খেলতে পারে না hack পরিবেশে খালি ধাতু মেশিনে কেবল একই এক্সকোড সংস্করণ এবং একই সিমুলেটর ডিভাইসে সমবর্তী পরীক্ষা চালাতে সক্ষম হতে।
ESXi আনুষ্ঠানিকভাবে সমর্থিত নয় যদিও এটি বেশ ভাল কাজ করে। ভিএমওয়্যার ম্যাক মিনি হার্ডওয়্যারকে সমর্থন না করতে পারে তার একটি কারণ এখনও ইসিসি মেমরির অভাব, যদিও ম্যাক প্রো সমর্থিত যেমন এটিতে ইসিসি মেমরি রয়েছে, তবে ম্যাক মিনির আইওএসের ক্ষেত্রে মাই মিনির খালি ধাতুর তুলনায় ধীর গতিতে একই সমস্যা রয়েছে একই হার্ডওয়্যার এবং সফ্টওয়্যার কনফিগারেশনের পরীক্ষা (কেবল পরিবর্তনটি ভিএম বনাম খালি ধাতব চলমান ওএস এক্স)। ম্যাকপ্রো এই মুহুর্তে আমাদের দ্বারা পরীক্ষা করা হয়নি। আমাদের অভিজ্ঞতায় ভিএমওয়্যার ফিউশন পারফরম্যান্সের ক্ষেত্রেও বেশ ধীর।
আরও গুরুত্বপূর্ণভাবে বিকাশকারীদের আরও অপেক্ষা করতে হবে যখন পূর্বোক্ত বিষয়গুলি একত্রে মিশ্রিত করা হয় যদি না মেশিনগুলির পুল পরিবর্তনের পাইপলাইন সমর্থন করার জন্য যথেষ্ট বড় না হয় (প্রতি 2 দেবের জন্য একটি সিআই বিল্ড, বিকাশকারীতে মেশিনের খুব উচ্চ অনুপাত)। সিআই বিল্ড মেশিনগুলি 1 এর চেয়ে আরও সমবর্তী বিল্ডস এবং আরও একযোগে পরীক্ষা চালাতে সক্ষম হওয়া উচিত।
আইওএস সিমুলেটরগুলি সম্পর্কে অন্য পর্যবেক্ষণগুলির মধ্যে একটি হ'ল তারা মনে হয় যে এটি 7 টি বড় সংস্করণ পরেও একটি কাজ চলছে এবং সম্পূর্ণ অসম্পূর্ণ a 'Xcrun simctl' সাবকম্যান্ডে একটি --set বিকল্প রয়েছে যা কোনও প্রকারের কিছুটা নমনীয়তার অনুমতি দিতে পারে তবে কোনটি সম্ভাব্য মানটি বৈধ কিনা তা নিশ্চিত নয় এবং --noxpc এর সাথে একই। কারও উপযুক্ত মানগুলি অনুমান করার দরকার নেই এবং তদ্ব্যতীত, একটি বিকল্প পৃষ্ঠা থাকা উচিত যা এই বিকল্পটি এবং সম্ভবত উদাহরণটি অন্তর্ভুক্ত করে। এই 2 আকর্ষণীয় বিকল্পের জন্য কিছু ব্যবহারের ক্ষেত্রে কী কী?
আপনি বলতে পারেন, ভাল কোনও অ্যাপ্লিকেশন এমন এক বৃহত পদচিহ্নের জন্য নকশাকৃত করা উচিত নয় যা চালানোর জন্য সমবর্তী পরীক্ষা দেয় এবং এক্সপিসির উপর ভিত্তি করে আরও ভাল আর্কিটেকচার ব্যবহার করা যায়, কারণ একচেটিয়া অ্যাপ্লিকেশনগুলিই এটি ইস্যু। এটি খুব ভালভাবেই সঠিক হতে পারে, এটি আমরা যেমন আশা করতে পারি তেমন ব্যবহারিক সমাধান নয় এবং একই অবকাঠামোতে যদি আপনার 20+ অ্যাপ্লিকেশন তৈরি করতে থাকে তবে সমস্যাটি রয়ে যায়।
উচ্চতর থ্রুপুটটির জন্য একটি মেশিন কনফিগারেশন এবং প্রসেস যতটা সম্ভব জেনেরিক এবং স্কেলযোগ্যযোগ্য তৈরি করতে সিমুলেটার (অ্যাপ + কোর ডিভস) এর জন্য কিছু কাজ প্রয়োজন require এটির জন্য সমস্ত অ্যাপল সিমুলেটর বিকাশকারী এবং সিমুলেটর পণ্য মালিক (গুলি) এর মধ্যে একটি উচ্চ স্তরের সহযোগিতা প্রয়োজন যাতে এই বিষয়টির কোনও দৃষ্টি আকর্ষণ করার জন্য পণ্যটির ব্যাকলগটি সঠিকভাবে অর্ডার করতে হবে :-)