ChatGPT解决这个技术问题 Extra ChatGPT

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

我正在尝试将 UIImagePickerControllerUIImagePickerControllerSourceTypePhotoLibrary 一起使用,但它显示“没有照片”。模拟器从哪里获取图像?我应该在哪里复制图像以便它们显示在模拟器中?

将图像拖到 iPhone 模拟器上。然后右键单击图像以保存它。
我无法用当前的 sim 右键单击它,但我可以单击“共享”图标,然后保存图像。
Scott Rowley 的回应对我有用,而 Joe Blow 没有。我认为这可能是 Xcode 5.1.1 版本的差异。

K
Khattab

逐步解释 Airsource Ltd 将图像添加到模拟器的答案:

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

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

更新:这也适用于 iOS 模拟器 6.1


这不适用于 iOS 模拟器版本 4.2 (235)。我可以很好地完成步骤 1-3,但是当我转到“照片”时,我什么也看不到。
当我没有打开应用程序时,这对我有用,当我打开应用程序时,它经历了相同的步骤,但实际上并没有工作。
图像格式应该只是.jpg..我认为它不适用于.png
哇,这太容易了,感觉就像我在作弊!顺便说一句,正如@KarenAnne 所指出的,这适用于 iOS 6.0 模拟器,照片最终出现在 ~/Library/Application Support/iPhone Simulator/6.0/Media/DCIM/100APPLE 并且(它似乎)没有 .THM 文件。无论如何,很棒的提示!
也可以与 iOS7 完美配合。不错的答案。
A
Anand Rockzz

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

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

注意 - 虽然这是有效且有效的,但我认为 Koen's solution below 现在更好,因为它不需要重新启动模拟器。

通过转到 xCode->Devices,选择您的模拟器并检查 Identifier 值来识别您的模拟器。或者您可以确保模拟器正在运行并运行以下命令以获取设备 ID xcrun simctl list | grep Booted

~/Library/Developer/CoreSimulator/Devices/[模拟器标识符]/data/Media/DCIM/100APPLE

并添加 IMG_nnnn.THM 和 IMG_nnnn.JPG。然后,您将需要重置您的模拟器(硬件-> 重新启动)以使其注意到新的更改。它们是否不是 JPEG 并不重要——它们都可以是 PNG,但似乎它们都必须存在才能正常工作。如果 DCIM 不存在,您可能需要创建它,在这种情况下,您应该从 0001 开始 nnnn。JPG 文件是全尺寸版本,而 THM 文件是缩略图,大小为 75x75 像素。我编写了一个脚本来执行此操作,但在 here(-link 不再起作用)上有一个更好的文档记录。

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


在 iPhone SDK 3.0 下,这只是一点点改变。现在,缩略图文件(“.THM”)需要放在 100APPLE/.MISC 下。否则,所有照片都将显示为黑框。
如何更新主相册表格视图中“已保存照片”单元格上的图标?
我的位置在 ~/Library/Application Support/iPhone Simulator/3.1.3/Media/DCIM/100APPLE
对于使用 5.1 模拟器的我来说,您不需要 .THM 文件,并且目录需要是 ~/Library/Application Support/iPhone Simulator/5.1/Media/DCIM/100APPLE 答案中的脚本链接不再适用所以我在这里编写了自己的脚本:gist.github.com/3738695
不幸的是,在 iOS6 中,这种技术不再有效。这个可以在模拟器中运行的小型导入应用程序运行良好 - aptogo.co.uk/2010/09/importing-photos 请参阅下面这个评分较低的答案。
N
Nicktar

3 个简单的步骤

将图像拖放到模拟器上-这将打开一个带有您的图像的浏览器单击并按住图像-这将打开选项保存图像-这会将图像复制到模拟器上

Watch YouTube Video ( add images to iphone simulator)


不适用于视频。因为当你长按屏幕时没有任何反应。
J
Jeremy Huddleston Sequoia

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


谢谢!很棒的功能。请注意,您不能将它们拖到 Dock 图标上,您必须将它们拖到 Simulator 窗口中。希望很快就会改变以允许拖动到图标。
拖动到 Dock 图标应该会将应用程序窗口带到前台(就像拖动到 Finder 停靠图标一样)。
嗨@JeremyHuddlestonSequoia!两个问题:该命令仅适用于图片,不适用于视频,对吗?此外,有没有办法将“时刻”风格的信息输入模拟器(即,创建多个时刻,可能是回溯等)?
正确的。它只是用于添加照片。它不能用于视频。我不知道回溯事件的方法,但这可能通过照片应用程序实现。如果没有,那肯定值得在 bugreport.apple.com 提交雷达
@JeremyHuddlestonSequoia,它不保留资产的原始元数据。请查看我的项目,该项目可帮助您导入资产,同时保留所有元数据(包括视频!)github.com/matibot/MBAssetsImporter
A
Airsource Ltd

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

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

xcrun simctl addmedia booted ./MyFile.jpg

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

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

最后一个命令“xcrun simctl addmedia E201E636-CE6C-11E5-AB30-625662870761 ./MyFile.jpg”似乎只有在模拟器运行时才有效。我希望有一个解决方案来添加图像而不运行即在运行模拟器之前进行准备。
J
Jayprakash Dubey

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

将图像拖放到模拟器上 现在图像在 Safari 浏览器中打开 (file://.../ImageName)。点击并按住图像。这将显示带有保存、取消选项的 actionSheet(在 iOS 7 模拟器的情况下也复制)。保存图像。图像被添加到库中。


A
Arel

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

备份文件夹:~/Library/Application Support/iPhone Simulator/6.1/Media 将所有图像复制到文件夹:~/Library/Application Support/iPhone Simulator/6.1/Media/DCIM/100APPLE 移动或删除文件夹:~/ Library/Application Support/iPhone Simulator/6.1/Media/PhotoData Restart iOS Simulator 打开 Photos 应用

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


优秀的解决方案。我已将照片放在 Media/DCIM 文件夹中,但我还需要删除 PhotoData 文件夹。而且,这也适用于 iOS 7。
也适用于 iOS7!谢谢!
在 iOS7.0.3 4 英寸模拟器下我尝试过的四种方法中,这是唯一一种有效的方法,尽管我确实发现每张图像都有重复。赞成。
我能够在 iOS7.0 下使用这个 github 项目来导入图像 github.com/basilhe/iOS-Simulator-Photo-Importer。似乎是前面提到的照片导入器的变体,但也有视频。
谢谢!我想知道为什么我传输的照片即使我已经将它们放在 Media/DCIM/100APPLE 中也没有显示。事实证明,删除 Media/PhotoData 文件夹还有一个额外的步骤。
u
user2966386

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

删除 *.sqlite- 文件对我有用。谢谢!
太好了,它真的帮助了我。我尝试了几种方法,直到现在我都在做拖放。但是当您需要复制太多图像时,这是更简单的方法:)
使用 iOS 8,您现在可以将照片拖到模拟器上 :)
与 Arel 的回答不同,移动到 DCIM/100APPLE 的电影将无法通过这种技术获得。
E
Eric Aya

只需将图像拖到 iPhone 模拟器上。


D
Donald Burr

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


A
Ammar Mujeeb

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

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

方法 2:如果它在任何 URL 上

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

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

https://i.stack.imgur.com/esaLh.png


唯一的缺点是它不能同时处理多个图像。
可以很好地处理多个图像。不敢相信我没有早点知道这一点。
A
Arshad Parwez

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

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

如果模拟器正在运行 xcode 项目,请关闭它。通过单击从 Dock 运行模拟器。将图像拖放到模拟器中。点击并按住图像(在 Safari 中打开)并选择保存选项。

你完成了。


图像最终以缩略图为 552x668 分辨率,这不是原始图像。相反,图像导入器保留原始图像分辨率。
A
Attaque

如果您因为遇到错误而无法拖放文件:

一项或多项媒体项目导入失败: : 操作无法完成。 (PHPhotosErrorDomain 错误 -1。)

将您的文件移动到 Documents 文件夹中,然后将它们拖到模拟器中。这将触发模拟器请求访问您的文件的权限。将它们放在 Downloads 文件夹中,不会。


谢谢大声笑,文档文件夹是这里的关键
太感谢了!这为我节省了很多时间!
a
antyrat

对于 iOS 5.1,这将进一步更改为新路径

~/Library/Application Support/iPhone Simulator/5.1/Media/DCIM/100APPLE


b
bcherry

从 iOS 8 开始,您只需将所有照片拖到模拟器窗口上,它们就会自动保存到相机胶卷。你可以一次做尽可能多的事情。


今天发现这一点非常令人高兴,尤其是在使用大量图像数据 + NSCache 优化测试集合视图的性能时。
这已停止在 XCode 10(在 10.1 上测试)、iOS 12.1 上工作 :(
R
Robin Summerhill

如果您需要导入的不仅仅是一张或两张照片,请查看我写的这个 article。它描述了一种用于批量导入照片的简单方法,并且适用于 iOS 4.x。


这对我有用,但我需要对应用程序进行简单的更改:因为我正在运行 4.2 模拟器,并且它被设计为在 4.0 上运行(我没有),所以我去了“项目”-> “编辑项目设置”,然后在“架构”下,我将“基础 SDK”更改为“最新 iOS”。
J
Joe Smith

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


在 IOS 8.1 中没有区别
C
C_compnay
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.

T
Thomas

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

将您的图像拖到模拟器中

IOS 打开照片应用程序,您的图像现在是您收藏的一部分。

不再需要处理 Safari


您现在还可以一次将多张照片直接拖到“相机胶卷”相册中。
@PaulArdeleanu,你是对的。但是,它不会保留资产的原始元数据。请查看我的项目,这些项目可帮助您导入资产,同时保留所有元数据github.com/matibot/MBAssetsImporter
@MatiBot,MBAssetsImporter 非常适合批量传输图像 - 非常感谢!
W
Waxhaw

在带有 Xcode 11 的 OS X Catalina 中,您必须以不同的方式执行此操作。

首先你必须启动模拟器。如果要复制,请向多个模拟设备说一张照片。启动所有这些。然后右键单击一个(多个图像将失败。只做一个文件。)。

分享 -> 模拟器

将弹出一个“共享表”。您必须在组合框中选择一个活动模拟器并点击发送。

它将发送一对多但不是多对多的选定照片。

我希望这对人们有所帮助。 Xcode 和 OS X 的最新版本支持拖放,但 OS X Catalina 和 Xcode 11 不支持。

虽然这是在方向上,但它目前不起作用。

对我有用的是首先将我的图像导入 OS X 上的 iPhoto,然后将它们从我的 OS X iPhoto 拖放到模拟器中。看起来将照片拖放到模拟器中目前仅适用于 OS X iPhoto。 :-(


f
fredley

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


C
Cristian Bica

试试我制作的这个应用程序。下载代码并在模拟器中运行 https://github.com/cristianbica/CBSimulatorSeed


在 iOS7 下无法开箱即用 - 说明 cocoaPods 不同步。
好吧,您必须运行 pod install 来安装 pod,因为它们不在 repo 中。我已经更新了自述文件
t
tbago

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


p
paprika

以上答案都不适用于 iOS 15。

我只是打开文件应用程序并将图像拖放到那里。它会自动将图像导入照片应用程序,我可以通过我的模拟器在任何地方使用。

干杯!


B
Bhagirath

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


f
firesofmay

我写了一个 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


m
mathgag555

只是告诉你:KONG 的解决方案也适用于 iOS 7 beta。

他的解决方案是:

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


J
Justin Schier

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

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


b
blackmoon

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


M
Mati Bot

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

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

它使您能够导入视频和照片,同时保留文件的所有原始元数据。

https://raw.github.com/matibot/MBAssetsImporter/master/Readme/folder.gif