আইফোন সিমুলেটারে সময় এবং সময় অঞ্চল কীভাবে পরিবর্তন করবেন?


143

আইফোন সিমুলেটারে আমি কীভাবে সময় এবং সময় অঞ্চল পরিবর্তন করব ?


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

উত্তর:


214

আমি অনুমান করছি এটি আপনার সিস্টেমের টাইমজোন ব্যবহার করে, তাই সিস্টেমের পছন্দগুলিতে টিজেড পরিবর্তন করা সম্ভবত কৌশলটিই করতে পারে

বর্ণনার জন্য স্ক্রিনশট


1
হুম ... আমার সিমুলেটরটিতে এই বিকল্প নেই। আমার ফোনে এটি সেটিংস -> সাধারণ -> তারিখ এবং সময়ের অধীনে। আমার সিমুলেটারে তারিখ ও সময় বিভাগ বিদ্যমান নেই।
ভিটো আন্দোলিনি

6
ওহ ... এটি আপনার মেশিনের সিস্টেম পছন্দগুলিতে পরিবর্তন করুন, সিমুলেটারের সেটিংসে নয়। ঠিক। যে কাজ!
ভিটো আন্দোলিনি

2
এতে একটি সমস্যা, সিস্টেম সময় পরিবর্তন করার 2 মিনিটের পরে সিমুলেটার সময় আপডেট করা হয়। যে কোনও পদ্ধতি যা একই সাথে সিমুলেটর সময় পরিবর্তন করে ....
আসিফহবিব

1
আমি ম্যাকের সময় পরিবর্তন করেছি এবং সিমুলেটারের সময় পরিবর্তন হয়নি, আমি যাচাই করেছিলাম হয় আমি সঠিক পদক্ষেপ নিয়েছি, সিমুলেটারের সময় পরিবর্তন হয়েছিল। সুতরাং আমি এই সিদ্ধান্তে পৌঁছেছি যে সিমুলেটর সময়টি 10 ​​থেকে 15 সেকেন্ড পরে আপডেট হয় তবে এটি আমার পক্ষে ঠিক। @ জেপিকে আমি আপনার সিস্টেমের সমস্যা জানি না, সর্বোত্তম উপায় হ'ল সম্পূর্ণ সময়ের লগগুলি মুদ্রণ করা এবং কোথায় সমস্যা রয়েছে তা যাচাই করা।
আসিফহবিব

2
ম্যাকের সিস্টেমের সময় পরিবর্তন করুন, তারপরে আপনাকে সিমুলেটরটি পুনরায় চালু করুন।
জন ওয়াং

41

সিস্টেমের তারিখের সময় পছন্দগুলি পরিবর্তন করার পরে সিমুলেটর পুনরায় আরম্ভ করুন এবং আপনি পরিবর্তনগুলি প্রতিফলিত দেখতে পাবেন। এটা আমার জন্য কাজ করেছে।


170
ভয়াবহ সমাধান (অ্যাপলের পক্ষ থেকে, আপনার উত্তর নয়)। আপনার সিস্টেমের সময় পরিবর্তন করতে এবং কম্পিউটারে সম্ভাব্য জিনিসগুলি ভাঙার জন্য সিমুলেটরটি নিরাপদ বিকল্প হিসাবে এটি ঠিক সেই ধরণের কাজ করতে সক্ষম exactly
devios1

3
@ দেভিওস এটি আগের চেয়ে আরও সত্য  ওয়াচ
লুইস

@ লুইস ৪৪, আপনার অর্থ কী?
আইলিয়ান ওনোফ্রেই

2
@ লুলিয়ান কেবলমাত্র সময়টি বলার জন্য একটি নতুন ডিভাইস রয়েছে তবে সময় অঞ্চলগুলি পরীক্ষা করার জন্য আপনাকে এখনও এ জাতীয় গোলমাল করতে হবে। এটা ছিল নিক্ষেপ মন্তব্য, আমি হতাশ হয়ে উঠছিলাম! :)
লুইস

খুব সত্য, @ লুইস 42। আপনার ফোনে সিস্টেমের সময়ের সাথে জগাখিচুড়ি সত্যিই আপনার অ্যাপল ওয়াচের মুভমেন্ট ডেটার মতো জিনিসগুলি সরিয়ে দেয়। যদি আপনি আপনার ঘড়ির ডেটার বিষয়ে যত্নশীল হন, তবে টেস্টিংকে সমস্যাযুক্ত করে তোলে।
জেমস হোয়াইট

35

এটি কার্যকর হবে যদি অ্যাপল "সিমুলেট অবস্থান" মেনু সরবরাহ করায় তারা একটি "সিমুলেট তারিখ" সরবরাহ করে। আমি যা করি তা হ'ল তারিখ পাওয়ার পরে অবধি একটি ব্রেকপয়েন্ট নির্ধারণ করা হয় (এটি একটি ভেরিয়েবলে সংরক্ষণ করা) এবং তারপরে মানটি সংশোধন করে। অথবা যেখানে আমি তারিখের পরিবর্তন পরীক্ষা করে দেখি ঠিক সেই জায়গাটি সংশোধন করে সত্যে ফিরে আসুন।


এটির আরও ভাল উত্তর দেওয়ার জন্য: আপনি কীভাবে এটি সংশোধন করবেন? আপনি এটির সাথে একটি বিরতি যুক্ত করবেন? আপনি কিছু কোড শেয়ার করতে পারেন?
মধু

আপনি এখনই এটি করতে পারেন, এখানে stackoverflow.com/a/62155632/2025766 আপনি কীভাবে এটি করতে পারেন তা খুঁজে পেতে পারেন
ফেড হেনজে

10

স্ক্রিনশট নেওয়ার উদ্দেশ্যে, শেষ পর্যন্ত অ্যাপল আইএমএস সিমুলেটারের স্ট্যাটাস বারে ( এক্সকোড 11 সাল থেকে ) সিমক্টেল সরঞ্জামটি ব্যবহার করে ওভাররাইড করা সম্ভব করেছে :

xcrun simctl status_bar "iPhone Xs" override --time "21:08"

5
আমি মনে করি এটি কেবল স্ট্যাটাস বারকে (স্ক্রিনশটের উদ্দেশ্যে) ওভাররাইড করে। তবে এটি কোনও সময় / তারিখের এপিআইয়ের ফলাফলকে প্রভাবিত করবে না।
রাউন

7

আইওএস 13 এবং কমপক্ষে এক্সকোড 11 থেকে এখানে একটি সমাধান পাওয়া যায়। (পূর্ববর্তী সংস্করণ দিয়ে পরীক্ষা করা হয়নি)

ডিফল্টরূপে আইওএস সিমুলেটর আপনার ম্যাকের সময়টি যা দেখায় তা দেখায়, তবে, আপনি টার্মিনালে এই কমান্ডটি দিয়ে ওভাররাইড করতে এক্সকোডের কমান্ড লাইনটি ব্যবহার করতে পারেন:

xcrun simctl status_bar "iPhone 11 Pro Max" override --time '9:41'

আপনি যে ডিভাইসটি পরিবর্তন করতে চান তার সাথে সিমুলেটারের নামটি প্রতিস্থাপন করুন।

আইফোনের সময় স্ক্রিনশট

স্ট্যাটাস বারের জন্য আপনার এই ওভাররাইডগুলি রয়েছে:

You may specify any combination of these flags (at least one is required):

--time <string>
     Set the date or time to a fixed value.
     If the string is a valid ISO date string it will also set the date on relevant devices.
--dataNetwork <dataNetworkType>
     If specified must be one of 'wifi', '3g', '4g', 'lte', 'lte-a', or 'lte+'.
--wifiMode <mode>
     If specified must be one of 'searching', 'failed', or 'active'.
--wifiBars <int>
     If specified must be 0-3.
--cellularMode <mode>
     If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
--cellularBars <int>
     If specified must be 0-4.
--batteryState <state>
     If specified must be one of 'charging', 'charged', or 'discharging'.
--batteryLevel <int>
     If specified must be 0-100.

সময় যে কোনও স্ট্রিং হতে পারে। তবে আপনি যদি ডিভাইসটি তারিখটি প্রদর্শন করতে চান তবে আপনার প্রয়োজন হবে আইএসও ফর্ম্যাটটি । উদাহরণস্বরূপ একটি বৈধ আইএসও তারিখের স্ট্রিং হবে '2007-01-09T10: 41: 00 + 01: 00'

অন্যথায় আপনি টাইম প্যারামিটারটিকে স্ট্রিং হিসাবে ব্যবহার করতে পারেন এবং এটি আপনি যা পাস তা প্রদর্শন করবে।

পল হাডসনের মূল পোস্টটির জন্য ধন্যবাদ এখানে লিঙ্কটি !


1
খুব সুন্দর সম্ভাবনা, তবে অ্যাপ্লিকেশনটির কার্যকারিতাটি আলাদা টাইমজোনটিতে পরীক্ষা করার জন্য টাইমজোনকে সত্যই পরিবর্তনের অনুমতি দেয় না। উদাহরণস্বরূপ xcrun সিম্টিটাল স্ট্যাটাস_বার "আইপ্যাড প্রো (11-ইঞ্চি)" ওভাররাইড - সময় '2020-01-12T10: 41: 00-06: 00' এটি সেই সময়টিকে আমার বর্তমান সিইটি টাইমজোনকে রূপান্তর করে এবং আইওএস সিমুলেটর সময়কে 5 এ সেট করে : সন্ধ্যা
41

1
ব্যাখ্যার জন্য: আমি যদি পরীক্ষাটি ব্যবহার করতে চাই যে যদি কোনও অ্যাপ্লিকেশন কোনও আলাদা টাইমজোন ভ্রমণ করে তবে আমার অ্যাপ্লিকেশন কীভাবে প্রতিক্রিয়া দেখায়।
র্যান্ডম কন্ট্রোল

আপনি ঠিক বলেছেন, এটি কেবলমাত্র স্ট্যাটাস বারকেই প্রভাবিত করে, আমি কেবল স্ক্রিনে বর্তমান সময় মুদ্রণ করে একটি পরীক্ষা করেছি এবং এটি কেবলমাত্র শীর্ষে থাকা সিমুলেটেড ডিভাইসের সিস্টেমের সময় পরিবর্তন করে না। আমি প্রতিবিম্বিত করতে আমার পোস্ট সম্পাদনা। ধন্যবাদ
বহু

5

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

বিকল্পভাবে সিস্টেম পছন্দসমূহ -> তারিখ এবং সময় এবং ট্যাব নির্বাচন করুন সময় অঞ্চল।

ওএসএক্সের চারপাশের উপায়গুলি না জেনে থাকতে পারে এমন কারও জন্য কেবল একটি পয়েন্টার।


6
এটি কোনও উত্তর নয়, সুতরাং এটি একটি মন্তব্য হওয়া উচিত। ওএস এক্স এর চারপাশে তাদের উপায় জানে না এমন আইওএস বিকাশকারীদের সংখ্যা হ'ল শূন্য।
ফাতেমন

5

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

এখানে চিত্র বর্ণনা লিখুন


4

আপনি TZকেবলমাত্র সেই অ্যাপ্লিকেশনের জন্য সময় অঞ্চল নির্ধারণ করতে একটি এক্সকোড স্কিমে পরিবেশ পরিবর্তনশীল সেট করতে পারেন ।

স্কিম পরিচালনা করুন

আপনি ব্যবহার করতে পারেন UTC, PST, EST, পাশাপাশি যেমন জায়গা ভিত্তিক টাইমজোন নাম America/Los_Angeles। এটি ভালভাবে নথিভুক্ত করা হয়নি তবে আমি কোনও টাইম জোনের নাম সন্দেহ করি কাজ করা উচিত।

এটি ভালভাবে নথিভুক্ত করা হয়নি, তবে উত্স হ'ল বিকাশকারী ফোরামে অ্যাপল বিকাশকারী সমর্থন প্রতিনিধি


2
কেন এই ডাউন ভোট দেওয়া হয়? এটি কেবলমাত্র আমার জন্য কাজ করেছিল।
জ্যাকব রোহদে

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

2

: আমি সময় যে হল hacky পদ্ধতি swizzling অন্তর্ভুক্ত পরিবর্তন সমস্যার একটি স্বয়ংক্রিয় সমাধান প্রস্তাব https://stackoverflow.com/a/34793193/829338 । আমি ধরে নিয়েছি যে সেই অনুযায়ী সময় অঞ্চল পরিবর্তন করার জন্যও কাজ করা উচিত।


আমার নিজের অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে পরীক্ষা করা দরকার, যার জন্য প্রয়োজন সময় পরিবর্তন করা। টম যে পরামর্শ দিয়েছে তা আমি করেছি: হ্যাপি হ্যাকি পদ্ধতি সুইজলিং

প্রদর্শনের উদ্দেশ্যে, আমি কেবল পরিবর্তন করি [NSDate date]তবে পরিবর্তন করি না [NSDate dateWithTimeIntervalSince1970:]

প্রথমে আপনার শ্রেণি পদ্ধতি তৈরি করার দরকার যা নতুন [এনএসডিট তারিখ] হিসাবে কাজ করে। আমি এটিকে বাস্তবায়িত করে ধীরে ধীরে সময় পরিবর্তন করে সময়কে স্থানান্তরিত করতে।

int timeDifference = 60*60*24; //shift by one day
NSDate* (* original)(Class,SEL) = nil;

+(NSDate*)date{
    NSDate* date = original([NSDate class], @selector(date));
    return [date dateByAddingTimeInterval:timeDifference];
}

এখনও পর্যন্ত, বেশ সহজ। এখন আসছে মজার ব্যাপারটি। আমরা উভয় শ্রেণি থেকে পদ্ধতি এবং বিনিময় বাস্তবায়ন পাই (এটি আমার জন্য অ্যাপডেলিগেটে কাজ করেছিল, তবে আমার ইউআইটিএস ক্লাসে নয়)। এর জন্য আপনাকে আমদানি করতে হবে objc/runtime.h

Method originalMethod = class_getClassMethod([NSDate class], @selector(date));
Method newMethod = class_getClassMethod([self class], @selector(date));

//save the implementation of NSDate to use it later
original  = (NSDate* (*)(Class,SEL)) [NSDate methodForSelector:@selector(date)];

//happy swapping
method_exchangeImplementations(originalMethod, newMethod);

আইআইআরসি এটি স্থানীয় বিজ্ঞপ্তি পরীক্ষার জন্য কাজ করবে না।
স্টিভ মোজার

1

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

//NSTimeZone+DefaultTimeZone.h
#import <Foundation/Foundation.h>

@interface NSTimeZone (DefaultTimeZone)

+(NSTimeZone *)defaultTimeZone;

@end

//NSTimeZone+DefaultTimeZone.m
#import "NSTimeZone+DefaultTimeZone.h"

@implementation NSTimeZone (DefaultTimeZone)

+(NSTimeZone *)defaultTimeZone
{
    return [NSTimeZone timeZoneWithName:@"America/Los_Angeles"];
}

@end

0

সিস্টেমের তারিখের সময় পছন্দগুলি পরিবর্তন করার পরে আমাকে নির্বাচন করতে হয়েছিল Hardware> Reset All Content And Settings
এটি কেবলমাত্র সংস্করণ 10.3 (সিমুলেটর অ্যাপ্লিকেশন -880.5 কোরসিমুলেটর -681.5.4) এ আমার জন্য কাজ করেছে।

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