2011-10-23 22 views
2

我在努力讓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

回答

5

-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) –

2

我會走上錯誤的軌道完全。終於找到了MonoTouch的文檔,它描述了TestFlight內置支持:

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

將嘗試這一點,應該解決的問題。

+0

通過上述文檔的鏈接,我能夠使用TestFlight分發我的應用程序。據我所知,然而沒有一個TestFlight方法(例如TakeOff)尚未可用。我在那裏變得非常興奮。感謝@poupou爲你的答案,它照亮了這個位置。 – BillF

+0

是的,TestFlight確實提供了很多:) – poupou

2

分發通過量testflightapp比你的應用程序使用testflightsdk不同的事情。

第一種是通過單擊上傳在菜單中testflight按鈕。

第二個是通過包括實際的sdk。 在過去的幾天裏,他們(xamarin)發佈了新的testflight sdk綁定。這不會讓您修改mtouch參數。所以包含它應該容易得多。

個人而言,我真的很喜歡這個testflight SDK ...幫助我更好地(讓)測試我的應用程序。

0

從這個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