我很难让TestFlight使用我的MonoTouch应用程序(Monotouch 5,IOS5)并且没有找到TestFlight的任何MonoTouch文档。
这是我到目前为止所尝试的内容。
从https://github.com/mono/monotouch-bindings/tree/master/TestFlight下载了TestFlight绑定 - 在将此作为参考添加后,似乎TestFlight方法实际上根本没有公开,所以我寻找另一组绑定。
< / LI>从https://github.com/ayoung/monotouch-testflight下载了ayoung的TestFlight绑定。使用Make构建monotouch-testflight.dll,将其复制到项目并添加到References - 这次TestFlight方法都可见。
将libTestFlight.a添加到MonoTouch项目中的Lib文件夹,并将BuildAction设置为Nothing。 (我也有RedLaser。)
Per ayoung,我启用了LLVM编译器(使用ARMv7); ayoung说它是必需的。在项目选项中 - &gt; iPhone构建我的其他mtouch参数是:
-cxx -nosymbolstrip -nostrip -gcc_flags“-lgcc_eh -framework SystemConfiguration -framework CFNetwork -framework CoreVideo -framework CoreMedia -framework AVFoundation -framework OpenGLES -framework Security -L $ {ProjectDir} / Lib -ltestflight -RedLaserSDK -ObjC”
注意:在将TestFlight添加到项目之前,应用程序可以正常使用RedLaser。
这里-lgcc_eh就像ayoung一样 - 我无法找出它是什么或它是什么。也许我应该有一个gcc_eh.dll(?),但我不是AFAIK,我不知道在哪里可以找到这样的东西。
在Main.cs中我添加了
使用TestFlightSdk;
并在FinishedLaunching中添加了
TestFlight.TakeOff( "(downloaded team token is here)" );
编译并安装时没有错误(发布| iPhone)。
当我现在在设备上运行应用程序时,它立即退出,没有我能发现的诊断。
如果编译为Debug | iPhone,应用程序也会立即退出。但是,在这种情况下,如果我关闭LLVM,尽管存在严格的限制,那么在应用程序输出中我会看到以下内容:
TestFlight:已启动会话 TestFlight:安装了崩溃处理程序 线程开始: 线程开始: TestFlight:团队令牌被识别 TestFlight:会话结束 TestFlight:目前已禁用与TestFlight的通信,请在日志的前面查看详细信息
这可能是因为我还没有将应用程序的.ipa文件上传到TestFlight? (但是,在这种情况下应用确实会启动。)
对这些问题的任何帮助都会非常感激。
答案 0 :(得分:5)
-lgcc_eh 需要包含异常处理GCC库,如果您链接到C ++库,通常需要该库。
您还有很多看起来不需要的 -framework 选项(MonoTouch已经添加了它们) - 但这不是问题的原因。如果您对编译时 mtouch 使用/提供的内容感到好奇,那么您可以在项目选项中的“附加触摸参数”中添加“-v -v -v”(并查看构建内容)输出)。
至于主要问题,我认为这与TestFlight处理程序与MonoTouch(5.0)不兼容(目前)的事实有关。 MonoTouch异常处理已经提供了自己的崩溃处理程序(例如NullReferenceException
),并且需要谨慎添加其他处理程序(如何以及何时执行它非常重要)。这可能是为什么单触式绑定中的当前绑定不包含testflight中可用的每个功能的原因。
我建议您在bugzilla.xamarin.com上打开错误报告,然后您将收到有关进度的电子邮件更新(并确切知道该功能何时可用)。
P.S。试着将你的问题分解成几个(堆栈溢出)问题,你更有可能以这种方式得到答案,因为不是每个人都知道你可能拥有的每个问题的所有答案: - )
答案 1 :(得分:2)
我完全走错了轨道。最后找到MonoTouch文档,其中描述了对TestFlight的内置支持:
http://docs.xamarin.com/ios/tutorials/TestFlight_Support
试试这个,它应该解决问题。
答案 2 :(得分:2)
分发throug testflightapp与在app中使用testflightsdk不同。
第一个是单击菜单中的上传到testflight按钮。
第二个是包含实际的sdk。 在最近几天,他们(xamarin)发布了新的testflight sdk绑定。那不会让你修改mtouch参数。所以包含它应该容易得多。
我个人非常喜欢testflight sdk ...帮助我更好地(让)测试我的应用程序。
答案 3 :(得分:0)
从这个Xamarin bug report的声音来看,似乎即使你让TestFlight SDK本机库自己使用MonoTouch bindings或linking it,你仍然会有TestFlight无法正确处理任何NullReference异常的问题,只是在遇到应用程序时会崩溃应用程序。这使得TestFlight SDK的这一点毫无意义,直到a)MonoTouch被重新处理它或b)TestFlight发布一个托管的Mono库。
不要误解我的意思,我真的希望能够将TestFlight SDK与MonoTouch一起使用。我一直在靠墙试图让它整天都工作。当我调用TestFlight.TakeOff(“MyKey”)方法时,有些东西失败了。控制确实从方法返回,但随后它很快就崩溃了......在它被调用后大约1秒钟。怪异。
如果其他人已经开始工作,我很想知道你的经历。感谢。