ADT适用于ipa-test-interpreter但不适用于ipa-test

And*_*ore 6 air flash actionscript-3 adt

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

现在我有一个.SWF(v11),我在Windows(7)上使用Adobe 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

And*_*ore 2

弄清楚了。撞倒:

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

ADT.exe [blah blah] assets/icons/icon1.png assets/icons/icon2.png
Run Code Online (Sandbox Code Playgroud)

是相同的

ADT.exe [blah blah] -C assets/icons icon1.png icon2.png
Run Code Online (Sandbox Code Playgroud)

(并且,使用通配符)与

ADT.exe [blah blah] -C assets/icons .
Run Code Online (Sandbox Code Playgroud)

由于我对 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
Run Code Online (Sandbox Code Playgroud)

我已就此事与 Adob​​e 联系,希望他们能够修复 -C,以便将来两个编译目标的功能相同。