问题越来越TestFlight与MonoTouch的应用

问题描述:

我在努力让TestFlight我MonoTouch的应用程序工作(5 MonoTouch的,IOS5)的工作,并没有发现任何TestFlight MonoTouch的文档。问题越来越TestFlight与MonoTouch的应用

这是我到目前为止所尝试的。从https://github.com/mono/monotouch-bindings/tree/master/TestFlight

  1. 下载TestFlight绑定 - 将以此作为参考后,它似乎是在TestFlight方法实际上并不暴露,所以我找了另一组绑定。

  2. https://github.com/ayoung/monotouch-testflight下载了ayoung的TestFlight绑定。使用Make构建monotouch-testflight.dll,将其复制到项目并添加到引用 - 这次TestFlight方法全部可见。

  3. 将libTestFlight.a添加到我的MonoTouch项目的Lib文件夹中,BuildAction设置为Nothing。 (我也有RedLaser)。每个ayoung,我启用LLVM编译器(与ARMv7); ayoung说它是必需的。在项目选项 - > iPhone建立我额外的mTouch参数是:

    -cxx -nosymbolstrip -nostrip -gcc_flags“-lgcc_eh -framework SystemConfiguration -framework CFNetwork的-framework corevideo的-framework CoreMedia -framework AVFoundation -framework OpenGLES -framework安全 - 大号$ {} PROJECTDIR/lib目录-ltestflight -RedLaserSDK -ObjC”

注:TestFlight加入该项目之前的应用程序的工作确定的RedLaser用。

这里-lgcc_eh是按照ayoung - 我一直没能找出它是什么或它是什么。也许我应该有一个gcc_eh.dll(?),但我不AFAIK,我不知道我能找到这样的事情。

  1. 在Main.cs我使用TestFlightSdk加入

    ;

,并在FinishedLaunching我加

TestFlight.TakeOff("(downloaded team token is here)"); 
  1. 编译和安装,并没有错误(发布| iPhone)。

  2. 当我现在在设备上运行的应用程序,它没有诊断,我可以发现立即退出。

  3. 如果编译调试应用程序也立即退出| iPhone。在这种情况下,但是,如果我关掉LLVM尽管ayoung的责难,然后在应用程序输出我看到以下内容:

    TestFlight:入门会议 TestFlight:崩溃处理程序安装 主题开始: 主题开始: TestFlight:团队令牌是公认 TestFlight:会议 TestFlight结束:与TestFlight通讯目前已停用,在您的日志的详细信息

这可能是因为我还没有上传应用程序的.ipa文件到TestFlight早期检查? ? (然而,应用程序确实在这种情况下启动。)

  1. 我想了解如何生成.ipa文件。 TestFlight文档显示了如何从XCode执行此操作,但是我的应用程序仅带有代码,没有.xib,因此该选项似乎不存在? TestFlight文档还显示了如何从.app文件生成.ipa。在这里,我的问题是,如何让我的手放在设备构建的.app文件中?

这些问题的任何帮助,将这么多的赞赏。

+0

您是否设法使用TestFlight SDK?问,因为我遵循相同的确切步骤,并获得相同的结果。现有文档存在缺陷。 - 使用“官方”的绑定生成的DLL,但是方法不暴露 - 使用ayoung绑定公开的方法,但该dll仅仅是4KB大小,显然有些不对劲 – VladT

+0

VladT,不,我没有得到它的工作,需要通过。 – BillF

+0

'members no being exposed'问题无效,TestFlight类实际上需要由'MonoTouch.TestFlight.TestFlight'访问。所以官方绑定是好:) – VladT

-lgcc_eh需要包含异常处理GCC库,如果您与C++库链接,通常需要该库。

也有很多,不看需要-framework选项(MonoTouch的已经增加了它们) - 但不会是你的问题的原因。如果您对编译时使用/提供的内容感到好奇,那么您可以在项目选项中添加“-v -v -v”到“其他接触参数”(并查看编译输出)。

至于主要的问题我认为这是有关事实TestFlight处理程序不兼容(目前)与MonoTouch的(5.0)。 MonoTouch异常处理已经提供了它自己的崩溃处理程序(例如NullReferenceException),并且需要谨慎地添加其他处理程序(如何以及何时执行它非常重要)。这可能是为什么monodouch绑定中的绑定不包含testflight中可用的每个功能。

我建议你打开在bugzilla.xamarin.com bug报告,你会在进度获取电子邮件更新(并知道什么时候该功能将变得可用)。

p.s.试图打破你的问题分成几个(堆栈溢出)的问题,你就更有可能因为不是每个人都知道所有的答案,每一个问题,你可能有:-)接收答案这样

+1

错误报告打开http://bugzilla.xamarin.com/show_bug.cgi?id=1672 – BillF

+1

[这是一个修复,防止空引用异常崩溃您的应用程序。](http:// stackoverflow.com/questions/14499334/how-to-prevent-ios-crash-reporters-from-crashing-monotouch-apps/14499336#14499336) –

我会走上错误的轨道完全。终于找到了MonoTouch的文档,它描述了TestFlight内置支持:

http://docs.xamarin.com/ios/tutorials/TestFlight_Support

将尝试这一点,应该解决的问题。

+0

通过上述文档的链接,我能够使用TestFlight分发我的应用程序。据我所知,然而没有一个TestFlight方法(例如TakeOff)尚未可用。我在那里变得非常兴奋。感谢@poupou为你的答案,它照亮了这个位置。 – BillF

+0

是的,TestFlight确实提供了很多:) – poupou

分发通过量testflightapp比你的应用程序使用testflightsdk不同的事情。

第一种是通过单击上传在菜单中testflight按钮。

第二个是通过包括实际的sdk。 在过去的几天里,他们(xamarin)发布了新的testflight sdk绑定。这不会让您修改mtouch参数。所以包含它应该容易得多。

个人而言,我真的很喜欢这个testflight SDK ...帮助我更好地(让)测试我的应用程序。

从这个Xamarin bug report的声音,就好像即使你的TestFlight SDK本地库与MonoTouch bindingslinking it自己的工作,你仍然会有那TestFlight不会正确地处理任何问题NullReference异常,并且只会在遇到应用程序时崩溃。这使得TestFlight SDK的全部内容毫无意义,直到a)MonoTouch被重新编译以处理它或b)TestFlight发布一个托管的Mono库。

不要误会我的意思,我真的希望能够使用TestFlight SDK和MonoTouch的。我一直在靠墙敲打我的头,试图让它整天工作。当我调用TestFlight.TakeOff(“MyKey”)方法时,某些内容会失败。控制确实从方法中返回,但之后不久就会崩溃......调用后大约1秒钟。奇怪的。

如果别人已经得到了它的工作,我很想听听你的经历。谢谢。

+0

你有没有得到这个工作?对我来说,它只是在TakeOff被调用时崩溃。 –

+0

我有同样的问题,因为你,但我得到了它使用官方MonoTouch的绑定,并设置我的项目使用LLVM和ARMv7工作(但不是的Thumb-2,离开这个框为未选中) 此外,“生成调试符号”是在“项目属性”>“iPhone构建”下未选中。我正在使用MonoDevelop 3.0和MonoTouch 5.1.2。 –

+0

马丁,感谢您的信息!我将不得不给这是一个尝试。 – NovaJoe