【问题标题】:NSTask or equivalent for iPhone [closed]NSTask 或 iPhone 的等效项 [关闭]
【发布时间】:2010-12-04 22:00:48
【问题描述】:

我有一个开源项目 (gdal),我想将其编译并作为 iOS 应用程序的一部分运行。我一直期待使用NSTask,但我现在看到它在 iOS 3.0 中已被删除。我还在其他地方看到不允许运行外部应用程序,尽管这将是我的应用程序包中的资源。

有没有其他人找到在他们的 iOS 应用程序中运行命令行工具的方法?

【问题讨论】:

  • 我目前正在尝试类似的事情,你有没有最终让这个工作?
  • 我知道这是一个旧线程,但它首先出现在 google nstask on iphone 我为越狱的 iphone 找到了它:stackoverflow.com/questions/9983430/…

标签: ios command-line open-source gdal nstask


【解决方案1】:

它没有在 3.0 中被删除,它从未存在过。无法在 iPhone 上运行单独的进程。 GDAL 似乎是在 MIT 风格的许可证下,并且有一个库接口,因此直接将其链接到 iPhone 应用程序应该没有任何法律或技术问题。

【讨论】:

  • 谢谢 Louis,它与链接到 Apple 提供的框架之一的过程相同吗? libgdal.a 大约 40mb,比我的项目的其余部分大得多,所以我希望只使用可执行的 gdalinfo(大约 5mb),但这看起来不像我可以直接链接到的东西。我知道没有很多开源 iPhone 应用程序,但如果你碰巧知道任何在 Apple 框架以外的代码中链接的应用程序,我真的很想看看它是如何完成的。
  • 嗯,显然您想要的功能所需的代码量必须小于 40 兆字节。你是否能有效地解决它是一个单独的问题。另外,我认为 40 megs 意味着它是未剥离的并且具有所有调试符号(可能非常大)。如果剥掉它会缩小多少?
  • 我想我将不得不在这个网站上提出更多问题。我不确定如何剥离调试符号。它是使用 Christopher Stawarz 编写的脚本“build_for_iphoneos”编译的,也许有一些关于我需要设置哪些标志的注释。与此同时,我将尝试像框架一样导入它,看看我可以在完整的 40mb 版本上运行哪些功能。
【解决方案2】:

NSTask 在 ios 4、ios 3 以及可能所有这些中都可用。要使用 NStask,我必须将 NStask 头文件从我的 mac 复制到我的项目文件夹。此外,Apple 很可能不允许在应用商店中使用 NStask 的应用。 Cydia 可能是分发您的应用程序的最佳场所

【讨论】:

  • 您是否在设备上对此进行了测试?如果您只是在模拟器中进行测试,它会使用 Mac OS X 源代码,因为最需要的文件 NSTask.m 会丢失。
  • 我相信我在设备上测试过,但我不记得了
  • NSTask 在 iOS 上,你需要它的头文件才能编译。
  • Here is a copy of NSTask.h 来自 rpetrich 的 github 存储库。
  • 这在 iOS 8 上不起作用,当使用这些步骤时你会得到:dyld:加载 iOS 模拟器 dyld 的问题
【解决方案3】:

提醒一下:
NSTask 不能在沙盒环境下工作(你会得到“deny process-fork”)。所以把你的应用放到 /Applications

【讨论】:

  • 呃?对于 iPhone 应用程序的部署位置,我认为您没有太多选择。
  • 问题:如何复制?到我的普通项目文件夹而不是#import? --------- 越狱评论是怎么回事?如果在 iOS 上使用 NSTask,Apple 是否会拒绝商店中的应用程序? ---------- 我想这样做:stackoverflow.com/questions/16626577/…
猜你喜欢
  • 1970-01-01
  • 2012-09-03
  • 2012-01-10
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多