เส้นทางไดเร็กทอรีเอกสารของ Xcode Device Simulator


91

ใน iOS 7 ไดเรกทอรีเอกสารของเครื่องจำลอง iOS สามารถพบได้ใน:

/Users/Sabo/Library/Application Support/iPhone Simulator/

อย่างไรก็ตามในiOS 8 Beta Simulatorฉันไม่พบไดเรกทอรีที่เกี่ยวข้องสำหรับiOS 8ในไดเร็กทอรีด้านบน

พา ธ ไดเร็กทอรีเอกสารสำหรับ iOS 8 Simulator อยู่ที่ไหน

ป้อนคำอธิบายภาพที่นี่


ลองนี้ มีแอพที่เปิดไดเร็กทอรี Documents ของแอพล่าสุดที่เรียกใช้โดยตรง
NSRover



หากคุณไม่พบโฟลเดอร์ไลบรารีของคุณอาจเป็นเพราะถูกซ่อนไว้ การพิมพ์คำสั่งนี้ในเทอร์มินัลจะยกเลิกการซ่อน: chflags nohidden ~ / Library
simon_smiley

หากคุณชอบปลั๊กอิน Xcode ลองใช้github.com/onmyway133/XcodeWayซึ่งเป็นปลั๊กอิน Xcode ที่สามารถนำทางไปยังโฟลเดอร์จำลองของคุณและสถานที่อื่น ๆ อีกมากมาย
onmyway133

คำตอบ:


156

บนคอมพิวเตอร์ของฉันเส้นทางคือ:

~/Library/Developer/CoreSimulator/Devices/1A8DF360-B0A6-4815-95F3-68A6AB0BCC78/data/Container/Data/Application/

หมายเหตุ:อาจเป็นไปได้ว่า ID แบบยาวเหล่านั้น (เช่น UDID) จะแตกต่างกันในคอมพิวเตอร์ของคุณ


1
หากแอปของคุณใช้ CoreData อาจมีวิธีที่ง่ายกว่าในการค้นหาตำแหน่งโฟลเดอร์: stackoverflow.com/a/25937606/1103584
DiscDev

13
ไม่นี่ไม่ถูกต้อง ไม่มีความแตกต่างระหว่างโครงการ ObjC และโครงการ Swift นี่คือ UDID (Unique Device IDentifiers) และคุณสามารถดูของคุณได้โดยเรียกใช้ 'xcrun simctl list'
Jeremy Huddleston Sequoia

@JeremyHuddlestonSequoia ถูกต้องหรือไม่นั่นคือวิธีการคัดลอกโครงการSwiftและObjCบนคอมพิวเตอร์ของฉัน ฉันไม่จำเป็นต้องพูดถึงทั้งสองอย่างถูกรวบรวมโดยโปรแกรมจำลองเท่านั้น (นั่นคือคำถามดั้งเดิม) หากXcodeสร้างความแตกต่างระหว่าง UDID สำหรับภาษาต่างๆและคุณคิดว่าไม่ถูกต้องคุณอาจต้องรายงานให้ Apple ทราบ
holex

7
Holex ฉันกำลังบอกว่าข้อความของคุณไม่ถูกต้องไม่ใช่ว่าการออกแบบไม่ถูกต้อง (โปรดทราบว่าฉันเป็นคนที่ Apple ออกแบบ CoreSimulator ดังนั้นฉันอาจเป็นคนแรกที่แก้ไขบางสิ่งที่นั่นซึ่งฉันคิดว่าเป็น ไม่ถูกต้อง). UDIDs สอดคล้องกับอุปกรณ์ที่แยกจากกัน เหตุผลเดียวที่โปรเจ็กต์ที่รวดเร็วและ objc ของคุณจะใช้ UDID ที่แตกต่างกันนั้นเป็นเพราะคุณปรับใช้โปรเจ็กต์ของคุณกับอุปกรณ์จำลองต่าง ๆ (เช่น: สำหรับโปรเจ็กต์หนึ่งคุณปรับใช้กับ iPhone 5s และอีกอันที่คุณปรับใช้กับ iPhone 6)
Jeremy Huddleston Sequoia

@JeremyHuddlestonSequoia ยินดีเป็นอย่างยิ่งที่จะแก้ไขคำตอบของฉันได้ตลอดเวลาหากคุณรู้สึกมั่นใจเพียงพอ
holex

78

NSLogด้านล่างรหัสที่ใดที่หนึ่งใน "AppDelegate" เรียกใช้โครงการของคุณและไปตามเส้นทาง สิ่งนี้จะง่ายสำหรับคุณในการเข้าถึงเอกสารแทนที่จะค้นหาแบบสุ่มภายใน "~ / Library / Developer / CoreSimulator / Devices /"

วัตถุประสงค์ -C

NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);

Swift
หากคุณใช้ Swift 1.2 ให้ใช้โค้ดด้านล่างซึ่งจะส่งออกในการพัฒนาเมื่อใช้ Simulator เท่านั้นเนื่องจาก#if #endifบล็อก:

#if arch(i386) || arch(x86_64)
  let documentsPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! NSString
  NSLog("Document Path: %@", documentsPath)
#endif

คัดลอกเส้นทางของคุณจาก "/ Users / ankur / Library / Developer / CoreSimulator / Devices / 7BA821 ... " ไปที่ " Finder " จากนั้น " Go to Folder " หรือcommand+ shift+ gแล้ววางเส้นทางของคุณปล่อยให้ Mac พาคุณไปที่ ไดเรกทอรีเอกสาร :)


ง่ายและมีประสิทธิภาพ!
loretoparisi

43

เพียงแค่เขียนโค้ดร้องในAppDelegate -> didFinishLaunchingWithOptions
Objective C

#if TARGET_IPHONE_SIMULATOR 
// where are you? 
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); 
#endif 


สวิฟต์ 2.X

if let documentsPath = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first?.path {
    print("Documents Directory: " + documentsPath)   
}

สวิฟต์ 3.X

#if arch(i386) || arch(x86_64)
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: \(documentsPath)")
    }
#endif

สวิฟต์ 4.2

#if targetEnvironment(simulator)
    if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: \(documentsPath)")
    }
#endif

เอาต์พุต
/ ผู้ใช้ / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A / data / Containers / Data / Application / 25174F64-7130-4B91-BC41-AC74257CCC6E / Documents

คัดลอกเส้นทางของคุณจาก "/ Users / mitul_marsonia / Library / Developer / CoreSimulator / Devices / E701C1E9-FCED-4428-A36F-17B32D32918A ... " ไปที่ "Finder" แล้ว"ไปที่โฟลเดอร์" หรือคำสั่ง + shift + g และ วางเส้นทางของคุณให้ mac พาคุณไปที่ไดเรกทอรีเอกสารของคุณ


คุณจะทราบได้อย่างไรว่าแอปของคุณอยู่ในโฟลเดอร์ใด มีไดเรกทอรีมากเกินไปฉันต้องค้นหาแต่ละรายการหรือไม่?
KarenAnne

คุณ ans ได้ยินแล้ว> stackoverflow.com/questions/24133022/…
Mitul Marsoniya

นี่คือพา ธ แบบฮาร์ดโค้ดไปยังโปรแกรมจำลองของคุณเอง มันจะใช้ไม่ได้กับคนอื่น จริงๆแล้วเส้นทางนี้จะเปลี่ยนไปสำหรับคุณเมื่อคุณเรียกใช้โปรแกรมจำลองอีกครั้ง
NSRover

#if TARGET_IPHONE_SIMULATOR // คุณอยู่ที่ไหน NSLog (@ "Documents Directory:% @", [[[NSFileManager defaultManager] URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject]); #endif
Mitul Marsoniya

16

ฉันขอแนะนำแอปยูทิลิตี้ที่ดีที่เรียกว่า SimPholders ที่ช่วยให้ค้นหาไฟล์และโฟลเดอร์ได้ง่ายในขณะที่พัฒนาแอป iOS ของคุณ มีเวอร์ชันใหม่ที่จะทำงานร่วมกับเครื่องจำลองใหม่ที่เรียกว่า SimPholders2 สามารถพบได้ที่simpholders.com


นั่นจะเป็นแอพที่ยอดเยี่ยมในตอนนี้ที่ iOS8 Simulator ถูกฝังอยู่ในความสับสนของโฟลเดอร์ แต่แอพนั้นยังไม่ได้รับการอัปเดตเพื่อรองรับ iOS8
wibobm

@wibobm. SimPholders2 รองรับ iOS 8.0 และ iOS 8.1 อย่างแน่นอน
JDibble

พระเจ้าช่วย. ฉันคงตาบอดไปแล้ว ขอขอบคุณ!
wibobm

16

แม้ว่าจะมีคำตอบมากมาย แต่ก็ไม่มีคำตอบใดที่ให้ความเข้าใจว่าโครงสร้างโฟลเดอร์ของเครื่องจำลอง iOS 8.3 มีการเปลี่ยนแปลงอย่างไรและไม่ได้ให้วิธีที่รวดเร็วในการค้นหาข้อมูลของแอป (โฟลเดอร์เอกสาร)

เนื่องจาก iOS 8 โฟลเดอร์ที่จัดเก็บข้อมูลของแอพจะแยกจากไฟล์ปฏิบัติการของแอพในขณะที่ iOS 7 และต่ำกว่านั้นมีโครงสร้างโฟลเดอร์เหมือนกันข้อแตกต่างเพียงอย่างเดียวคือข้อเท็จจริงที่ว่าตัวจำลองทั้งหมด (ประเภทและเวอร์ชันที่แตกต่างกัน) คือ ตอนนี้อยู่ในโฟลเดอร์เดียวขนาดใหญ่

ดังนั้นเส้นทางไปยังโปรแกรมจำลอง iOS 8,7,6 มีดังต่อไปนี้:

~/Library/Developer/CoreSimulator/Devices

ขณะนี้ตัวจำลองทุกตัวรวมอยู่ในโฟลเดอร์ที่มีชื่อด้วยตัวระบุเฉพาะซึ่งจะเปลี่ยนแปลงทุกครั้งที่รีเซ็ตเครื่องจำลอง

คุณสามารถค้นหาIdentifierอุปกรณ์และเครื่องจำลองแต่ละเครื่องของคุณได้โดยไปที่Xcode > Window > Devices(อักขระ 3 หรือ 4 ตัวแรกของตัวระบุนั้นมากเกินพอที่จะจำได้)

หากต้องการค้นหาแอปที่คุณได้ติดตั้งไว้ให้ดูที่Run scheme > devices(หน้าจอ 2) ของคุณ

หน้าจอ 1

หน้าจอ 2

ตอนนี้หลังจากที่คุณระบุตัวจำลองของคุณโครงสร้างโฟลเดอร์จะแตกต่างกันมากขึ้นอยู่กับรุ่น:

บน iOS 8ไฟล์ปฏิบัติการและโฟลเดอร์ข้อมูลของแอพอยู่ในโฟลเดอร์ต่างกัน:

ปฏิบัติการ : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Bundle/Application/[appID]

โฟลเดอร์ข้อมูล : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/

โฟลเดอร์เอกสาร : ~/Library/Developer/CoreSimulator/Devices/[simID]/data/Containers/Data/Application/[appID]/Documents

ในiOS 7และด้านล่างโครงสร้างโฟลเดอร์จะเหมือนกับเมื่อก่อนจำไว้ว่าตอนนี้ทุกตัวจำลองอยู่ในโฟลเดอร์เดียวกัน (ดูด้านบน)


13

หากแอปของคุณใช้ CoreData เคล็ดลับที่ดีคือการค้นหาชื่อไฟล์ sqlite โดยใช้เทอร์มินัล

find ~ -name my_app_db_name.sqlite

ผลลัพธ์จะแสดงรายการเส้นทางไฟล์แบบเต็มไปยังเครื่องจำลองใด ๆ ที่เรียกใช้แอปของคุณ

ฉันหวังว่า Apple จะเพิ่มปุ่มในเมนูไฟล์ iOS Simulator อย่างเช่น "เปิดเผยโฟลเดอร์เอกสารใน Finder"


1
ต้องรักเทอร์มินัล
kakubei

2
ดูเหมือนจะเป็นวิธีที่ค่อนข้างไกลในการค้นหาสิ่งนี้ ค้นหาโฮมไดเร็กทอรีทั้งหมดของคุณหรือไม่
shortstuffsushi

11

ถูกต้องที่เราต้องดูเส้นทาง ~ / Library / Developer / CoreSimulator / Devices /

แต่ปัญหาที่ฉันพบคือเส้นทางเปลี่ยนไปเรื่อย ๆ ทุกครั้งที่เรียกใช้แอป พา ธ มี ID ยาวอีกชุดหนึ่งหลังจากสตริงแอปพลิเคชันและจะเปลี่ยนไปเรื่อย ๆ ทุกครั้งที่ฉันเรียกใช้แอป โดยพื้นฐานแล้วหมายความว่าแอปของฉันจะไม่มีข้อมูลแคชเมื่อเปิดใช้งานในครั้งต่อไป


ฉันก็เห็นสิ่งนี้เช่นกัน
Nathan Jones

5
เส้นทางไม่เปลี่ยนแปลงตลอดเวลาที่คุณเรียกใช้แอป มีหนึ่งเส้นทางต่ออุปกรณ์ที่คุณมีในห้องสมุดของคุณ เรียกใช้ 'xcrun simctl list' เพื่อดูรายการอุปกรณ์และ UDID เพื่อดูว่าคุณควรพิจารณาไดเรกทอรีย่อยใด
Jeremy Huddleston Sequoia

9

ด้วย iOS 9.2 และ Xcode 7.2 สคริปต์ต่อไปนี้จะเปิดโฟลเดอร์ Documents ของแอปพลิเคชันที่ติดตั้งล่าสุดบนโปรแกรมจำลองที่ใช้ล่าสุด

cd ~/Library/Developer/CoreSimulator/Devices/
cd `ls -t | head -n 1`/data/Containers/Data/Application 
cd `ls -t | head -n 1`/Documents
open .

ในการสร้างสคริปต์ที่รันได้ง่ายให้วางไว้ใน Automator Application ด้วย "Run Shell Script":

เรียกใช้ Shell Script ภายใน Automator Application


7

ด้วยการนำ CoreSimulator มาใช้ใน Xcode 6.0 ไดเร็กทอรีข้อมูลจะเป็นแบบต่ออุปกรณ์มากกว่าต่อเวอร์ชัน ไดเร็กทอรีข้อมูลคือ ~ / Library / Developer / CoreSimulator / Devices // data ซึ่งสามารถกำหนดได้จาก 'xcrun simctl list'

โปรดทราบว่าคุณสามารถลบ ~ / Library / Application Support / iPhone Simulator และ ~ / Library / Logs / iOS Simulator ได้อย่างปลอดภัยหากคุณไม่ได้วางแผนที่จะต้องย้อนกลับไปที่ Xcode 5.x หรือรุ่นก่อนหน้า


ขอขอบคุณที่ให้สิ่งที่อาจมองว่าเป็นคำตอบที่เชื่อถือได้ มีวิธีง่ายๆ (ยกเว้นการบันทึกจากในแอพ) เพื่อค้นหาตำแหน่งของแอพที่เฉพาะเจาะจงภายในเครื่องจำลองหรือไม่?
fzwo

ขออภัยไม่ แต่ฉันเห็นคำขอบางส่วนสำหรับเรื่องนี้ที่นี่และในฟอรัม โปรดยื่นเรดาร์ที่bugreport.apple.com
Jeremy Huddleston Sequoia

7

อัปเดต: Xcode 11.5 • Swift 5.2

if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
    print(documentsPath)   // "var/folder/.../documents\n" copy the full path
}

ไปที่ Finder ของคุณกด command-shift-g (หรือไป> ไปที่โฟลเดอร์ ... ใต้แถบเมนู) แล้ววางเส้นทางแบบเต็ม "var / โฟลเดอร์ /.../ เอกสาร" ที่นั่นแล้วกดไป



4

ฉันประสบปัญหาเดียวกันเมื่อฉันจัดเก็บเส้นทางแบบเต็มโดยใช้ CoreData เมื่อดึงเส้นทางแบบเต็มจะคืนค่าว่างเนื่องจาก UUID ของโฟลเดอร์เอกสารแตกต่างกันทุกครั้งที่รีสตาร์ทแอป ต่อไปนี้คือความละเอียดของฉัน:

  1. ตรวจสอบให้แน่ใจว่าจัดเก็บเฉพาะเส้นทางสัมพัทธ์ของเอกสาร / ไฟล์ใน CoreData เช่นเก็บ "Files / image.jpg" แทน "/Users/yourname/.../Applications/UUID/Document/Files/image.jpg"
  2. ใช้สิ่งต่อไปนี้เพื่อดึงตำแหน่งเอกสารของแอพ:

    [[[NSFileManager defaultManager] URLsForDirectory: NSDocumentDirectory inDomains: NSUserDomainMask] lastObject];

  3. เชื่อมต่อทั้ง # 2 และ # 1 เพื่อรับพา ธ แบบเต็มของเอกสาร / ไฟล์ที่คุณต้องการดึง
คุณสามารถอ้างถึงหมายเหตุสำหรับนักพัฒนา Apple: https://developer.apple.com/library/ios/technotes/tn2406/_index.html


3

Documents Directory สำหรับ iOS 8 Simulator อยู่ที่ไหน

คุณอาจสังเกตเห็นว่า iPhone Simulator มีการเปลี่ยนแปลงด้วย Xcode 6 และแน่นอนว่าเส้นทางไปยังไดเรกทอรีเอกสารของแอปจำลองของคุณ บางครั้งเราอาจต้องพิจารณาดู

การค้นหาเส้นทางนั้นไม่ใช่เรื่องง่ายอย่างที่เคยเป็นมาคือ Library / Application Support / iPhone Simulator / 7.1 / Applications / ตามด้วยหมายเลขลับที่แสดงถึงแอปของคุณ

ตั้งแต่ Xcode 6 และ iOS 8 คุณจะพบได้ที่นี่: Library / Developer / CoreSimulator / Devices / cryptic number / data / Containers / Data / Application / cryptic number

http://pinkstone.co.uk/where-is-the-documents-directory-for-the-ios-8-simulator/


3

ใน Appdelegate ใส่รหัสนี้เพื่อดูเอกสารและแคช Dir:

#if TARGET_IPHONE_SIMULATOR
    NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
    NSArray* cachePathArray = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
    NSString* cachePath = [cachePathArray lastObject];
    NSLog(@"Cache Directory: %@", cachePath);
#endif

ในบันทึก:

ไดเรกทอรีเอกสาร: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Documents /

ไดเรกทอรีแคช: / Users / xxx / Library / Developer / CoreSimulator / Devices / F90BBF76-C3F8-4040-9C1E-448FAE38FA5E / data / Containers / Data / Application / 3F3F6E12-EDD4-4C46-BFC3-58EB64D4BCCB / Library / Caches


3

หากคุณต้องการเข้าไปในโฟลเดอร์ของแอพเพื่อดูว่าเกิดอะไรขึ้นและไม่ต้องการที่จะต้องผ่าน UUDID ของเขาวงกตฉันทำสิ่งนี้: https://github.com/kallewoof/plget

และใช้มันฉันทำสิ่งนี้: https://gist.github.com/kallewoof/de4899aabde564f62687

โดยพื้นฐานแล้วเมื่อฉันต้องการไปที่โฟลเดอร์ของแอพฉันจะ:

$ cd ~/iosapps
$ ./app.sh
$ ls -l
total 152
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/BD660795-9131-4A5A-9A5D-074459F6A4BF
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App Beta-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/A74C9F8B-37E0-4D89-80F9-48A15599D404
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 My App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/07BA5718-CF3B-42C7-B501-762E02F9756E
lrwxr-xr-x  1 me  staff    72 Nov 14 17:15 Other App-iOS-7-1_iPad-Retina.iapp -> iOS-7-1_iPad-Retina.dr/Applications/5A4642A4-B598-429F-ADC9-BB15D5CEE9B0
-rwxr-xr-x  1 me  staff  3282 Nov 14 17:04 app.sh
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/69F7E3EF-B450-4840-826D-3830E79C247A
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/976D1E91-DA9E-4DA0-800D-52D1AE527AC6
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/473F8259-EE11-4417-B04E-6FBA7BF2ED05
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.app1beta-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/CB21C38E-B978-4B8F-99D1-EAC7F10BD894
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 com.mycompany.otherapp-iOS-8-1_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/414E8875-8875-4088-B17A-200202219A34/data/Containers/Data/Application/DE3FF8F1-303D-41FA-AD8D-43B22DDADCDE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-7-1_iPad-Retina.dr -> simulator/4DC11775-F2B5-4447-98EB-FC5C1DB562AD/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-2.dr -> simulator/6FC02AE7-27B4-4DBF-92F1-CCFEBDCAC5EE/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-0_iPad-Retina.dr -> simulator/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 iOS-8-1_iPad-Retina.dr -> simulator/414E8875-8875-4088-B17A-200202219A34/data
lrwxr-xr-x  1 me  staff   158 Nov 14 17:15 org.cocoapods.demo.pajdeg-iOS-8-0_iPad-Retina.iapp -> /Users/me/Library/Developer/CoreSimulator/Devices/129FE671-F8D2-446D-9B69-DE56F1AC80B9/data/Containers/Data/Application/C3069623-D55D-462C-82E0-E896C942F7DE
lrwxr-xr-x  1 me  staff    51 Nov 14 17:15 simulator -> /Users/me/Library/Developer/CoreSimulator/Devices

./app.shส่วนซิงค์เชื่อมโยง เป็นสิ่งที่จำเป็นโดยทั่วไปในปัจจุบันเนื่องจากแอปเปลี่ยน UUID สำหรับการรันใน Xcode ทุกครั้งที่ 6.0 นอกจากนี้น่าเสียดายที่แอปใช้รหัสบันเดิลสำหรับ 8.x และตามชื่อแอปสำหรับ <8


3

จากคำตอบของ Ankur แต่สำหรับเราผู้ใช้ Swift:

let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask)
println("Possible sqlite file: \(urls)")

วางไว้ใน ViewDidLoad และจะพิมพ์ออกมาทันทีที่เรียกใช้แอป


3

เครื่องจำลองตั้งอยู่ภายใต้:

~/Library/Developer/CoreSimulator/

ที่นี่จะแสดงรายการเป็นไดเรกทอรีที่มีชื่อ UUID ใช้การจัดเรียงตาม "วันที่แก้ไข" เพื่อค้นหารายการล่าสุด ด้านในไปที่:

/data/Containers/Data/Application/

ที่นี่คุณจะได้รับรายชื่อแอปพลิเคชันทั้งหมดบนอุปกรณ์นั้น คุณสามารถจัดเรียงอีกครั้งเพื่อรับแอปล่าสุด

หมายเหตุ: Xcode จะเปลี่ยนชื่อไดเร็กทอรีทุกครั้งที่คุณเรียกใช้แอพดังนั้นอย่าพึ่งพาการสร้างนามแฝง / ทางลัดบนเดสก์ท็อป

วิธีที่ง่ายที่สุดคือใช้แอพที่นี่ซึ่งจะทำทุกอย่างโดยอัตโนมัติ


2

ไดเร็กทอรีจำลองถูกย้ายด้วย Xcode 6 beta ไปยัง ...

 ~/Library/Developer/CoreSimulator

การเรียกดูไดเร็กทอรีไปยังโฟลเดอร์ Documents ของแอปของคุณนั้นค่อนข้างลำบากกว่าเล็กน้อยเช่น

~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite

2

วิธีที่ดีที่สุดในการค้นหาเส้นทางคือการทำผ่านรหัส

ใช้ Swift เพียงวางโค้ดด้านล่างภายในแอปพลิเคชันฟังก์ชันในAppDelegate.swiftของคุณ

let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsPath = paths.first as String
println(documentsPath)

สำหรับรหัส Obj-C ดูคำตอบจาก @Ankur


2

สำหรับ Swift 3.x

if let documentsPath = FileManager.default.urls(for:.documentDirectory, in: .userDomainMask).first?.path {
        print("Documents Directory: " + documentsPath)
    }

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.