我可以帮助我在#iOS上运行我的#AS3 / #AIR应用程序!
现在我有一个.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
答案 0 :(得分: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 switch目录到当前配置并从那里执行。
这一切都很好,并且在ipa-test-interpreter模式中有记录。但是,在本机代码模式(ipa-test)中,包括-C命令之后的主要可执行文件.SWF [某种原因出于某种原因]会扰乱内部路径;文件最终被包含但最终在执行时内部全部为“文件未找到”,因此空白屏幕并且没有代码执行。
因此修复只是在调用-C之前包含当前目录中的.swf。作为我的解决方法的一个简单例子,刚刚测试了一个好的:
copy /bin/flash/game.swf ./
adt [stuff] game.swf -c assets/icons .
del game.swf
我已经与Adobe联系过这个问题,希望他们能够修复-C所以它的功能在未来的两个编译目标都是一样的。
答案 1 :(得分:0)
我已经看到过去发生过这种情况,因为在iOS版本的Air应用程序中使用了“限制”使用的组件。特别是在能够使用加载器类沙箱加载app资源的前一天。
开始关闭并关闭应用的整个模块,看看该应用何时在iOS上构建和运行。我愿意打赌,有些代码可以安装ipa-test-interpreter但在ipa-test下有奇怪的行为
答案 2 :(得分:0)
我发现你仍然坚持这个问题。如果你能找到一台Mac进行测试,我敢打赌xcode乐器会显示你超过你的内存限制。 iPad是对的吗?你在使用flash的embed meta标签吗?
答案 3 :(得分:0)
黑色是你的瑞士法郎背景色吗?如果是,也许这是一个跨域加载问题,因为你从两个不同的地方加载你的swf和app.xml。我不知道这是否会导致它,但我通常将它们放在同一个地方。
你有没有见过你的规定& p.12在设备上工作?如果没有,可能是他们的问题。
您使用什么IDE来制作Flash IDE或Flash Builder,Flash Develop / ANT?如果你发布src代码,它会有所帮助。有时候把你的元数据放在错误的地方可能会搞砸iOS,但在浏览器中看起来很好......所以可能有很多东西。
祝你好运。