มีวิธีใดบ้างในการเรียกดูระบบไฟล์ของโปรแกรมจำลองที่รันอยู่ในปัจจุบันหรือเพิ่งฆ่า iOS ฉันจะตัดสินว่าสามารถดูไฟล์ของแอพที่เฉพาะเจาะจงได้หากมีวิธีการดังกล่าว
โปรดทราบว่าฉันไม่ต้องการทำสิ่งนี้โดยทางโปรแกรม ฉันต้องการดู / เปิดไฟล์ใน Finder
มีวิธีใดบ้างในการเรียกดูระบบไฟล์ของโปรแกรมจำลองที่รันอยู่ในปัจจุบันหรือเพิ่งฆ่า iOS ฉันจะตัดสินว่าสามารถดูไฟล์ของแอพที่เฉพาะเจาะจงได้หากมีวิธีการดังกล่าว
โปรดทราบว่าฉันไม่ต้องการทำสิ่งนี้โดยทางโปรแกรม ฉันต้องการดู / เปิดไฟล์ใน Finder
คำตอบ:
อัปเดต:ตั้งแต่ iOS 8:
~ / Library / Developer / CoreSimulator / อุปกรณ์
ตำแหน่งที่เคยเป็น:
~ / Library / Application Support / iPhone Simulator
มันมีไดเรกทอรีสำหรับตัวจำลองทุกรุ่น (4.0, 4.1, 5.0 และอื่น ๆ ) ที่คุณเคยเรียกใช้ไปที่ที่คุณกำลังเรียกใช้จากใน Xcode
เมื่ออยู่ในโฟลเดอร์ให้ไปที่ Applications เลือกตัวเลือก Finder ที่แสดงวันที่ของไฟล์และเรียงลำดับตามวันที่ แอปพลิเคชันของคุณจะเป็นเวอร์ชันล่าสุดเนื่องจากเพิ่งเปลี่ยนไดเรกทอรี ...
ภายในไดเรกทอรีคือทุกสิ่งที่เกี่ยวข้องกับแอปพลิเคชันของคุณ คุณสามารถวางไฟล์ในระหว่างรันเพื่อเปลี่ยนกลับเป็นฐานข้อมูลที่เก็บไว้ในสถานะที่รู้จักเช่น ...
ฉันไปที่นั่นบ่อยพอที่จะเก็บไดเรกทอรี iPhone Simulator ไว้ในแถบด้านข้าง Finder ของฉัน
โปรดทราบว่าด้วย iOS8 โฟลเดอร์จำลองจะอยู่ในไดเรกทอรีที่แตกต่างกันโดยสิ้นเชิง - จริงๆแยกเป็นสองสามไดเรกทอรีด้วยชื่อโฟลเดอร์สำหรับไฟล์เฉพาะแอปพลิเคชันที่เปลี่ยนแปลงทุกครั้งที่คุณเรียกใช้แอป
Go
เมนูของ Finder's
xcrun simctl get_app_container booted my.app.id data
~/Library/Developer/CoreSimulator/Devices
~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/
{{Device Code}}}
เป็นวิธีที่ง่ายคือการเปิดจำลองที่ต้องการใน Xcode และจากนั้นใน Finder เรียงลำดับไดเรกทอรีโดย~/Library/Developer/CoreSimulator/Devices/
Date Modified
ล่าสุดคือสิ่งที่คุณต้องการ
{{Device Code}}
ในฮาร์ดแวร์> อุปกรณ์> จัดการอุปกรณ์ ...
เปิดโปรแกรม "การตรวจสอบกิจกรรม" ค้นหาแอปของคุณ (เพียงชื่อแอพไม่ใช่ตัวจำลอง) คลิก "ข้อมูล" และเปิด "เปิดไฟล์และพอร์ต" คัดลอกรายการที่สอง (คล้าย/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
เพื่อดูระบบไฟล์ของแอปพลิเคชันของคุณ
print(NSHomeDirectory())
และคัดลอกเส้นทางShift+Cmd+G
ทางเลือกสำหรับ 1. คือการจับเบรกพอยต์และทำpo NSHomeDirectory()
ในคอนโซล
viewDidLoad
ViewController
บางทีฉันควรจะเขียนไม่ได้ "ทำงาน" แต่อย่างอื่น ขอบคุณ!
ขึ้นอยู่กับคำตอบzsero
macOS 10.13.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 = "ตัวระบุกลุ่ม"
คุณสมบัติของโซลูชัน 1
สร้าง bash scrip ด้วยชื่อแอปและรหัสของคุณ:
script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`
คุณสมบัติของโซลูชัน 2
หากคุณต้องการรับตำแหน่งโดยอัตโนมัติหรือใช้โฟลเดอร์นั้นในการเขียนสคริปต์คุณสามารถรับตำแหน่งที่แม่นยำจากโปรแกรมจำลองการทำงานด้วยคำสั่งต่อไปนี้:
xcrun simctl get_app_container booted my.app.id data
โพสต์เก่า แต่ฉันคิดว่ามันคุ้มค่าที่จะกล่าวถึงSimPholdersเพื่อค้นหาไฟล์ Simulator ของคุณ มันเป็นรายการในแถบเมนูที่ติดตามแอปจำลองของคุณและช่วยให้คุณไปยังโฟลเดอร์และเนื้อหาได้โดยตรง มันสุดยอดมาก
(คำตอบดั้งเดิมที่นี่: https://stackoverflow.com/a/26557165/377384 )
จาก @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
👍
สำหรับ 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
ใน Xcode เวอร์ชั่น 8.2.1 (8C1002) ฉันพบไฟล์. app ที่ติดตั้งบนเครื่องจำลองในเส้นทางนี้: ~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator
อันดับแรกรับรายการตัวจำลองพร้อมรหัสอุปกรณ์จากเทอร์มินัล
จากนั้นไปใส่รหัสอุปกรณ์ด้านล่างเส้นทาง คุณจะได้รับระบบไฟล์จำลองเฉพาะ
~/Library/Developer/CoreSimulator/Devices/{{deviceID}}