আইফোন সিমুলেটর এর ডেটা কোথায় সঞ্চয় করে?


234

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

উত্তর:


290

গৃহীত উত্তর এসডিকে ৩.২-এর জন্য সঠিক - এসডিকে 4 সেই পথের / ব্যবহারকারীর ফোল্ডারের পরিবর্তে আইফোন ওএস / আইওএস ভার্সনের প্রতিটি উত্তরাধিকারের জন্য একটি নম্বর দিয়ে প্রতিস্থাপন করে , তাই পথটি হয়ে যায়:

Library / লাইব্রেরি / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / [ওএস সংস্করণ] / অ্যাপ্লিকেশন / [অ্যাপজিইউইডি] /

আপনি যদি পূর্ববর্তী এসডিকে পাশাপাশি ইনস্টল করেন তবে এর 3.1.x সিমুলেটরটি এতে ডেটা সংরক্ষণ করতে থাকবে:

Library / লাইব্রেরি / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / ব্যবহারকারী / অ্যাপ্লিকেশন / [অ্যাপজিইউডি] /

Xcode6 এবং iOS8 এর জন্য For

~ / লাইব্রেরি / ডেভেলপার / CoreSimulator / ডিভাইস / [DeviceID] / ডেটা / পাত্রে / ডেটা / আবেদন / [আইডি] /


6
cd ~/Library/Application\ Support/iPhone\ Simulator/
রবার্ট

174
জিইউডি আপনার যে সন্ধানকারীর জন্য অনুসন্ধান করা তার চেয়ে নীচে পিস্কা 46 এর উত্তরটি নোট করুন: কেবল po NSHomeDirectory()ডিবাগারে টাইপ করুন। Go> ফোল্ডারে যান (সিএমডি-শিফট-জি) এ কেটে পেস্ট করুন।
ম্যাকওয়ার্থ

আমি কিছুটা উদ্বিগ্ন যে আমি যখন সিমুলেটরটি চালু করি তখন এটি 8.2 বলে, কিন্তু যখন আমি এই ফোল্ডারটি দেখি তখন কেবলমাত্র সংস্করণ নম্বরটি আমি দেখি 7.1। এটি আমাকে চিন্তায় ফেলেছে যে আমি ভুল জায়গায় খুঁজছি।
বাগ্লাফ


4
এই উত্তরটি কত সহজ, আরও সুবিধাজনক, কম ত্রুটির প্রবণ এবং কম হতাশার উপর জোর দেওয়া শক্ত (উপরে উপরে ম্যাকওয়ার্থের মন্তব্যে প্রস্তাবিত)। আপনি কেবল একটি লাইন যোগ করতে পারেন NSLogআপনার এই AppDelegate'র didFinishLaunchingWithOptions:, বা আপনি যা করতে পারেন po NSHomeDirectory()ডিবাগার থেকে। উভয় ক্ষেত্রেই, স্ট্রিংটি অনুলিপি করুন এবং এটি অনুসন্ধানকারীর সাথে খুলুন Cmd+Shift+G। এটি আরও ভাল কাজ করে কারণ আপনি পরিবর্তিত কিছু জানেন তার পরিবর্তে একটি মানক কমান্ডের সাথে জিজ্ঞাসা করছেন ।
বেঞ্জোহন

93

টার্মিনাল ছাড়াই আপনার অ্যাপের ডেটা কোথায় রয়েছে তা খুঁজে পাওয়ার আরও একটি (দ্রুত?) উপায় রয়েছে:

  1. সিমুলেটারে অ্যাপ্লিকেশন চালু করুন
  2. ক্রিয়াকলাপের তদারক করুন
  3. সিপিইউ ট্যাবে আপনার অ্যাপের নাম সন্ধান করুন
  4. এটিতে ডাবল ক্লিক করুন এবং "ফাইল এবং পোর্টগুলি খুলুন" খুলুন

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


1
NSString *uniqueIdentifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];আপনাকে ডিভাইস শনাক্তকারী দেয়
ওবার্কার

@ ইয়াবারকা শনাক্তকারীর আপনার সিমুলেটারের ডিভাইসআইডি বা অ্যাপ ফোল্ডারের সাথে কোনও সম্পর্ক নেই; আমি এক্সকোড 11.2.1 এবং আইওএস 13.2.2
ডনসং

78

এটি খুঁজে পেয়েছি:

~/Library/Application Support/iPhone Simulator/User/

16
কীভাবে সন্ধান করবেন: ফাইন্ডারে সিএমডি + শিফট + জি টিপুন
রোহন-প্যাটেল

নীচে dsmudger দ্বারা আপডেট করা প্রতিক্রিয়া দেখুন, এই মুহুর্তে এটি সঠিক উত্তর।
টম সসেল

74

আইওএস 8 ~ / গ্রন্থাগার / বিকাশকারী / কোরসিমুলেটর / ডিভাইস / [ডিভাইস আইডি] / ডেটা / অ্যাপ্লিকেশনস [[অ্যাপজিইউইডি] / নথি /


1
ডিভাইস আইডি পাওয়ার কোনও উপায়?
এমএসএমকিউ

2
@ এসএমকিউ চেষ্টা করুনxcrun instruments -s
শাজরন

11
@msmq আপনার বর্তমান সিমুলেটরটি চালু করুন, হার্ডওয়্যার -> ডিভাইস -> ডিভাইসগুলি পরিচালনা করুন ... -> "সিমুলেটর" তালিকায় আপনার সিমুলেটরটি নির্বাচন করুন। তারপরে ডানদিকে রয়েছে "আইডেন্টিফায়ার"। এটি ডিভাইস আইডি।
রিচএক্স

কীভাবে এখানে [অ্যাপগুইড] সন্ধান করবেন?
ইয়াং আপনি

66

সিংহের উপরে Users/[username]/Libraryলুকিয়ে আছে।

ফাইন্ডারে কেবল দেখতে, পর্দার শীর্ষে 'গো' মেনুতে ক্লিক করুন এবং 'লাইব্রেরি' দেখানোর জন্য 'Alt' কীটি ধরে রাখুন।

'লাইব্রেরি' এ ক্লিক করুন এবং আপনি আপনার আগের লুকানো লাইব্রেরি ফোল্ডারটি দেখতে পারেন।

পূর্বে পরামর্শ:

ব্যবহার

chflags nohidden /users/[username]/library

ফোল্ডারটি প্রদর্শন করতে একটি টার্মিনালে।


1
তারপরে আপনি এটি খুঁজে পেতে পারেন: Library / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / [ওএস সংস্করণ] / অ্যাপ্লিকেশনস [[অ্যাপজিইউইউআইডি] /
রাফায়েল মোরিরা

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

58

সবচেয়ে সহজ উপায়।

  1. কোথাও একটি ব্রেকপয়েন্ট ধরুন।

  2. লিখুন po NSHomeDirectory()মধ্যে কনসোল উইন্ডো

ফলাফল:

(এলএলডিবি) পো এনএসহোম ডিরেক্টরি


1
আমি যদি এটি আগে জানতাম এটির সঠিক উত্তরটি হওয়া উচিত ছিল
ইভান ক্যানটারিনো

আমি মনে করি অন্যান্য সমস্ত উত্তরও সঠিক। তবে এটি আমার পক্ষে সহজ বলে মনে হচ্ছে: -]
লাল কৃষ্ণ

37

যদি সিমুলেটরটি চলমান থাকে তবে আপনি যে কোনও অ্যাপের পাত্রে যাওয়ার পথটি পেতে পারেন:

xcrun simctl get_app_container booted <app bundle identifier>

উদাহরণ আউটপুট:

$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app

"বুট করা" বেশিরভাগ simctlকমান্ডের পরিবর্তে কোনও ডিভাইস ইউডিআইডি আশা করা যায় U

আপনি ডিভাইসের তালিকা দেখতে এবং এর সাথে xcrun simctl listনির্দিষ্ট আদেশগুলিতে সহায়তা পেতে পারেন xcrun simctl help

হালনাগাদ : এক্সকোড ৮.৩ এ জনপ্রিয় অনুরোধের মাধ্যমে আপনি এখন "অ্যাপ", "ডেটা", "গোষ্ঠী", বা একটি অ্যাপ্লিকেশন শনাক্তকারী যুক্ত করে আপনি যে ধরণের পাত্রে চান তা নির্দিষ্ট করতে পারেন।

ডেটা ধারক পেতে:

$ xcrun simctl get_app_container booted com.example.app data

দুর্দান্ত এক। ডিভাইস_আইডি এবং অ্যাপআইডি পেতে কমান্ড চালানোর দরকার নেই। সমস্ত পেতে একটি পদক্ষেপ
iamhite

এইটিকে গ্রহণ করা উচিত, কারণ এই জাতীয় জিনিসগুলি করার এটি সবচেয়ে "স্থিতিশীল" উপায়।
ওলহা

35

এক্সকোড 5 এর সাহায্যে আপনি নীচের কোডটি ব্যবহার করতে পারেন:

#import <Foundation/NSFileManager.h>

এবং:

NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);

ফলাফলটি দেখতে দেখতে দেখতে:

"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"

কোথায় hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhhকিছু হেক্স স্ট্রিং আপনার iOS অ্যাপ্লিকেশন চিহ্নিত করা হয়।


16
এটি ডিবাগারেও কাজ করে: po NSHomeDirectory()
ম্যাকওয়ার্থ

30

দেখে মনে হচ্ছে এক্সকোড 6.0 আবারও এই অবস্থানটি সরিয়ে নিয়েছে, কমপক্ষে আইওএস 8 সিমুলেটারের জন্য।

~ / লাইব্রেরি / ডেভেলপার / CoreSimulator / ডিভাইস / [DeviceID] / ডেটা / পাত্রে / ডেটা / আবেদন / [আইডি]


4
Library / লাইব্রেরি / ডেভেলপার / কোরসিমুলেটর / ডিভাইসস / [ডিভাইসআইডি] / তে "ডিভাইস.পিস্টলিস্ট" নামের একটি .plist ফাইল রয়েছে যদি আপনি ভিতরে তাকান তবে আপনি আইফোন -6 বা আইফোন -5 এর মতো ডিভাইসের নাম খুঁজে পেতে পারেন। ডিভাইসআইডিটি খুব বিভ্রান্তিকর তাই আমার মনে হয় আপনার .plist ফাইলের ভিতরে থাকা উচিত।
EFE

1
কীভাবে এপিআইডি পাবেন?
নাম প্রদর্শন করুন

1
আমি 'ls -l' ব্যবহার করে এবং সম্প্রতি কোন অ্যাপ্লিকেশনটির ফাইলগুলি সর্বাধিক তৈরি করা হয়েছিল তা আবিষ্কার করে অ্যাপ্লিকেশন আইডিটি খুঁজে পেতে প্রতারণা করেছি। অন্যের জন্যও কাজ করতে পারে।
মায়া ওয়েবস্টার

1
বা তালিকার শীর্ষে অ্যাপটি পাওয়ার জন্য "তারিখ তৈরি করা" অনুসারে সন্ধানকারীকে সাজান।
আম্মার মুজিব

30

সিমুলেটারের মধ্যে অ্যাপটি কোথায় রয়েছে তা সন্ধান করার সবচেয়ে সহজ উপায়। ব্যবহারকারী "এনএসটি সাম্প্রতিক নির্দেশিকা ()"

Steps-

  1. অ্যাপের মধ্যে যে কোনও জায়গায় ব্রেকপয়েন্টটি প্রয়োগ করুন এবং অ্যাপটি চালান।
  2. অ্যাপটি ব্রেকপয়েন্টে থামলে, এক্সকোড কনসোলে নিম্নলিখিত কমান্ডটি টাইপ করুন।

    পোষ্ট এনএসটি সাম্প্রতিক নির্দেশিকা ()

একটি সঠিক অন্তর্দৃষ্টি জন্য নীচের চিত্র দেখুনএখানে চিত্র বর্ণনা লিখুন

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

আশা করি এটিও সহায়তা করবে। শুভ কোডিং :)


1
কুল টিপ, তবে কেন নয় po NSHomeDirectory()?
কোড রোডি

9

যেখানে এক্সকোড 2019+ ক্যাটালিনা, এক্সকোড 11.0 তে সিমুলেটার সঞ্চয় করে

runtimes

$ open /Library/Developer/CoreSimulator/Profiles/Runtimes

উদাহরণস্বরূপ: iOS 13.0,watchOS 6.0 এই সবচেয়ে স্থান গ্রহণ দ্বারা পর্যন্ত। প্রতিটির দাম 5 গিগাবাইট পর্যন্ত হতে পারে

ডিভাইস

$ open ~/Library/Developer/CoreSimulator/Devices

উদাহরণস্বরূপ: iPhone Xr,iPhone 11 Pro Max । এগুলি সাধারণত <15 এমবি প্রতিটি।

ব্যাখ্যা

সিমুলেটরগুলি রানটাইম এবং ডিভাইসের মধ্যে বিভক্ত। আপনি যদি চালান$ xcrun simctl list আপনি একটি ওভারভিউ দেখতে পারেন, তবে আপনি যদি এই সিমুলেটরগুলির শারীরিক অবস্থান সন্ধান করতে চান তবে আমি যে ডিরেক্টরিগুলি দেখিয়েছি সেগুলি সন্ধান করুন।

আপনি সমর্থন করেন না এমন রানটাইম মুছে ফেলা সম্পূর্ণ নিরাপদ। আপনি চাইলে এগুলি পরে পুনরায় ইনস্টল করতে পারেন।


8

কেবল এটি করুন:

NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);

এবং আপনি এই মত কিছু পেতে হবে:

/ ব্যবহারকারীরা / অ্যাডমিন / লাইব্রেরি / ডেভেলপার / CoreSimulator / devices / 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 / ডেটা / পাত্রে / ডেটা / আবেদন / 6F3B985F-351E-468F-9CFD-BCBE217A25FB / ডকুমেন্টস

সেখানে যান এবং এক্সকোডের সংস্করণ নির্বিশেষে আপনি আপনার অ্যাপ্লিকেশনটির নথি ফোল্ডারটি দেখতে পাবেন। (ফাইন্ডারে "ফোল্ডারে যান ..." কমান্ডটি ব্যবহার করুন এবং একটি পথ "library / লাইব্রেরি" নির্দিষ্ট করুন)।

স্ট্রিং পাথের জন্য সুইফ্ট সংস্করণ:

let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
                                    .userDomainMask, true).first
print(docDirPath)

এবং ফোল্ডার URL:

let docDirUrl =
    FileManager.default.urls(for: .documentDirectory,
                             in: .userDomainMask).first
print(docDirUrl)

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

7

আইওএস 5 এ:

/ ব্যবহারকারী / [ব্যবহারকারীর নাম] / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / 5.0 / অ্যাপ্লিকেশনস / [অ্যাপজিইউআইডি] /


6

এক্সকোড ৪.6 এর জন্য এটি নিম্নলিখিত পথে সঞ্চিত হয় ...

/ ব্যবহারকারী / [বর্তমান ব্যবহারকারী] / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / 6.1 / অ্যাপ্লিকেশন /

এটির জন্য প্রোগ্রামিয়ালি নিম্নলিখিত কোডটি ব্যবহার করুন

  NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);

2
সুইফ্ট :print("path: \(NSBundle.mainBundle().bundlePath)")
সুইফটআরকিটেক্ট

4

আইওএস 8 এর জন্য

ডকুমেন্টস ফোল্ডারটি সনাক্ত করতে আপনি ডকুমেন্টস ফোল্ডারে একটি ফাইল লিখতে পারেন:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];

বলে, ভিতরে didFinishLaunchingWithOptions

তারপরে আপনি একটি টার্মিনাল খুলুন এবং ফোল্ডারটি খুঁজে পেতে পারেন:

$ find ~/Library -name Words.txt

2

যদি কেউ এখনও সিংহের সমস্যায় পড়ে থাকে তবে আপনার Library / লাইব্রেরির দির দেখতে 19 টি আলাদা টিপস সহ একটি দুর্দান্ত নিবন্ধ রয়েছে। ড্যান ফ্রেইকের নিবন্ধটি এখানে পান http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

মনে রাখবেন সিমুলেটারের ডিরেক্টরিটি নীচে দেওয়া হয়েছে

Library / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর / ব্যবহারকারী /


2

ম্যাকস ক্যাটালিনার জন্য, আমি আমার ডিবি এটিতে পেয়েছি:

~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db

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


1

স্থানীয় ব্যবহারকারীরা যারা প্রায়শই Xcode ব্যবহার করেন না তাদের প্রতিক্রিয়া জানান, আপনি কেবল ব্যবহার করতে পারেন find। একটি টার্মিনাল খুলুন এবং ডাটাবেসের নাম দিয়ে অনুসন্ধান করুন।

$ find ~/Library/Developer -name 'myname.db'

আপনি যদি সঠিক নামটি না জানেন তবে আপনি ওয়াইল্ডকার্ডগুলি ব্যবহার করতে পারেন:

$ find ~/Library/Developer -name 'myname.*'


0

আপনি নীচের কোডটি ব্যবহার করে দেখতে পারেন

NSString *fileName = @"Demo.pdf";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    NSLog(@"File path%@",pdfFileName);

0

আপনি যে অ্যাপ্লিকেশন অ্যাপটি করছেন সেসব ডিকোটিরিটি খোলার জন্য আপনি সিমুলেটরগুলিতে এক্স কোডে তৈরি করেছেন, নিম্নলিখিতটি করুন:

  1. ফাইন্ডার উইন্ডারটি খুলুন (হাসি মুখের আইকন)
  2. তারপরে যান -> ফোল্ডারে যান ক্লিক করুন
  3. প্রকার: Library / গ্রন্থাগার / অ্যাপ্লিকেশন সহায়তা / আইফোন সিমুলেটর
  4. ডিরেক্টরিগুলি বিভিন্ন সিমুলেটরগুলির আইওএস সংস্করণ
  5. উপ ডিরেক্টরিগুলি সিমুলেটারে অ্যাপ্লিকেশন ইনস্টল হয়
  6. ডকুমেন্টস ফোল্ডারটি যেখানে ব্যবহারকারীর সামগ্রী তৈরি করে যা আইক্লাউডে ব্যাকআপ নেয়

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