6

我可以使用一些帮助来让我的 #AS3 / #AIR 应用程序在 #iOS 上运行!

现在我有一个 .SWF (v11),我正在 Windows (7) 上使用 Adob​​e AIR (v3.7) 将其转换为 .IPA。

如果我使用 ipa-test-interpreter 的 -target 进行转换,效果很好。

如果我使用 ipa-test、ipa-debug、ipa-ad-hoc 或 ipa-appstore 进行转换,应用程序似乎可以正常编译,但在我的 iPad 上执行应用程序时它只显示黑屏。

将我的 iPad 连接到桌面并监控控制台输出,我看不到崩溃或生成错误消息;该应用程序似乎在内部表现良好,只是丢失了所有外部输出。

这意味着我可以测试和开发,但实际上我永远无法部署到应用商店。还有其他人遇到这个吗?

谷歌搜索我遇到了其他人遇到这个问题,但还没有解决方案。我尝试的一件事是删除所有本机扩展,我还尝试删除 -C 编译器指令。也没有运气。

需要明确的是,该应用程序在 Mac、PC、Android、浏览器和 iOS 上以解释器模式运行完全正常;它只是iOS上的本机编译被破坏了。我听说过 ipa-test 和 ipa-interpreter 有不同的内存分配例程的传言,但我对这里的低端了解不够,无法弄清楚这一点。

远程调试器(在 FlashDevelop 中)似乎也没有连接。我认为它在运行时完全触发之前失败了,不知何故?我也在使用 iphone-configuration-utility 观看控制台输出,并没有出现任何异常。

带有示例项目和说明的临时文件链接:https ://dl.dropboxusercontent.com/u/1348446/test.zip

4

4 回答 4

2

弄清楚了。撞倒:

ADT 命令行有一个 -C 标志来更改命令行上的当前工作目录,这使您可以更好地组织项目并保持命令行更加理智。-C 导入资产时可以调用任意多次,我用过几次。像 FlashDevelop 这样的 IDE 也在 AIR 模板文件中使用 -C,因此这是一种标准行为。作为资产包含的一个简单示例:

ADT.exe [blah blah] assets/icons/icon1.png assets/icons/icon2.png

是相同的

ADT.exe [blah blah] -C assets/icons icon1.png icon2.png

(并且,使用通配符)与

ADT.exe [blah blah] -C assets/icons .

由于我对 iOS、android、steam 等有不同的编译指令集,所以我让 adt 将带有变量的目录切换到当前配置并从那里执行。

这一切都工作正常,并在 ipa-test-interpreter 模式下记录。但是,当处于本机代码模式(ipa-test)时,在 -C 命令之后包含主可执行文件 .SWF [不知何故出于某种原因] 会弄乱内部路径;该文件最终被包含在内,但在执行时最终在内部全部“找不到文件”,因此出现空白屏幕并且没有执行代码。

所以修复只是在调用-C之前包含当前目录中的.swf。作为我刚刚测试好的解决方法的一个快速示例:

copy /bin/flash/game.swf ./
adt [stuff] game.swf -c assets/icons .
del game.swf

我已经就这个问题与 Adob​​e 取得了联系,希望他们能修复 -C 以便将来两个编译目标的功能相同。

于 2013-05-17T07:23:53.263 回答
0

由于在 iOS 版本的 Air 应用程序中使用了“限制”使用的组件,我在过去看到过这种情况。特别是在能够使用加载器类对应用程序资源的加载进行沙箱化之前的那一天。

开始关闭和关闭应用程序的整个模块,看看应用程序何时会在 iOS 上构建和运行。我敢打赌,某处有一些代码是 ipa-test-interpreter 安全的,但在 ipa-test 下有奇怪的行为

于 2013-05-15T20:56:54.597 回答
0

我看到你仍然坚持这个问题。如果您能找到一台 Mac 进行测试,我敢打赌 xcode 仪器会显示您超出了内存限制。是 iPad 的吧?你在使用 Flash 的嵌入元标记吗?

于 2013-05-15T22:53:45.087 回答
0

黑色是您的 swf 背景颜色吗?如果是,可能是跨域加载问题,因为您从 2 个不同的地方加载 swf 和 app.xml。我不知道这是否是导致它的原因,但我通常将它们放在同一个地方。

你有没有见过你的规定和第 12 页在设备上工作?如果不是,那可能是他们的问题。

你用什么 IDE 来做这个,Flash IDE 或 Flash Builder,Flash Develop/ANT?如果您发布 src 代码,它会有所帮助。有时将您的元数据放在错误的位置可能会在 iOS 上搞砸,但在浏览器中看起来很好......所以它可能是很多事情。

祝你好运。

于 2013-05-17T04:29:20.437 回答