将图像或视频添加到iPhone模拟器


273

我想用UIImagePickerControllerUIImagePickerControllerSourceTypePhotoLibrary,但它说,“没有照片”。模拟器从何处获取图像?我应该在哪里复制图像,以便在模拟器中显示它们?


53
将图像拖到iPhone模拟器中。然后右键单击该图像以保存它。
Fattie

3
我无法使用当前的SIM卡右键单击它,但可以单击“共享”图标,然后保存图像。
Scott Rowley

斯科特·罗利(Scott Rowley)的回应对我有用,而乔·布洛(Joe Blow)却没有。我认为这可能是Xcode 5.1.1发行版的差异。
erstaples 2014年

Answers:


230

将图像,视频等内容下载到模拟器上的最简单方法是将它们从计算机拖放到模拟器上。这将导致模拟器打开“照片”应用程序并开始填充图库。


如果您想要一个可编写脚本的方法,请继续阅读。

注意-尽管这是有效且可行的,但我认为下面的Koen解决方案可行的现在是更好,因为它不需要重启模拟器。

通过转至xCode->设备,选择模拟器并检查标识符值来标识模拟器。

〜/库/开发人员/ CoreSimulator /设备/ [仿真器标识符] / data / Media / DCIM / 100APPLE

并添加IMG_nnnn.THM和IMG_nnnn.JPG。然后,您将需要重置模拟器(硬件->重新引导),以使其注意到新的更改。它们不是JPEG并不重要-它们都可以是PNG,但是看来它们必须同时存在才能正常工作。如果DCIM还不存在,则可能需要创建它,在这种情况下,您应该从nnnn开始于0001。JPG文件是标准版本,而THM文件是缩略图,尺寸为75x75像素。我写了一个脚本来做到这一点,但有一个更好地记录一个在这里(-link不再工作)。

您还可以通过点击并按住图片,在模拟器中添加来自野生动物园的照片。如果将图像(或任何其他文件,例如PDF)拖到模拟器中,它将立即打开Safari并显示图像,因此这是将图像获取到其中的一种简便方法。


在iPhone SDK 3.0下,这仅发生了一点变化。现在,缩略图文件(“ .THM”)必须低于100APPLE / .MISC。否则,所有照片将显示为黑框。

如何更新“相册”主表视图中“保存的照片”单元格上的图标?
西蒙·伍德赛德

3
我的位置是~/Library/Application Support/iPhone Simulator/3.1.3/Media/DCIM/100APPLE
gak 2010年

3
对于使用5.1模拟器的我来说,您不需要.THM文件,并且目录不需要是〜/ Library / Application Support / iPhone Simulator / 5.1 / Media / DCIM / 100APPLE答案中的脚本链接不再适用我,所以我在这里整理了自己的脚本:gist.github.com/3738695
Dav Yaginuma

11
不幸的是,对于iOS6,此技术不再起作用。不过,您可以在模拟器中运行的这个小导入应用程序效果很好-aptogo.co.uk/2010/09/importing-photos请参阅下面的较低评分的答案。
肯尼·格兰特

444

逐步说明Airsource Ltd向模拟器添加图像的答案:

  1. 将其拖到模拟器中,然后打开Safari(或使用Safari浏览到Internet中的图像)
  2. 按住图片
  3. 出现弹出窗口时,选择“保存图像并享受;)”

更新:对于iOS Simulator 4.2,请执行两次以下步骤以使其正常运行。谢谢kevboh

更新:这也适用于iOS Simulator 6.1


1
对于iOS模拟器版本4.2(235),这对我不起作用。我可以执行1-3的步骤,但是当我转到“照片”时,我什么都看不到。
马克·福勒

2
当我没有打开任何应用程序时,这对我有用,当我打开一个应用程序时,它经历了相同的步骤,但实际上没有用。
Tristan Warner-Smith,

图片格式应仅为.jpg。我认为它
不适

1
哇,这是如此容易,感觉就像我在作弊!顺便说一下,@ KarenAnne指出,BTW在iOS 6.0模拟器中有效,照片最终以〜/ Library / Application Support / iPhone Simulator / 6.0 / Media / DCIM / 100APPLE结尾,(没有).THM文件。无论如何,很棒的提示!
戴夫·马利

也可以与iOS7完美配合。好答案。
克雷格(Craig Day)


62

在iOS 8.0中,我们添加了仅将图像拖放到iOS Simulator中的功能。您可以将一堆图像拖到窗口中,并且应该将它们导入该模拟设备的照片卷轴中。您也可以使用simctl命令行工具执行此操作。'xcrun simctl addphoto'


2
谢谢!很棒的功能。请注意,您不能将它们拖到“停靠”图标,而必须将它们拖到“模拟器”窗口中。希望可以尽快更改以允许拖动到该图标。
约旦H

拖动到“ Dock”图标应将应用程序窗口置于前台(就像您拖动到Finder的Dock图标一样)。
杰里米·哈德斯顿红杉2014年

嗨@JeremyHuddlestonSequoia!两个问题:该命令仅适用于图片,不适用于视频,对吗?另外,是否有任何方法可以向模拟器输入“时刻”样式的信息(即,创建多个时刻,可能是回溯的等等)?
julien_c 2015年

1
正确。它仅用于添加照片。不能用于视频。我不知道一种将事件回溯的方法,但是可以通过“照片”应用程序实现。如果没有,那肯定值得在bugreport.apple.com上
杰里米·哈德斯顿斯顿红杉

@JeremyHuddlestonSequoia,它不保留资产的原始元数据。请看一下我的项目,该项目可在保留所有元数据的同时帮助您导入资产(包括视频!)github.com/matibot/MBAssetsImporter
Mati Bot

45

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

用法很简单;要将照片添加到当前运行的模拟器中,请使用booted占位符。

xcrun simctl addmedia booted ./MyFile.jpg

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

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

如果模拟器正在运行,则最后一个命令“ xcrun simctl addmedia E201E636-CE6C-11E5-AB30-625662870761 ./MyFile.jpg”似乎才起作用。我希望能够有一种无需运行即可添加图像的解决方案,即在运行模拟器之前进行准备。
StackUnderflow

26

这很简单。只需按照以下步骤操作:

  1. 将图像拖放到模拟器上
  2. 现在,图像将打开到Safari浏览器中(文件://.../ImageName)。点击并按住图片。
  3. 这将显示带有保存,取消选项的actionSheet(在iOS 7模拟器的情况下也将复制)。

    动作表的屏幕截图

  4. 保存图像。图像被添加到库中。

    照片库


22

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

  1. 备份文件夹:

    ~/Library/Application Support/iPhone Simulator/6.1/Media
  2. 将所有图像复制到文件夹中:

    ~/Library/Application Support/iPhone Simulator/6.1/Media/DCIM/100APPLE
  3. 移动或删除文件夹:

    ~/Library/Application Support/iPhone Simulator/6.1/Media/PhotoData
  4. 重新启动iOS模拟器

  5. 打开照片应用

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


1
优秀的解决方案。我已将照片放置在Media / DCIM文件夹中,但还需要删除PhotoData文件夹。而且,这也适用于iOS 7。
骗子

同样适用于iOS7!谢谢!
克拉斯

1
在iOS7.0.3 4英寸模拟器下尝试的四种方法中,这是唯一可行的方法,尽管我确实发现我得到了每张图像的副本。已投票。
2013年

1
我能够在iOS7.0下使用此github项目导入图像github.com/basilhe/iOS-Simulator-Photo-Importer。似乎是前面提到的照片导入程序的变体,但也有视频。
罗布2014年

谢谢!我想知道为什么即使我已经将它们放在Media / DCIM / 100APPLE中,但我传送的照片却没有显示。原来,还有一个额外的步骤来删除Media / PhotoData文件夹。
卡伦·安妮(KarenAnne)2014年

22

对于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

1
删除*.sqlite-文件对我有用。谢谢!
Zorayr

太好了,对我很有帮助。我尝试了几种方法,直到现在我都在拖放。但是,当您需要复制太多图像时,这是一种更简单的方法:)
Anand

5
使用iOS 8,您现在可以将照片拖到模拟器上:)
VaporwareWolf 2014年

与Arel的答案不同,移入DCIM / 100APPLE的电影将无法使用此技术。
史蒂芬·费舍尔


15

使用Xcode 6+(iOS Simulator 8.1及更高版本)附带的新iOS模拟器,这更容易。现在,您要做的就是将一张或多张照片拖到iOS模拟器窗口中,而不是打开Safari,而是使用“照片”应用打开,并立即将所有拖入的照片添加到设备中。


11

方法1(最简单的方法):如果在Mac上有图像

您可以将图像从Mac上的Finder拖到Simulator中,然后将其保存到“已保存的照片”相册中。

方法2:如果在任何URL上

要将图像从网页保存到“照片”应用程序

  1. 将指针放在要保存的图像上,然后按住鼠标按钮或触控板。
  2. 出现菜单时,单击“保存图像”以将图像保存到iOS模拟器中的“照片”应用程序。
  3. 图像将保存到“照片”应用程序中的“保存的照片”相册中。

如果有人在寻找有关在Simulator中复制和粘贴的Apple文档从Safari保存图像


唯一的缺点是它不能一次处理多个图像。
Antzi

可以处理多个图像。不敢相信我不早知道这一点。
Dazzle

9

没有一个答案能提供我需要的确切解决方案。

我发现自己在iOS 5.0及更高版本的模拟器上工作的步骤如下:

  1. 如果正在运行xcode项目,请关闭模拟器。

  2. 通过单击从码头运行模拟器。

  3. 将图像拖放到模拟器中。

  4. 点击并按住图片(在Safari中打开),然后选择保存选项。

大功告成


图像最终以552x668分辨率缩略图显示,这不是原始图像。相反,图像导入器保留原始图像分辨率。
罗布2014年


7

从iOS 8开始,您只需将所有照片拖到模拟器窗口中,它们就会自动保存到相机胶卷中。您可以一次执行任意多个操作。


今天发现这真是太高兴了,尤其是对于使用大量图像数据和NSCache优化来测试集合视图的性能。
埃里克·戈德堡

这已停止在XCode 10(在10.1上测试),iOS 12.1上工作:(
endavid

6

如果您需要导入不止一张或两张照片,那么请看一下我写的这篇文章。它描述了一种执行批量导入照片的简单方法,并且适用于iOS4.x。


这对我有用,但是我需要对应用程序进行简单的更改:因为我正在运行4.2模拟器,并且该模拟器旨在在4.0(我没有)上运行,所以我去了“ Project”->在“编辑项目设置”下,然后在“架构”下,将“基本SDK”更改为“最新的iOS”。
马克·福勒

5

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

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

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

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


不会在IOS 8.1中
有所作为

3
quit the simulator.

Run simulator from the dock by clicking on it.

Drag & drop the image into simulator which you want to add.

it will open image in safari .

tap and hold the image and click the save option.

then open gallery and you will see the image which u had saved recently.

3

向运行IOS 8.0的Iphone Simulation添加图像更加容易。

  • 将图像拖到模拟器
  • IOS打开“照片”应用程序,您的图像现在已成为您收藏的一部分。

不再需要处理Safari


现在,您还可以一次将多张照片直接拖到“相机胶卷”相册中。
Paul Ardeleanu 2014年

1
@PaulArdeleanu,你是对的。但是,它不会保留资产的原始元数据。请看一下我的项目,这些项目可帮助您在导入资产的同时保留所有元数据github.com/matibot/MBAssetsImporter
Mati Bot

1
@MatiBot,MBAssetsImporter非常适合批量传输图像-非常感谢!
user2067021 '16

2

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



2

对于iOS 8.0,答案已经过时。我在以下路径中找到了媒体资源: 〜/ Library / Developer / CoreSimulator / Devices / [DeviceID] / data / Media / DCIM / 100APPLE


2

最简单的解决方案是简单地在模拟器上登录iCloud,然后使用它来传输驱动器中的任何文件,包括照片。


1

只需将图像拖放到iPhone模拟器中即可。浏览器将打开以显示您的图像。在图像上按,直到没有收到保存图像的选项。然后保存图像。而已 :)。您将在模拟器中的“照片”应用程序中看到您的图像。...


1

我写了一个bash脚本来做到这一点。检查链接[1]

#!/bin/bash

# Imports pictures into all iOS simulators.

path_to_pic="src/ios/pictures/"

mkdir -p /Users/$(whoami)/Library/Application\ Support/iPhone\ Simulator/{5.0,5.1,6.0,6.1}/Media/DCIM/100APPLE/
find ~/Library/Application\ Support/iPhone\ Simulator/ -type d -name '100APPLE' -exec cp /Users/$(whoami)/$path_to_pic/* {} \;

[1]:https//gist.github.com/firesofmay/5194901


1

只是告诉您:KONG的解决方案还可以在iOS 7 beta上运行。

他的解决方案是:

将图像拖到模拟器中,然后Safari打开(或使用Safari浏览到Internet中的图像)按住鼠标左键。出现弹出窗口时,选择“保存图像并享受;”)


1

我只需要一些随机图像进行测试,所以这就是我的方法。

我拥有世界上最简单的解决方案。只需在模拟器中打开Safari,转到Google图片(或您自己的网站或Dropbox URL),查看图片,按住鼠标按钮2秒钟,您就会看到“保存图片”,它将直接保存到照片库。冲洗并重复。


1

一个更简单的方法是:在模拟器上打开safari,然后点击www.google.com,搜索“自然”的随机照片,打开每张图像,然后按下并保存。


1

使用拖放功能,您将丢失照片的所有元数据。

我创建了一个项目,可以非常轻松地将资产导入模拟器:MBAssetsImporter

它使您既可以导入视频又可以导入照片,同时保留文件的所有原始元数据。


1

1. CD到此路径:

/用户/ [macOS用户] /库/开发人员/ CoreSimulator /设备/ [模拟器标识符] / data / Media / DCIM / 100APPLE

可以在以下位置找到[Simulator Identifier]或UDID:硬件=>设备=>管理设备。

例如。cd /用户/ rnDeveloper / Library / Developer / CoreSimulator / Devices / 7508171A-DC5D-47CF-9BE1-FF950326E3DB / data / Media / DCIM / 100APPLE

2.通过运行以下命令下载照片:

curl -o pic_001.jpg“ https://s-media-cache-ak0.pinimg.com/474x/49/25/7a/49257a4b3287b7841922ecdff855fd80.jpg

3.重新启动模拟器以查看新文件。


1

使用iOS 11和Xcode 9,只需将照片拖放到模拟器中即可。它将自动将它们导入“库”应用中。好简单!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.