将深度 link 传递到 iOS 模拟器?
Pass deep link into iOS Simulator?
我想找到一种更简单的方法来调用 iOS 模拟器中的深层链接。
在 Android 上,您可以使用 ADB 通过控制台将链接通过管道传输到模拟器中。
是否有类似的方法或解决方法来使用最新的 iOS 模拟器打开深层链接?
您可以在终端中输入:
xcrun simctl openurl booted '<INSERT_URL_HERE>'
您甚至可以使用从 Finder 到 iOS 模拟器的内置共享扩展共享文档。
作为替代方案,您可以使用 ControlRoom 开源工具。基本上它是模拟器 cli 之上的包装器。
(针对 Branch.io 个 QuickLinks 进行了测试)
另一种在 iOS 模拟器中打开深层链接的非常简单的方法是:
- 将深层链接复制到剪贴板。
- 在您的 iOS 模拟器中打开 Safari 应用程序并将您的深层链接 url 粘贴到 Safari。
- Safari 将尝试打开 url 但它会失败,并显示错误警报。不过别担心。
- 通过 运行 从 Xcode 打开您的应用程序,模拟器会认为该应用程序是从深度链接打开的,您将在代码中收到所需的深度链接信息。
这是另一种方法:
在模拟器中
- 打开通讯录应用程序
- 转到 pre-defined 联系人之一,例如“John Appleseed”
- 点击编辑
- 点击添加url(在底部)- 并将您的link设置为该联系人的“主页”URL
- 点击完成保存联系人
- 点击您刚刚添加的link
专业提示:您可以向 URL 条目添加自定义标签,例如,如果您想要测试不同的 URL 并能够快速识别它们。
注意:如果您重置模拟器,联系人应用程序将重置为默认值并丢失 URL。
即使有很多很棒的解决方案,我仍然想加我的 5 美分:)
我的方法基于 Automator macOS 应用程序,让您可以执行 any 深度链接单击两次即可在 iOS 模拟器上使用您的计算机。
我将使用 Quick Actions,因为在这种情况下,我们可以使用任何应用程序从中获取 URLs。因此,启动应用程序,File —> New —> Quick Action —> Choose
。现在拖放你的第一个动作。它将是 Set Value of Variable
。转到 View
菜单和 select Variables
。在变量部分中单击鼠标右键并单击 select New variable
。将其命名为 url
。我们将在该变量中保留输入文本(应该是我们的深层链接)。现在拖放 Run Shell Script
动作,确保 Pass
输入参数设置为“as arguments”。粘贴以下行:
xcrun simctl openurl booted
其中 $1 将成为我们的 URL 变量。
它应该是这样的:
现在将此操作保存为 Open in Simulator
。此操作现在可在 Services
上下文菜单中使用。 Select 任何 URL 作为任何应用程序中的文本,右键单击,Open in Simulator
- 整齐吗?
cmd 命令不起作用?!
不幸的是,xcrun simctl openurl booted
命令不起作用。我的 link 是这样的:
myapp://?p=abc&case=12345
我一直看到以下错误:
MyApp % zsh: no matches found: myapp://?p
解决方案
我能够通过以下方式修复它:
- 在模拟器中打开 Safari 并转到 https://halgatewood.com/deeplink/
- 添加你的深度link并点击“加载”按钮。因此它应该导航到:
- 点深link(上图黑框)
就是这样!
注意
如果您将 link 直接添加到 Safari,它也不会正常工作,请确保您使用的是 halgatewood.com deep link 测试器。
我想找到一种更简单的方法来调用 iOS 模拟器中的深层链接。
在 Android 上,您可以使用 ADB 通过控制台将链接通过管道传输到模拟器中。
是否有类似的方法或解决方法来使用最新的 iOS 模拟器打开深层链接?
您可以在终端中输入:
xcrun simctl openurl booted '<INSERT_URL_HERE>'
您甚至可以使用从 Finder 到 iOS 模拟器的内置共享扩展共享文档。
作为替代方案,您可以使用 ControlRoom 开源工具。基本上它是模拟器 cli 之上的包装器。
(针对 Branch.io 个 QuickLinks 进行了测试)
另一种在 iOS 模拟器中打开深层链接的非常简单的方法是:
- 将深层链接复制到剪贴板。
- 在您的 iOS 模拟器中打开 Safari 应用程序并将您的深层链接 url 粘贴到 Safari。
- Safari 将尝试打开 url 但它会失败,并显示错误警报。不过别担心。
- 通过 运行 从 Xcode 打开您的应用程序,模拟器会认为该应用程序是从深度链接打开的,您将在代码中收到所需的深度链接信息。
这是另一种方法:
在模拟器中
- 打开通讯录应用程序
- 转到 pre-defined 联系人之一,例如“John Appleseed”
- 点击编辑
- 点击添加url(在底部)- 并将您的link设置为该联系人的“主页”URL
- 点击完成保存联系人
- 点击您刚刚添加的link
专业提示:您可以向 URL 条目添加自定义标签,例如,如果您想要测试不同的 URL 并能够快速识别它们。
注意:如果您重置模拟器,联系人应用程序将重置为默认值并丢失 URL。
即使有很多很棒的解决方案,我仍然想加我的 5 美分:)
我的方法基于 Automator macOS 应用程序,让您可以执行 any 深度链接单击两次即可在 iOS 模拟器上使用您的计算机。
我将使用 Quick Actions,因为在这种情况下,我们可以使用任何应用程序从中获取 URLs。因此,启动应用程序,File —> New —> Quick Action —> Choose
。现在拖放你的第一个动作。它将是 Set Value of Variable
。转到 View
菜单和 select Variables
。在变量部分中单击鼠标右键并单击 select New variable
。将其命名为 url
。我们将在该变量中保留输入文本(应该是我们的深层链接)。现在拖放 Run Shell Script
动作,确保 Pass
输入参数设置为“as arguments”。粘贴以下行:
xcrun simctl openurl booted
其中 $1 将成为我们的 URL 变量。
它应该是这样的:
现在将此操作保存为 Open in Simulator
。此操作现在可在 Services
上下文菜单中使用。 Select 任何 URL 作为任何应用程序中的文本,右键单击,Open in Simulator
- 整齐吗?
cmd 命令不起作用?!
不幸的是,xcrun simctl openurl booted
命令不起作用。我的 link 是这样的:
myapp://?p=abc&case=12345
我一直看到以下错误:
MyApp % zsh: no matches found: myapp://?p
解决方案
我能够通过以下方式修复它:
- 在模拟器中打开 Safari 并转到 https://halgatewood.com/deeplink/
- 添加你的深度link并点击“加载”按钮。因此它应该导航到:
- 点深link(上图黑框)
就是这样!