且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

越来越TestFlight问题MonoTouch的应用工作

更新时间:2022-10-26 21:32:57

-lgcc_eh 是需要包括异常处理GCC库,如果你用C ++库的链接,往往是必需的。

您也有很多的 -framework 看上去并不需要的选项(MonoTouch的已经增加了它们) - 的但不会是你的问题的原因的。如果您想了解什么 mTouch触摸使用/提供在编译的时候,那么你可以添加-v -v -v到项目选项额外的触控参数(并期待在构建输出)。

对于主要的问题,我认为这是有关事实TestFlight处理程序不兼容(presently)与MonoTouch的(5.0)。 MonoTouch的异常处理已经提供了它自己的崩溃处理程序(例如,用于的NullReferenceException ),并加入其他处理程序需谨慎进行(何时以及如何做到这一点是非常重要的)。这可能是为什么的电流的MonoTouch的中,绑定绑定不包含所有功能的te​​stflight可用。

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

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

Am struggling to get TestFlight working with my MonoTouch app (Monotouch 5, IOS5) and have not found any MonoTouch documentation for TestFlight.

Here is what I tried so far.

  1. Downloaded TestFlight bindings from https://github.com/mono/monotouch-bindings/tree/master/TestFlight -- after adding this as a reference it seemed that the TestFlight methods were actually not exposed at all, so I looked for another set of bindings.

  2. Downloaded ayoung's TestFlight bindings from https://github.com/ayoung/monotouch-testflight. Built monotouch-testflight.dll with Make, copied it to the project and added to References -- this time the TestFlight methods were all visible.

  3. Added libTestFlight.a to the Lib folder in my MonoTouch project with BuildAction set to Nothing. (I also have RedLaser in there).

  4. Per ayoung, I enabled LLVM compiler (with ARMv7); ayoung states it is required. In Project Options -> iPhone Build my additional mtouch arguments are:

    -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"

Note: The app worked ok with RedLaser before TestFlight was added to the project.

Here -lgcc_eh is as per ayoung -- I have not been able to find out what it is or what it is for. Perhaps I should have a gcc_eh.dll (?) but I don't AFAIK, and I don't know where I could find such a thing.

  1. In Main.cs I added

    using TestFlightSdk;

and In FinishedLaunching I added

TestFlight.TakeOff( "(downloaded team token is here)" );

  1. Compiled and installed with no error (Release|iPhone).

  2. When I now run the app on the device, it exits immediately with no diagnostic that I can discover.

  3. The app also exits immediately if compiled to Debug|iPhone. In this case, however, if I turn off LLVM despite ayoung's strictures then in Application Output I see the following:

    TestFlight: Started Session TestFlight: Crash Handlers are installed Thread started: Thread started: TestFlight: Team Token is recognized TestFlight: End of Session TestFlight: Communication with TestFlight is currently disabled, check earlier in your log for details

This might be because I have not yet uploaded the app's .ipa file to TestFlight?? (The app does launch in this case however.)

  1. I am trying to find out how to generate a .ipa file. TestFlight documentation shows how to do this from XCode but my app is code-only with no .xib so that option seems to be out? TestFlight documentation also shows how to generate a .ipa from the .app file. Here my problem is, how do I lay my hands on the .app file for a device build?

Any help with these issues would be so much appreciated.

-lgcc_eh is needed to include the Exception Handling GCC library, which is often required if you link with C++ libraries.

You also have a lot of -framework options that do not look required (MonoTouch already adds them) - but that won't be the cause of your problem. If you're curious about what mtouch use/provide at compilation time then you can add "-v -v -v" to the "additional touch arguments" in your project options (and look at the build output).

As for the main issue I think it's related to the fact the TestFlight handlers are not compatible (presently) with MonoTouch (5.0). MonoTouch exception handling already provides it's own crash handlers (e.g. for NullReferenceException) and adding other handlers needs to be done with care (how and when to do it is very important). This is likely why the current bindings in monotouch-bindings don't include every feature available in testflight.

I suggest you to open a bug report at bugzilla.xamarin.com and you'll get email updates on the progress (and know exactly when the feature will become available).

p.s. try to break your issues into several (stack overflow) questions, you're more likely to receive answers that way since not everyone knows all the answers to every question you might have :-)