我可以将实时照片放入 iOS 模拟器吗?

Can I put a live photo into the iOS Simulator?

我想创建一个应用程序来显示实时照片。但是我没有iPhone 6S。有没有机会把现场照片放到iOS Simulator? 谢谢!

我发现的唯一方法非常笨拙:将实时照片放入您的 iCloud 照片流,然后将您的模拟器连接到您的 iCloud 帐户。实时照片将在您的模拟器的照片库中可用。

如您所料,"get a live photo..." 这一步可能会很棘手——您可能需要一位 iPhone 6s/6s+ 的朋友才能向您发送 iMessage。尽管 Facebook 和 Google 照片等某些服务支持在应用程序内查看实时照片,但它们似乎不支持将它们下载到您的照片库中同时保持其实时性。

与最初 asked/answered 相比,界面有了很大改进。现在很容易做到这一点。

  • 转到“照片”应用程序并找到要放在(模拟)设备上的 LivePhoto。
  • Select 照片,转到文件-> 导出-> 导出 n 张照片的未修改原件....
  • 保存的文件将导出到您的桌面。每个LivePhoto会有两个文件。
  • 将两个文件(每张实时照片)拖到模拟器设备上。
  • LivePhotos 已创建并自动放置在模拟设备的照片库中。

原答案:

我就是这样做的。使用 PhotosUI 界面,我的应用程序请求 LivePhoto。使用它给我的 PHAsset,我保存了 .mov 文件和高质量 .png 图像的本地副本。这两个文件是"LivePhoto"。 在 Xcode 中,我转到连接了 phone 的设备,select 应用程序,单击底部的设置齿轮图标和 select 下载容器。转到 Finder,右键单击我刚刚下载的 .xcappdata 文件,select ShowPackageContents 和文件是我写的。我将它们拖到应用程序中(Xcode 已打开 - 将它们放在左侧的导航器窗格中),它们将被添加到应用程序的包中。

可以将实时照片放入模拟器,您需要 一个视频文件和一个图像文件(因为一个实时照片是这两者的结合)。然后使用 Photos Framework,您可以将实时照片保存在图库中

PHPhotoLibrary.shared().performChanges({
        let request = PHAssetCreationRequest.forAsset()

        request.addResource(with: .photo, fileURL: imageUrl, options: nil)
        request.addResource(with: .pairedVideo, fileURL: videoUrl, options: nil)


    }) { (success, error) in

        print(success)
        print(error?.localizedDescription ?? "error")
    }