我试图使用UIImagePickerController与UIImagePickerControllerSourceTypePhotoLibrary,但它说,“没有照片”。模拟器从哪里获得图像?我应该在哪里复制图像,以便它们在模拟器中显示?


当前回答

对于iOS 7,我做了以下操作:

复制照片到这两个文件夹:

~/Library/Application Support/iPhone Simulator/6.1/Media/DCIM/100APPLE
~/Library/Application Support/iPhone Simulator/7.0/Media/DCIM/100APPLE

只删除这4个文件(以避免重新启动时重复):

~/Library/Application Support/iPhone Simulator/6.1/Media/PhotoData/Photos.sqlite-shm
~/Library/Application Support/iPhone Simulator/6.1/Media/PhotoData/Photos.sqlite-wal
~/Library/Application Support/iPhone Simulator/7.0/Media/PhotoData/Photos.sqlite-shm
~/Library/Application Support/iPhone Simulator/7.0/Media/PhotoData/Photos.sqlite-wal

其他回答

对于iOS 4.2,我必须创建100APPLE文件夹并重新启动模拟器,然后它就工作了。

我只是偶然发现了如何在iOS模拟器上批量上传图像。(我只在6.1上确认过。)

备份文件夹: ~/库/应用程序支持/iPhone模拟器/6.1/媒体 复制所有图片到文件夹: ~/库/应用程序支持/iPhone模拟器/6.1/媒体/DCIM/100APPLE 移动或删除文件夹: ~/库/应用程序支持/iPhone模拟器/6.1/媒体/PhotoData 重启iOS模拟器 打开照片应用程序

模拟器将恢复100APPLE文件夹中的所有图像!

从Xcode 6开始,你可以使用命令行工具xcrun simctl。

用法非常简单;要将照片添加到当前运行的模拟器中,您可以使用引导占位符。

xcrun simctl addmedia booted ./MyFile.jpg

要将它添加到任何其他模拟器,您可以使用它的设备id,可以通过运行xcrun simctl list找到它。

xcrun simctl addmedia E201E636-CE6C-11E5-AB30-625662870761 ./MyFile.jpg

对于iOS 8,如果不需要保留照片捕捉日期和位置,只需将照片文件放到模拟器中即可。

要保留照片元数据,请执行以下操作:

复制照片文件到:/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UDID}/data/Media/DCIM/100Apple 删除(或重命名)文件夹:/Users/{USER}/Library/Developer/CoreSimulator/Devices/{UDID}/data/Media/photoData 重新启动模拟器

注意:您需要用您的用户名替换{USER},用模拟器的UDID替换{UDID}。要从终端找到模拟器的UDID,请运行“xcrun simctl list”。

确保设备处于运行状态。 在终端执行以下命令:

open ~/Library/Developer/CoreSimulator/Devices/$(xcrun simctl list | grep Booted | grep - eo '[a-zA-Z0-9]*-[a-zA-Z0-9]*-[a-zA-Z0-9]*-[a-zA-Z0-9]*-[a-zA-Z0-9]*')/data/Media/DCIM

进一步的regex ref @ https://regex101.com/r/tY951n/3