【发布时间】:2011-12-13 12:03:35
【问题描述】:
我正在努力让 TestFlight 与我的 MonoTouch 应用程序(Monotouch 5、IOS5)一起工作,并且没有找到任何用于 TestFlight 的 MonoTouch 文档。
这是我到目前为止所尝试的。
从 https://github.com/mono/monotouch-bindings/tree/master/TestFlight 下载的 TestFlight 绑定——在添加这个作为参考之后,似乎 TestFlight 方法实际上根本没有公开,所以我寻找了另一组绑定。
从 https://github.com/ayoung/monotouch-testflight 下载了 ayoung 的 TestFlight 绑定。使用 Make 构建 monotouch-testflight.dll,将其复制到项目中并添加到 References 中——这次 TestFlight 方法全部可见。
将 libTestFlight.a 添加到我的 MonoTouch 项目的 Lib 文件夹中,并将 BuildAction 设置为 Nothing。 (我那里也有 RedLaser)。
-
每年,我启用了 LLVM 编译器(使用 ARMv7); ayoung 说这是必需的。在 Project Options -> iPhone Build 我额外的 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)" );
编译安装没有错误(Release|iPhone)。
当我现在在设备上运行应用程序时,它会立即退出,而我无法发现任何诊断信息。
-
如果编译为 Debug|iPhone,应用程序也会立即退出。然而,在这种情况下,如果我不顾 ayoung 的限制而关闭 LLVM,那么在应用程序输出中我会看到以下内容:
TestFlight:已启动会话 TestFlight:已安装崩溃处理程序 话题开始: 话题开始: TestFlight:团队令牌被识别 TestFlight:会话结束 TestFlight:与 TestFlight 的通信当前已禁用,请在前面的日志中查看详细信息
这可能是因为我尚未将应用程序的 .ipa 文件上传到 TestFlight? (不过,在这种情况下,该应用程序确实会启动。)
- 我正在尝试了解如何生成 .ipa 文件。 TestFlight 文档展示了如何从 XCode 执行此操作,但我的应用程序是纯代码的,没有 .xib,所以该选项似乎已失效? TestFlight 文档还展示了如何从 .app 文件生成 .ipa。我的问题是,我如何着手构建设备的 .app 文件?
对于这些问题的任何帮助将不胜感激。
【问题讨论】:
-
你使用TestFlight SDK了吗?问是因为我遵循相同的确切步骤,并得到相同的结果。现有文档的某个地方存在缺陷。 - 使用“官方”绑定生成 dll,但未公开方法 - 使用 ayoung 绑定公开方法但 dll 大小仅为 4kb,显然有问题
-
VladT,不,我没有让它工作,需求通过了。
-
“成员不被暴露”问题无效,TestFlight 类实际上需要被“MonoTouch.TestFlight.TestFlight”访问。所以官方绑定很好:)
标签: iphone binding xamarin.ios ipa testflight