天道酬勤,学无止境

如何将图像添加到iOS模拟器(How do I add images to the iOS Simulator)

问题

我有xcode 4.5.1,想将照片添加到iphone 6.0模拟器中,但找不到。 我有一个名为iphone Simulator的文件夹,但它仅包含4.3.1。 可能是因为几个月前,我将应用程序支持中的几乎所有内容都拖到了外部硬盘驱动器上,以节省一些内存。 现在,当我将其拖回时,它包含我以前使用的4.3.1。 我需要下载新的东西还是应该怎么做? 提前致谢!

回答1
  1. 运行模拟器
  2. 在模拟器上运行Safari
  3. 将图片拖到在Simulator上运行的Safari上,这将打开图像。
  4. 单击并按住图像,或点击底部工具栏中的共享图标。
  5. 您会收到一条警报,询问您是否要将图像存储到手机中
回答2

有一种比Abizern描述的方法稍快的方法

  1. 打开模拟器
  2. 将图像直接拖动到图像上(无需启动Safari.app)
  3. Safari Willl发布
  4. 长按图像并将其保存到Simulators Camera Roll

iOS9更新:本地存储的图像可以直接拖到模拟器上,而不必显式保存。

在此处输入图片说明

请注意,您的图像存储在此处( 6.1与Simulator版本匹配):

~/Library/Application Suppport/iPhone Simulator/6.1/Media/DCIM/100APPLE

不幸的是,您不能仅将图像添加到该文件夹​​,因为它们不在Simulator的图像数据库中,因此将被忽略。 但是,您可以通过Finder获取所有存储的图像。

回答3

使用Xcode 6更容易。

1.-将图像拖放到模拟器中,该图像将直接显示在本机“照片”应用程序中。

回答4

现在,您还可以通过命令行使用smctl addmedia命令来执行此操作。

$ xcrun simctl addmedia
Usage: simctl addmedia <device> <path> [... <path>]

You can specify multiple files including a mix of photos and videos.

You can also specify multiple live photos by providing the photo and video files. They will automatically be discovered and imported correctly.

注意(根据命令行工具的安装方式,您可能不需要在simctl前面添加xcrun)。

要找到正确的设备ID,请运行simctl列表设备

$ xcrun simctl list devices
== Devices ==
-- iOS 10.2 --
    iPhone 5 (D226CF12-6782-4D7D-9C00-2D662CF4022C) (Shutdown)
    iPhone 5s (34E0E0F8-3429-4D91-B038-ECF4FD0F3311) (Shutdown)
    iPhone 6 (9C772A68-34E3-4F3F-981C-543DE6D5D985) (Shutdown)
    iPhone 6 Plus (7848A50E-BFB5-4F19-BB31-4A56CA78AA2C) (Shutdown)
    iPhone 6s (12CF89BA-C8B2-4837-B4EB-FB24DFF1622C) (Shutdown)
    iPhone 6s Plus (3EE6CA84-8F12-4A5E-A31D-EF4BF3CCBDB2) (Shutdown)
    iPhone 7 (1EB3CE5D-849C-491C-9CAA-5E97B1BD89CE) (Booted)
    iPhone 7 Plus (94FEFD36-6EFF-4762-BD21-79B1F958F6C6) (Shutdown)
    iPhone SE (E8E8ECEB-34C0-44F0-B92E-57DCA91024F1) (Shutdown)
    iPad Retina (0DA5BF39-3DC7-49B3-BE9B-2FA756FCA725) (Shutdown)
    iPad Air (DAB9C2D3-8EBC-41DC-9C2D-0ECEC1D2FAE3) (Shutdown)
    iPad Air 2 (1E2DA170-5C2E-413C-831B-FA65524643D3) (Shutdown)
    iPad Pro (9.7 inch) (99F931A9-0708-4637-9294-6420DC7A149C) (Shutdown)
    iPad Pro (12.9 inch) (08CD02EB-C44A-4183-961A-EED89FF1C225) (Shutdown)
-- tvOS 10.1 --
    Apple TV 1080p (7EE393F2-C83E-467F-9802-3E5BFE7C2CA9) (Shutdown)
-- watchOS 3.1 --
    Apple Watch - 38mm (B8969533-D7CD-462E-9E76-511C08E8CC8E) (Shutdown)
    Apple Watch - 42mm (E16167D9-1007-438B-8812-CD97CE6ABECA) (Shutdown)
    Apple Watch Series 2 - 38mm (F59C0BB1-B4D0-47DD-B927-1BFD78DD78C0) (Shutdown)
    Apple Watch Series 2 - 42mm (7FE3AADD-94AB-46B9-A057-78F20F030999) (Shutdown)

因此,要将视频添加到我的iPhone 7模拟器中,我将使用:

$ xcrun simctl addmedia 1EB3CE5D-849C-491C-9CAA-5E97B1BD89CE <path to video>
回答5

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

我创建了一个项目,使将资产导入模拟器非常容易:MBAssetsImporter。

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

回答6

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

回答7

这很简单。 只需在iPhone模拟器中转到照片,然后将图像从您所在的位置(例如桌面上的图像)拖到IphoneSimulator。 它将这些图片添加到相册中。

回答8

另一种简单的方法是,在带有XCode 10的High Sierra中,在运行模拟器的情况下,在“照片”中选择您的照片,转到“共享”菜单,然后选择“模拟器”。

瞧!

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 将图像或视频添加到iPhone模拟器(Adding images or videos to iPhone Simulator)
    问题 我正在尝试将UIImagePickerController与UIImagePickerControllerSourceTypePhotoLibrary一起使用,但显示“没有照片”。 模拟器从何处获取图像? 我应该在哪里复制图像,以便在模拟器中显示它们? 回答1 将图像,视频等内容下载到模拟器上的最简单方法是将它们从计算机拖放到模拟器上。 这将导致模拟器打开“照片”应用程序并开始填充图库。 如果您想要一个可编写脚本的方法,请继续阅读。 注意-尽管这是有效且可行的,但我认为下面的Koen解决方案现在是更好的解决方案,因为它不需要重新启动模拟器。 通过转到xCode->设备,选择模拟器并检查标识符值来标识模拟器。 或者,您可以确保模拟器正在运行,然后运行以下命令以获取设备ID xcrun simctl list | grep Booted xcrun simctl list | grep Booted 去 〜/库/开发人员/ CoreSimulator /设备/ [仿真器标识符] / data / Media / DCIM / 100APPLE 并添加IMG_nnnn.THM和IMG_nnnn.JPG。 然后,您将需要重置模拟器(硬件->重新引导),以使其注意到新的更改。 它们不是JPEG也没关系-它们都可以是PNG,但是看来它们必须同时存在才能正常工作。 如果DCIM不存在
  • 如何将照片添加到OSX的iPhone模拟器中? [复制](How do I add photos to the iPhone Simulator for OSX? [duplicate])
    问题 这个问题已经在这里有了答案: 将图像或视频添加到iPhone模拟器(34个答案) 7年前关闭。 我的Mac上有照片,我想将它们添加到iPhone模拟器中以测试我的应用程序。 换句话说:如何将照片添加到iPhone Simulator? 编辑:关于iPhone Simulator 4.0呢? iPhone Simulator 3.0和4.0的工作方式有所不同。 预先感谢您对我的帮助... 回答1 在Mac中打开存储图像的窗口。 另一侧打开模拟器。 现在,将图像从Mac窗口拖到模拟器中, 模拟器将打开safari,并在safari标签中显示您的图片。 点击并按下模拟器中的图像, 将会有消息“保存图像”, 保存图片。 它将被添加到您的iPhone模拟器中。 编辑 : 首先,请看下面的图片。 在iPhone模拟器4.0(iphone / iphone模拟器)中,它本身维护一个sqlite数据库以添加图像。 因此,如果您要使用复制粘贴系统-首先创建插入项,然后复制粘贴。 那将是荒谬的方式。 好的。 让我解释一下更简单的方法。 打开您要在其中添加要在模拟器中添加的批量图像的查找器。 将第一张图片拖放到iPhone模拟器中在图像上-点击并按住1秒钟。 将会出现操作表-点击保存选项对所有图像重复相同的过程这也将做sqlite条目。 现在,打开/ Users / YourUserName /
  • 如何监视从iOS模拟器发出的网络呼叫(How to monitor network calls made from iOS Simulator)
    问题 我试图像Firebug一样监视从应用程序到服务器的呼叫。 我找不到在iOS Simulator或xCode中看到它的方法。 有没有办法在不监听所有流量的情况下做到这一点? 如果否,您会建议使用哪种工具? 回答1 就个人而言,我将Charles用于此类工作。 启用后,它将监视每个网络请求,显示扩展的请求详细信息,包括对SSL和各种请求/响应格式(如JSON等)的支持。 您还可以将其配置为仅嗅探对特定服务器的请求,而不嗅探整个流量。 它是商业软件,但是有一个试用版,恕我直言,它绝对是一个很棒的工具。 回答2 如果您只想查看HTTP / HTTPS流量,那么像其他答案所建议的那样,中间人代理是一个很好的解决方案。 打p套件非常好。 但是配置可能会很痛苦。 我不确定您如何说服模拟器与之对话。 您可能必须将本地Mac上的代理设置为代理服务器实例,以使其能够被拦截,因为模拟器将利用本地Mac的环境。 我发现,用于数据包嗅探的最佳解决方案(尽管它仅适用于实际的iOS设备,不适用于模拟器),是使用rvictl 。 这篇博客文章写得很好。 基本上,您会这样做: rvictl -s <iphone-uid-from-xcode-organizer> 然后,您可以嗅探它使用Wireshark(或您喜欢的工具)创建的界面,并在完成后使用以下命令关闭界面: rvictl -x <iphone-uid
  • Cordova应用程序无法在iPhone X(模拟器)上正确显示(Cordova app not displaying correctly on iPhone X (Simulator))
    问题 我昨天在Xcode 9.0(9A235)的iPhone X Simulator上测试了基于Cordova的应用程序,但效果并不理想。 首先,不是填充整个屏幕区域,而是在应用内容的上方和下方都有一个黑色区域。 更糟糕的是,在应用内容和黑色之间是两个白条。 添加cordova-plugin-wkwebview-engine以便Cordova使用WKWebView(而非UIWebView)进行渲染可修复白条。 由于我的应用程序在使用cordova-plugin-wkwebview-engine时由于性能和内存泄漏问题而无法从UIWebView迁移到WKWebView,因此当将从Inapp Purchase下载的托管内容加载到HTML5画布中时会发生这种情况(直接file://由于WKWebView中的安全限制,无法使用Webview,因此必须通过cordova-plugin-file加载图像数据。 这些屏幕快照显示了在<body >上设置了蓝色背景的测试应用程序。 在UIWebView的上方和下方,您可以看到白色的条形,但在WKWebView中则看不到: (来源:pbrd.co) (来源:pbrd.co) 与填充整个屏幕区域的本机应用程序相比,两种Cordova Webview均显示黑色区域: 回答1 我在这里找到了解决白条的方法: 在视口<meta>标签上设置viewport
  • 将自签名证书添加到iPhone Simulator?(Adding a self-signed certificate to iphone Simulator?)
    问题 我在API的端点处有一个自签名证书。 我正在尝试使用模拟器测试某些东西,但正在获取“不受信任的服务器证书”。 我试图在模拟器上使用Safari浏览器下载.crt文件,但这似乎不起作用。 iPhone Simulator是从哪里获得钥匙串的? 如何添加受信任的证书,以便我的应用程序可以运行? 更新 我通过创建CA,然后使用iPhone供应工具添加CA证书来使其工作。 然后,我可以在API服务器上获得由该CA证书签名的证书,并且NSConnection可以正常工作。 由于某种原因,我无法使用自签名证书来使其正常工作。 我需要使用预配软件重新尝试执行此操作。 我真正的问题是如何在模拟器上使用它? 我认为模拟器使用了实际计算机的钥匙串。 回答1 仅用于信息,如果仍然有人遇到该问题: 只需将.cer文件拖放到正在运行的Simulator窗口中。 您会看到Safari闪烁,然后显示证书(或证书颁发机构)的导入对话框... 适用于iOS 7模拟器(我认为iOS 6也适用)。 回答2 对于那些发现无法在Simulator上拖放证书的人来说,最近的更改增加了一个额外的步骤。 必须明确告知模拟器信任根CA。 为此,请执行以下操作: 常规->关于->证书信任设置->为您的特定证书“启用对根证书的完全信任” 在此处查看完整答案: 回答3 我几个月来都遇到过同样的问题,今天我终于用以下方法解决了它:
  • iOS 7 / Xcode 5:以编程方式访问设备启动图像(iOS 7 / Xcode 5: Access device launch images programmatically)
    问题 有什么方法可以将应用程序LaunchImage用作通用iOS应用程序中的背景,而无需将相同的图像资源放在多个位置? 我是不是能够访问LaunchImage在文件Images.xcassets ,所以我创建了两个新的图片集“背景人像”,“风景背景”(因为似乎没有办法把横向和纵向图像转换成同一组) 。 虽然此解决方法可以完成工作,但我不希望将每个图像两次包含到应用程序中。 这也具有很高的维护成本。 感谢您提供有关如何访问当前设备的LaunchImage的任何建议。 对于iOS <7,GCOLaunchImageTransition必须已完成此工作。 回答1 您可以使用启动映像,而不必两次包含它们。 关键是,当您使用资产目录时,应用程序捆绑包中包含的图像的文件名是标准化的(某种),并且可能与您命名的原始文件无关。 特别是,当您使用LaunchImage图像集时,最终出现在应用程序捆绑包中的文件的名称如下 LaunchImage.png LaunchImage@2x.png LaunchImage-700@2x.png LaunchImage-568h@2x.png LaunchImage-700-568h@2x.png LaunchImage-700-Landscape@2x~ipad.png 尤其要注意,它们没有命名为Default.png或该名称的任何变体。
  • 如何在ios推送通知中显示图像?(how to display image in ios push notification?)
    问题 iOS 10引入了推送通知框架更新, UserNotificationsUI.framework 如苹果文档中所写,它使我们可以自定义本地和远程通知在用户设备上出现时的外观。 因此,如果有人知道在锁定屏幕上时如何在推送通知中显示图像。 就像andorid推送通知一样。 谢谢, 回答1 如果要自定义本地和远程通知的外观,请执行以下步骤: 创建一个UNNotificationCategory并将其添加到UNUserNotificationCenter类别中: let newCategory = UNNotificationCategory(identifier: "newCategory", actions: [ action ], minimalActions: [ action ], intentIdentifiers: [], options: []) let center = UNUserNotificationCenter.current() center.setNotificationCategories([newCategory]) 创建一个UNNotificationContentExtension: 然后使用代码或情节UIViewController自定义您的UIViewController 。
  • 如何从iOS模拟器获取控制台日志?(How can I get the console logs from the iOS Simulator?)
    问题 如果我没有在Xcode中测试应用程序,我想看看iOS模拟器中会发生什么。 例如,如果我在Safari模拟器中打开链接,请查看控制台中发生的情况,或者如果我安装了Web应用程序,请查看我在控制台中按的链接。 我怎样才能做到这一点? 我想在Xcode或Terminal中看到它,但是如果我需要使用其他软件也不是问题。 回答1 iOS模拟器>菜单栏>调试>打开系统日志 老办法: iOS Simulator将其日志直接打印到stdout,因此您可以看到日志与系统日志混合在一起。 打开终端并输入: tail -f /var/log/system.log 然后运行模拟器。 编辑: 这停止了​​在Mavericks / Xcode 5上的工作。现在,您可以在其自己的文件夹中访问模拟器日志: ~/Library/Logs/iOS Simulator/<sim-version>/system.log 您可以使用Console.app查看此内容,也可以只做一条尾巴(例如iOS 7.0.3 64位): tail -f ~/Library/Logs/iOS\ Simulator/7.0.3-64/system.log 编辑2: 它们现在位于~/Library/Logs/CoreSimulator/<simulator-hash>/system.log tail -f ~/Library/Logs
  • UIImageView缺少设备启动屏幕中的图像(UIImageView missing images in Launch Screen on device)
    问题 我有一个支持iOS8和更高版本的应用程序,内置在Xcode 7中,并且正在使用XIB作为启动屏幕(我没有启动图像)。 该视图包含一个包含应用程序版本的UILabel,以及两个包含Image.xcassets中都存在的图像的UIImageViews:一个徽标和一个初始图像。 启动应用程序时,UILabel和徽标图像会正确显示,但是如果我在具有iOS9的iPad Air 2上运行该应用程序,则启动图像不会显示。 我已经在运行iOS8的Air和Mini以及运行于iPad 2,iPad Air和iPad Air 2的iOS9模拟器上进行了测试,并且所有这些图像均正确显示。 我跑了一些基本的故障,看看我能想出什么要去,但是当我把它添加到我一直没能解决这个问题,我可以说的工作的形象而这失败的一个之间看到的唯一区别是资产... 这是我所知道的摘要: 初始图像的UIImageView放置在正确的位置,且大小正确。 我可以说这是因为我将其背景色设置为绿色只是为了确保。 视图在那里,但是图像不出现。 因此,我认为这一观点不应该受到指责。 将初始图像设置为也使用徽标图像的UIImageView,将使徽标图像显示在视图的正确位置。 这也使我假设这种观点不应该受到指责。 我在初始图像视图中使用的UIImage在应用程序的其他位置使用,并在其他视图中正常显示(徽标图像也在应用程序的其他位置使用
  • 如何更改Flutter上的应用程序启动器图标?(How to change the application launcher icon on Flutter?)
    问题 当我使用flutter create命令创建应用程序时,flutter徽标将用作两个平台的应用程序图标。 如果我想更改应用程序图标,是否应该同时进入两个平台目录并在其中替换图像?通过平台目录,我的意思是myapp/ios/Runner/Assets.xcassets/AppIcon.appiconset和myapp/android/app/src/main/res适用于Android)。 还是可以将图像定义为Flutter Asset并且图标以某种方式生成? 回答1 Flutter启动器图标旨在帮助快速生成适用于Android和iOS的启动器图标:https://pub.dartlang.org/packages/flutter_launcher_icons 将包添加到您的pubspec.yaml文件(在Flutter项目中)以使用它在pubspec.yaml文件中,指定要用于应用程序的图标的路径,然后选择是否要将图标用于iOS应用程序,Android应用程序或两者。 运行包瞧! 默认启动器图标现已替换为您的自定义图标 我希望将视频添加到GitHub自述文件中以进行演示 可在此处找到显示如何运行该工具的视频。 如果有人想提出改进建议/报告错误,请在GitHub项目上将其添加为问题。 更新:从2018年1月24日星期三开始
  • 捕获iOS模拟器视频以进行App预览(Capture iOS Simulator video for App Preview)
    问题 好的,现在我们可以在App Store上提交我们应用程序的视频预览。 根据苹果公司的说法,我们应该使用iOS8设备和OSX 10.10. 问题是您必须拥有所有不同的设备(4“,4.7”,5.5“和iPad)。 是否有替代方法? 我正在考虑捕获模拟器的视频。 问题是当以100%分辨率显示时,设备屏幕大于我的FullHD显示器。 有什么解决方案可以从模拟器中以全分辨率捕获视频吗? 编辑:由于很多人都在回答我不问的问题,让我说:-记录一个设备的大小并缩放它不是我要的; -如何记录任何应用程序预览不是我要的; -我不是在问您如何预览? 我要问的是,如果屏幕上不适合显示,您能否以100%的分辨率录制来自模拟器的视频? 回答1 对于Xcode 8.2或更高版本 您可以使用xcrun simctl来拍摄Simulator的视频和屏幕截图, xcrun simctl是用于控制Simulator的命令行实用程序 在模拟器上运行您的应用打开一个终端运行命令截屏xcrun simctl io booted screenshot <filename>.<file extension> 例如: xcrun simctl io booted screenshot myScreenshot.png 拍摄视频xcrun simctl io booted recordVideo <filename>
  • 如何在iOS模拟器上模仿两指滚动/拖动手势?(How to mimic two-finger scroll/drag gesture on ios simulator?)
    问题 我有一个滚动页面,我至少指定了两个手指。 它可以在我的设备上运行,但不知道如何在Simulator上模仿此手势。 我可以毫无问题地模仿单指滚动。 我试过了option / ctrl / shift等,但无法正常工作。 也许我的组合是错误的。 有人知道吗? 谢谢。 回答1 按住“ Alt / Option”键并拖动可模拟多点触控缩放。 按住“ Alt / Option + Shift”并拖动可模拟多点触摸滚动。 回答2 Apple的《 iOS模拟器用户指南》中有一张不错的表格,其中包含所有受支持的手势。 这是两指拖动的摘录: 将指针放在您希望两指拖动发生的位置。 按住Option键。 将代表手指触摸的圆圈移动到开始位置。 按住Shift键,将圆圈移动到所需的中心位置,然后松开Shift键,以移动收缩目标的中心。 按住Shift键和鼠标按钮,沿要拖动的方向移动圆圈,然后释放Shift键和鼠标按钮。 希望能帮助到你。 回答3 在iPad模拟器中滚动的最佳方法是通过“三指”拖动,这是OS X的全局设置,而不是iOS模拟器的特定功能。 为了使用三根手指滚动,您需要在TrackPad>指向下打开“三根手指拖动”,然后在OS X的“设置”应用中单击。 并将“任务控制”和“ AppExposé”设置为使用四根手指(在OS X的“设置”应用程序中的“轨迹板”>“更多手势”中)
  • iOS-Xcode模拟器上的颜色与设备上的颜色不同(iOS - color on Xcode simulator is different from the color on device)
    问题 概述 模拟器(iMac)中我的iPhone应用程序的背景颜色看上去与设备(iPhone 3GS)上的颜色不同。 编辑(已添加以下部分) 以下是所有不同的地方: 故事板颜色(XIB文件) 模拟器颜色设备颜色 我想我应该看看它在设备上的外观。 问题 这是其他开发人员面临的常见问题,并且有没有办法匹配颜色(系统过程)? 在不同版本的iPhone(3gs / 4 / 4s)或所有颜色上,颜色看起来会有所不同吗? 我是否缺少某些东西,应该使用任何特定的颜色配置文件吗? 是否有某种类似的经验法则,其中RGB值有一定百分比的变化? 在iPhone 4和4S中,颜色是否与模拟器匹配? (我没有iPhone4和4S,所以不确定。) 回答1 感谢@jtbandes提出发送屏幕快照的建议,该屏幕快照导致了解决方案 我只是为了完整性回答这个问题。 我遵循的步骤: 在情节提要中拍摄图像的屏幕截图拍摄设备中图像的屏幕截图(使用邮件/照片流返回到Mac) 使用颜色选择器(mac OS调色板的一部分)在两个屏幕截图中选择相同的位置记下在步骤3中选择的点的RGB值(在Mac OS调色板上可用) 比较两个RGB值并查看差异添加RGB偏移量以匹配颜色。 我的RGB偏移量(不要盲目跟随) 根据我的经验,我添加了以下RGB值以获得我想要的颜色,它只是粗糙的并且对我有用: 红色+12 绿色+19 蓝色+16 不同角º
  • 在Xcode 6 iPhone Simulator的iOS 8 UITableView上删除SeparatorInset(Remove SeparatorInset on iOS 8 UITableView for Xcode 6 iPhone Simulator)
    问题 我在Xcode 6 GM的iPhone 6模拟器(iOS 8)的UITableView上发现了一个奇怪的空白。 我试图从情节提要和代码中设置SeparatorInset ,但是空格一直到此为止。 以下代码在iOS 7上有效,但在iOS 8(iPhone 6模拟器)上无效。 -(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{ if ([tableView respondsToSelector:@selector(setSeparatorInset:)]) { [tableView setSeparatorInset:UIEdgeInsetsZero]; } } 我在下面附上了屏幕截图: 顺便说一句,我正在使用自动版式。 我希望有人可以向我展示一种删除TableView上怪异空白的方法。 回答1 感谢Student向我指出正确的方向,并带有“尝试以下self.myTableView.layoutMargins = UIEdgeInsetsZero ;” 这行代码仅在iOS 8上可用,因为layoutMargins仅在iOS 8上可用。如果我在iOS 7上运行相同的代码,它将崩溃。
  • 如何创建静态库,并且可以在ios中的任何项目上仅添加.a文件(How can I create static library and can add just .a file on any project in ios)
    问题 如何创建静态库,并且可以在ios中的任何项目上仅添加.a文件。 我尝试执行此操作,但是无法执行。 提前致谢 回答1 如果要创建静态库,请参阅链接http://jaym2503.blogspot.in/2013/01/how-to-make-universal-static-library.html 步骤1:创建一个新项目,命名为“ Logger” 步骤2:建立课程 您可以创建所需的多个类,在我们的教程中,我们将创建一个名为“ Logger”的类。 因此,现在我们的资源中应该有两个文件。 1. Logger.h 2. Logger.m 第3步:在类中放入一些有用的代码 步骤4:建立新目标 从文件菜单创建新目标。 新的目标选择可可接触静态库 步骤5:将文件添加到编译资源 选择静态库的“记录器”目标转到“在编译源中的阶段”部分,添加所有.m和.mm文件。 在“复制文件”部分中,添加所有.h文件和资源文件。 建造阶段 步骤6:使用静态库目标编译项目 适用于iOS设备的编译项目用于模拟器的编译项目您可以在生成文件夹中找到两个不同的.a文件。 查找.a文件 步骤7:使静态库通用 您现在可以找到两个不同的库,一个用于模拟器,一个用于iOS设备。 创建一个新文件夹,并将其命名为LoggerMerge。 复制libLogger.a调试-的iPhoneOS的文件夹为“LoggerMerge
  • 是否可以在iOS Simulator中禁用网络?(Is it possible to disable the network in iOS Simulator?)
    问题 我正在尝试调试在从互联网获取其主要数据的应用程序中看到的一些不一致的行为。 我看不到模拟器中的问题,只是在设备上,所以我想在模拟器中重现网络和连接环境。 有什么方法可以在模拟器中禁用网络? (我正在远程连接Mac进行编码,现在没有其他选择,因此不能选择禁用OS网络)。 回答1 恐怕没有,模拟器共享操作系统正在使用的任何网络连接。 不久前,我提交了一份Radar错误报告,内容涉及模拟网络条件。 您可能会考虑这样做。 回答2 使用简单的法拉第笼来阻止或限制外部RF信号电平。 您可以用铝箔制作自己的。 如果这是您要阻止的,则开口应小于数据服务的波长。 800 Mhz的波长为37厘米(14英寸),1900 Mhz的波长为16厘米(6英寸)。 与Mac相比,这在实际设备上比在模拟器上更有效,因为在法拉第笼中时Mac很难操作;-) 回答3 是的。 在Xcode中,您可以转到Xcode菜单项-> Open Developer Tools -> More Developer Tools然后下载“适用于Xcode的其他工具”,它将带有网络链接调节器。 使用此工具,您可以模拟不同的网络方案(例如100%丢失,3G,高延迟DNS等),还可以创建自己的自定义方案。 回答4 我知道在iOS模拟器上禁用网络的唯一方法是使用Little Snitch或Hands Off之类的工具。 使用它们,您可以拒绝
  • 上传到服务器之前,如何在iOS上压缩/调整图像大小?(How to compress/resize image on iOS before uploading to a server?)
    问题 我目前正在使用Imgur在iOS上使用以下代码将图像上传到服务器: NSData* imageData = UIImagePNGRepresentation(image); NSArray* paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString* fullPathToFile = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"SBTempImage.png"]; [imageData writeToFile:fullPathToFile atomically:NO]; [uploadRequest setFile:fullPathToFile forKey:@"image"]; 当我在模拟器中运行并从模拟器的图片库上传文件时,该代码可以正常工作,因为我处于快速以太网连接中。 然而,选择与iPhone拍摄的图像时相同的代码超时在iPhone上。 因此,我通过从网络上保存一个小图像并尝试上传该图像来进行了尝试。 这使我相信iPhone拍摄的大图像正在通过速度较慢的3G网络超时。 有没有办法在发送之前对iPhone的图像进行压缩/调整大小? 回答1
  • 如何导出“胖”可可触摸框架(用于模拟器和设备)?(How to export “fat” Cocoa Touch Framework (for Simulator and Device)?)
    问题 使用Xcode 6,我们可以创建自己的动态Cocoa Frameworks 。 因为: 模拟器仍使用32-bit库从2015年6月1日开始,提交到App Store的应用程序更新必须包含64位支持,并使用iOS 8 SDK(developer.apple.com)构建 我们必须制作胖子库才能在设备和模拟器上运行项目。 即在Frameworks中同时支持32位和64位。 但是我没有找到任何手册,也没有找到如何导出通用的Fat Framework以便将来与其他项目集成(并与他人共享该库)的手册。 这是我的重现步骤: 在Build Settings设置ONLY_ACTIVE_ARCH=NO 向Architectures添加支持armv7 armv7s arm64 i386 x86_64 (肯定) 构建框架并在Finder中打开它: 将此框架添加到另一个项目 实际结果: 但是最后,我仍然无法立即在设备和模拟器上运行带有此框架的项目。 如果我从Debug-iphoneos文件夹中获取框架-它可以在设备上工作,并且在模拟器上会出错: ld: symbol(s) not found for architecture i386 xcrun lipo -info CoreActionSheetPicker 胖文件:CoreActionSheetPicker中的体系结构为:armv7
  • Xcode 12,针对iOS模拟器而构建,但链接到针对iOS而构建的目标文件中,用于体系结构arm64(Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64)
    问题 试图在Xcode 12(测试版5)中构建大型项目(并在Xcode 11上工作),以便为iOS 14做好准备。代码库以前是Obj-C,但现在同时包含Obj-C和Swift,并且使用的pod是Obj-C和/或Swift也是如此。 我已经在Xcode 12支持下(目前为1.10.0.beta 2)拉出了Cocoapods的新Beta。 吊舱安装成功。 进行构建时,在pod框架上收到以下错误: 为iOS Simulator构建,但链接到为体系结构arm64而为iOS构建的目标文件 当我在框架上运行lipo -info时,它具有:armv7s armv7 i386 x86_64 arm64。 以前,该项目的有效架构设置为:armv7,armv7s和arm64。 根据Apple的文档,在Xcode 12中,该设置消失了。 体系结构设置为$(ARCHS_STANDARD)。 我没有在排除的体系结构中设置任何东西。 任何人都知道这里可能会发生什么? 我还不能用一个更简单的项目来重现这一点。 回答1 基本上,您必须从项目和Pod项目中排除用于模拟器架构的arm64 , 为此,请导航至项目的Build Settings (构建设置) , arm64在Excluded Architecture中将Any iOS Simulator SDK值为arm64 Any iOS Simulator
  • 如何重置iPhone模拟器(How to reset iPhone simulator)
    问题 我的应用使用了定位服务。 为了测试当模拟器要求访问位置服务的权限(首次启动该应用程序)时,用户按下“不允许”时发生的情况,我需要重置模拟器。 这是因为在开发过程开始时就用allow回答了问题。 因此,不再询问其他问题。 用“重设内容和设置..”重设模拟器不会在一开始就出现问题。 我做错了什么? 回答1 对于iOS 14及更高版本: Device > Erase All Contents and Settings... 对于iOS 11及更高版本: Hardware > Erase All Contents and Settings... 对于以前的版本: Simulator > Reset Content and Settings... (在早期版本的模拟器中,顶部菜单项标签为“ iOS Simulator” 回答2 对于iOS 11及更高版本,您需要转到顶部的系统菜单,然后选择: “硬件”>“清除所有内容和设置... ” 回答3 如果您使用的是雪豹: 转到Mac的“系统偏好设置”(而不是模拟器的“系统偏好设置”),选择“安全性”部分。 点击定位服务前面的“重置警告”按钮,一切就绪。 回答4 苹果说 要将模拟器的用户内容和设置恢复为出厂状态并删除已安装的应用程序,请选择“ iPhone模拟器”>“重置内容和设置”。 http://support.apple.com/kb