可以将已编译的.m文件下载到应用程序?

时间:2013-07-12 03:42:29

标签: ios objective-c cocoa-touch

我有一个应用程序有一些巨大的.m文件,有大量的绘图代码。当我去提交我的应用程序时,代码文件带给我超过50 MB。我想知道,是否有可能预编译.m文件,将其粘贴在某个服务器上,然后在用户需要使用它时将其下载到我的应用程序中?

4 个答案:

答案 0 :(得分:3)

不,您无法运行下载的代码。您可以做的是在Web上放置一个数据文件(Plist / XML / JSON),然后解释它以绘制它所代表的内容。但绘图代码必须在应用程序上。

答案 1 :(得分:2)

不,Apple不会让你。

在App Store提交指南*(A.K.A. 规则)中,Apple明确表示应用无法下载代码。

为什么呢?嗯,这与应用审核有关。由于Apple希望控制进入商店的内容(这是正确的),因此他们会检查每个应用并进行更新。

现在假设应用程序可以下载这样的代码:我,用户,下载名为 Bob的Money Stealer 的应用程序(我从未阅读应用程序标题)。该应用程序通过审查,因为它看起来像一个应用程序来检查您的股票交易。当它经过审查时,就像那样。

Bob的Money Stealer 有一个问题:使用一周后(为了确保它没有被审核),它会发送到服务器并下载一段代码。此代码弹出一个小对话框,询问我的用户名和密码到我的股票交易账户。

作为我不知情的用户,我立即将它们提供给应用程序。毕竟,我已经使用了一个星期,没有任何事情发生过。第二天,我所有的股票都消失了。

请参阅?现在我因为允许这样的应用程序通过Apple而感到很生气。我起诉他们,赢了(我住的坏司法系统),而且苹果亏钱。

*如果有人有链接,请添加它!我现在正在移动。

答案 2 :(得分:1)

听起来你需要的是某种渲染引擎来执行你的绘图。如果使用某种数据方案来存储绘图指令而不是用于绘制自身的代码,该怎么办?

例如,您可以使用更简单的结构来处理从Maya或3D Studio Max等3D应用程序以COLLADA格式导出的XML文件,其中包含的所有内容都是绘制的坐标和放置的位置。阅读模型的应用程序知道如何处理这些指令。

示例:

在代码中有一个选择器,需要2个CGPoints来绘制一条线。

具有2个坐标的服务器返回JSON字符串:

{"start":{"x":10, "y":10},"end":{"x":100, "y":10}}

您的选择器可以读取该JSON对象并在2个坐标之间绘制线条。

答案 3 :(得分:0)

我觉得你想要做的事情会与网络建立太多不必要的联系。

如果您的代码全部在您的应用中,而不是从某个时间点可能会失败的服务器获取,那么您的代码将更快更有效。

假设您有一个想要在您的应用中使用的图像...您是否希望在找到它时继续从网络中获取此类图像,或者只是将其保存到您的应用中并在需要时引用它它?

我遇到过这个问题,并确定用户手机上存储的几兆字节/千字节/字节的数据是SAFER,而不是从网络服务器继续获取此类数据......

这只是我的观点和我在应用程序开发方面的经验,这是一个推拉式问题,它有一个好处,也有其他方面的好处。

但要最终确定,保留存储在应用程序中的文件更有效,但是,用户将不得不牺牲几兆字节的移动设备内存。

如果应用程序是好的,就像Facebook一样,关心应用程序是否占用了几兆兆字节的内存,只要它有效执行并且用户不会永远等待看到更改发生。 :)