มีวิธีใดบ้างที่จะเห็นระบบไฟล์ของเครื่องจำลอง iOS?


170

มีวิธีใดบ้างในการเรียกดูระบบไฟล์ของโปรแกรมจำลองที่รันอยู่ในปัจจุบันหรือเพิ่งฆ่า iOS ฉันจะตัดสินว่าสามารถดูไฟล์ของแอพที่เฉพาะเจาะจงได้หากมีวิธีการดังกล่าว

โปรดทราบว่าฉันไม่ต้องการทำสิ่งนี้โดยทางโปรแกรม ฉันต้องการดู / เปิดไฟล์ใน Finder

คำตอบ:


232

อัปเดต:ตั้งแต่ iOS 8:

~ / Library / Developer / CoreSimulator / อุปกรณ์

ตำแหน่งที่เคยเป็น:

~ / Library / Application Support / iPhone Simulator

มันมีไดเรกทอรีสำหรับตัวจำลองทุกรุ่น (4.0, 4.1, 5.0 และอื่น ๆ ) ที่คุณเคยเรียกใช้ไปที่ที่คุณกำลังเรียกใช้จากใน Xcode

เมื่ออยู่ในโฟลเดอร์ให้ไปที่ Applications เลือกตัวเลือก Finder ที่แสดงวันที่ของไฟล์และเรียงลำดับตามวันที่ แอปพลิเคชันของคุณจะเป็นเวอร์ชันล่าสุดเนื่องจากเพิ่งเปลี่ยนไดเรกทอรี ...

ภายในไดเรกทอรีคือทุกสิ่งที่เกี่ยวข้องกับแอปพลิเคชันของคุณ คุณสามารถวางไฟล์ในระหว่างรันเพื่อเปลี่ยนกลับเป็นฐานข้อมูลที่เก็บไว้ในสถานะที่รู้จักเช่น ...

ฉันไปที่นั่นบ่อยพอที่จะเก็บไดเรกทอรี iPhone Simulator ไว้ในแถบด้านข้าง Finder ของฉัน

โปรดทราบว่าด้วย iOS8 โฟลเดอร์จำลองจะอยู่ในไดเรกทอรีที่แตกต่างกันโดยสิ้นเชิง - จริงๆแยกเป็นสองสามไดเรกทอรีด้วยชื่อโฟลเดอร์สำหรับไฟล์เฉพาะแอปพลิเคชันที่เปลี่ยนแปลงทุกครั้งที่คุณเรียกใช้แอป


20
หากต้องการดูโฟลเดอร์ ~ / Library ใน Lion คุณจะต้องเรียกใช้คำสั่งนี้ใน Terminal: chflags nohidden ~ / Library /
Dan J

9
คุณสามารถกดปุ่มตัวเลือกในขณะที่ดูGoเมนูของ Finder's
Wayne

3
ฉันใช้⌘⇧Gจาก Finder มันเร็วกว่าการเปิด Terminal สู่ cd
Jacob Pritchett

3
กด 'option' ค้างไว้แล้วกด 'Go' ในแถบเมนู in finder
Matjan

3
การค้นหาไฟล์ของแอพที่เฉพาะเจาะจงนั้นแทบจะเป็นไปไม่ได้ระหว่างแฮชสุ่มให้ใช้คำสั่งนี้เพื่อไปยังไฟล์ของแอพ:xcrun simctl get_app_container booted my.app.id data
hyperknot

77

iOS 8

อุปกรณ์

~/Library/Developer/CoreSimulator/Devices

การประยุกต์ใช้งาน

~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/

8
การตรวจสอบในปัจจุบันของคุณ{{Device Code}}}เป็นวิธีที่ง่ายคือการเปิดจำลองที่ต้องการใน Xcode และจากนั้นใน Finder เรียงลำดับไดเรกทอรีโดย~/Library/Developer/CoreSimulator/Devices/ Date Modifiedล่าสุดคือสิ่งที่คุณต้องการ
Stan James

2
สำหรับข้อมูลแอปพลิเคชัน: ~ / Library / Developer / CoreSimulator / Devices / {{รหัสอุปกรณ์}} / data / Containers / Data / Application / {{Application Id}}
Bjørn Egil

ที่จริงแล้วคุณสามารถดูได้{{Device Code}}ในฮาร์ดแวร์> อุปกรณ์> จัดการอุปกรณ์ ...
Filius Patris

30

เปิดโปรแกรม "การตรวจสอบกิจกรรม" ค้นหาแอปของคุณ (เพียงชื่อแอพไม่ใช่ตัวจำลอง) คลิก "ข้อมูล" และเปิด "เปิดไฟล์และพอร์ต" คัดลอกรายการที่สอง (คล้าย/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp) นี่เป็นแอพที่กำลังรันอยู่ในขณะที่<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/เป็นบันเดิลและ<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*โฟลเดอร์แบบแซนด์บ็อกซ์

หากคุณผ่านสิ่งนี้เป็นopen "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"เทอร์มินัลโฟลเดอร์จะเปิดใน Finder

ฟังดูซับซ้อน แต่ไม่ใช่


จุดดี! โดยเฉพาะอย่างยิ่งคุณไม่จำเป็นต้องไปที่.appเพื่อดูระบบไฟล์ของแอปพลิเคชันของคุณ
Yevhen Dubinin

ข้อเสนอแนะที่ยอดเยี่ยม .. หวังว่าจะมีสคริปต์หรือยูทิลิตี้เล็ก ๆ น้อย ๆ ในการช่วยเหลือสิ่งนี้ .. อุปกรณ์ iOS แต่ละอันจำลองเป็นโฟลเดอร์ที่แตกต่างอย่างสิ้นเชิงดูเหมือนว่า .. โครงสร้างโฟลเดอร์นั้นครอบคลุมทุกที่ในเวอร์ชั่นใหม่ .. :(
Markive

คำตอบที่ยอดเยี่ยมโดยเฉพาะอย่างยิ่งเมื่อเส้นทางมีการเปลี่ยนแปลงด้วยรุ่น Xcode
rgkobashi

21

ง่าย. รวดเร็ว Xcode 10+

  1. ใช้print(NSHomeDirectory())และคัดลอกเส้นทาง
  2. เปิดแอพFinderแล้วกดShift+Cmd+G
  3. วางเส้นทางที่คัดลอกแล้วกดGO

ทางเลือกสำหรับ 1. คือการจับเบรกพอยต์และทำpo NSHomeDirectory()ในคอนโซล


ฉันจะรันขั้นตอนที่ 1 ได้ที่ไหน
Carson Holzheimer

1
@CarsonHolzheimer ในรหัสของคุณตัวอย่างเช่นในของคุณviewDidLoad ViewControllerบางทีฉันควรจะเขียนไม่ได้ "ทำงาน" แต่อย่างอื่น ขอบคุณ!
ตุง Fam

18

ขึ้นอยู่กับคำตอบzsero

รายละเอียด

macOS 10.13.1

โซลูชันที่ 1

รันบรรทัดต่อไปนี้ในเทอร์มินัล

แบบ

open `xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data` -a Finder

ตัวอย่างเต็ม

open `xcrun simctl get_app_container booted com.Test data` -a 

BUNDLEID_OF_YOUR_APP ???

BUNDLEID_OF_YOUR_APP = "ตัวระบุกลุ่ม"

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

คุณสมบัติของโซลูชัน 1

  • เปิดไฟล์เพื่อรับไดเรกทอรีเครื่องมือจำลองแอป

โซลูชันที่ 2

สร้าง bash scrip ด้วยชื่อแอปและรหัสของคุณ:

script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`

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

คุณสมบัติของโซลูชัน 2

  • เปิดไฟล์เพื่อรับไดเรกทอรีเครื่องมือจำลองแอป
  • เปลี่ยนชื่อไฟล์เพื่อรับไดเรกทอรีจำลองแอปอื่น

ผลลัพธ์

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


ดูเหมือนว่าคุณจะต้องเพิ่ม "Finder" ที่ท้ายสตริง "Full Sample"
phantom_2


7

หากคุณต้องการรับตำแหน่งโดยอัตโนมัติหรือใช้โฟลเดอร์นั้นในการเขียนสคริปต์คุณสามารถรับตำแหน่งที่แม่นยำจากโปรแกรมจำลองการทำงานด้วยคำสั่งต่อไปนี้:

xcrun simctl get_app_container booted my.app.id data

2

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

(คำตอบดั้งเดิมที่นี่: https://stackoverflow.com/a/26557165/377384 )


1

จาก @zsero คำตอบฉันสร้างbashสคริปต์สั้น ๆซึ่งเปิดโฟลเดอร์ตัวจำลองของรหัสแอปพลิเคชันของคุณโดยตรง มีประโยชน์มาก!

openappfolder.sh

#!/bin/bash

APPID=$1
if OUTPUT=`xcrun simctl get_app_container booted $APPID data` ; then
    open $OUTPUT
else
    echo "$APPID not found!"
fi 2>/dev/null

จากนั้นเพียงแค่

openappfolder.sh com.bundle.id

👍


1

สำหรับ Swift 4.2 และสูงกว่าให้วางโค้ดดังต่อไปนี้:

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

... ในตำแหน่งซอร์สโค้ดเช่น:

func application(
    _ application: UIApplication, 
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
    // ...
    return true
}

ใช้เส้นทางผลลัพธ์กับcdหรือopenบนบรรทัดคำสั่งเทอร์มินัล หรือวางเส้นทางในshift-cmd-Gพรอมต์ "ไปที่โฟลเดอร์ ... "

คำตอบที่เกี่ยวข้องซึ่งรวมถึงรุ่นภาษาที่เก่ากว่า: เส้นทางไดเรกทอรีเอกสารของ iOS 8 Beta Simulator


0

ใน Xcode เวอร์ชั่น 8.2.1 (8C1002) ฉันพบไฟล์. app ที่ติดตั้งบนเครื่องจำลองในเส้นทางนี้: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator


0

อันดับแรกรับรายการตัวจำลองพร้อมรหัสอุปกรณ์จากเทอร์มินัล

  1. เครื่องมือ - อุปกรณ์
  2. รายการ xcrun simctl

จากนั้นไปใส่รหัสอุปกรณ์ด้านล่างเส้นทาง คุณจะได้รับระบบไฟล์จำลองเฉพาะ ~/Library/Developer/CoreSimulator/Devices/{{deviceID}}

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