I'm hoping someone might feel like a good writeup/sample would help. I have test flight in my app now but I'm not seeing any data yet.
Some of the things I think that could help someone not familiar with tf: - make the binding (I didn't have the unix cmd line tools installed) - project setup (walk thru of what you need to do on tf website and the takeoff code) - exception handling in mt for tf - nic's tidbits, or even a stand alone class with some guidance on configurations to use, etc - how to deploy a version to an end user Just some thoughts for those more experienced that might have solved these issues before Sent from my iPhone On Apr 16, 2012, at 4:58 AM, Nic Wise <[email protected]> wrote: >> So let me get this right: you're using Testflight's SDK also for >> distribution builds in the App Store? How does this work? Do I then have to >> upload the distro build also to Testflight? > > So far, no, but I tend to upload the build to TF before I put it in > the appstore anyway. > >> Does your app then have a switch that allows the user to enable Testflight >> tracking? > > No. I have it turned on always. I DONT have the UDID tracking tho, > it's all anonymous. > >> What about Apple's restriction with logging to the console? Why would they >> allow that all logging goes to a remote server if they even deny logging the >> local console? > > Not sure. The console log is to stop the logs building up, I think. > I've had logging in my apps since pretty much day 1. > >> Can you post the process you're using when developing an app? Would be >> awesome. > > When I'm dev'ing, I have TakeOff(team key) and > SetDeviceIdentifier(UDID) called in FinishedLaunching > > I have a load of Checkpoints set, too. > > This way, I can watch what the user is doing, how often they hit > various points, and any crashes that happen. > > In live (which is under review at the moment), I just turn off the > SetDeviceIdentifier, but leave everything else in. My standard logging > function also logs to TF. > > I usually have a debug switch in settings, which turns on the logging > and a button to send the logs over. But I may get rid of that in > favour of TestFlight - that said, it's useful for specific error > cases, so I might keep it in. > > > > >> -----Ursprüngliche Nachricht----- >> Von: Nic Wise [mailto:[email protected]] >> Gesendet: Montag, 16. April 2012 10:06 >> An: René Ruppert >> Cc: [email protected] >> Betreff: Re: [MonoTouch] Testflight SDK 1.0 bindings: >> EntryPointNotFoundException >> >> Because if you release something into the appstore which uses the device >> identifier (UDID), apple will reject it. >> >> On Sun, Apr 15, 2012 at 18:46, René Ruppert <[email protected]> >> wrote: >>> Okay. Thanks. I'll add a separate build definition then. I distribute DEBUG >>> builds for testing. >>> Why are you calling SetDeviceIdentifier() only under certain circumstances? >>> >>> René >>> >>> -----Ursprüngliche Nachricht----- >>> Von: Nic Wise [mailto:[email protected]] >>> Gesendet: Sonntag, 15. April 2012 18:30 >>> An: René Ruppert >>> Cc: [email protected] >>> Betreff: Re: [MonoTouch] Testflight SDK 1.0 bindings: >>> EntryPointNotFoundException >>> >>> I dont startup TestFlight if I'm in the debugger at all. It attaches all >>> sorts of hooks, and it just crashes the MD debugger. >>> >>> private void SetupTestFlight() >>> { >>> #if !DEBUG >>> if (Util.UseTestFlight) >>> MonoTouch.TestFlight.TestFlight.TakeOff("xxxxxxxxxxxxx"); >>> if (Util.UseTestFlight && Util.DebugMode) >>> MonoTouch.TestFlight.TestFlight.SetDeviceIdentifier(UIDevice.CurrentDe >>> vice.UniqueIdentifier); >>> #endif >>> >>> } >>> >>> etc >>> >>> BTW, the TFLog function is in the testflight_cpp.cs file I think - it's a >>> seperate binding. >>> >>> >>> >>> On Sun, Apr 15, 2012 at 14:33, René Ruppert <[email protected]> >>> wrote: >>>> I investigated a bit more. >>>> It did not like the "Conditional" attributes. I removed them and am now >>>> using "#ifdef DEBUG" instead. That works. >>>> However if I'm debugging the Simulator is constantly crashing. I'm getting >>>> "Bus error 10" in the logs. >>>> If I don't debug, all is fine and I get the TestFlight checkpoints logs. >>>> >>>> René >>>> >>>> -----Ursprüngliche Nachricht----- >>>> Von: Nic Wise [mailto:[email protected]] >>>> Gesendet: Sonntag, 15. April 2012 14:29 >>>> An: René Ruppert >>>> Cc: [email protected] >>>> Betreff: Re: [MonoTouch] Testflight SDK 1.0 bindings: >>>> EntryPointNotFoundException >>>> >>>> For some reason, I'm doing a string.Format first, then passing the string >>>> into TestFlight.Log. >>>> >>>> Works fine tho :) >>>> >>>> Make sure you have the right version of the SDK in the same folder as the >>>> bindings. Delete all the .a's - everything but the zip file... >>>> >>>> >>>> >>>> On Sun, Apr 15, 2012 at 12:46, René Ruppert <[email protected]> >>>> wrote: >>>>> Hi, >>>>> >>>>> I’m trying to use Testflight SDK 1.0 in MT. I built small static >>>>> wrapper around it so that TF calls are only made for DEBUG and >>>>> RELEASE builds but not for DISTRIBUTION. >>>>> I “mad” the Testflight DLL as instructed here >>>>> https://github.com/mono/monotouch-bindings. >>>>> Then I copied the DLL into my project and referenced it. >>>>> >>>>> This is the call I’m making: >>>>> >>>>> [Conditional("DEBUG")] >>>>> [Conditional("RELEASE")] >>>>> public static void Log(string sMsg, params object[] aArgs) { >>>>> DateTime dtNow = DateTime.Now; >>>>> TestFlight.Log(dtNow.Hour.ToString("00") + ":" + >>>>> dtNow.Minute.ToString("00") + ":" + dtNow.Second.ToString("00") + " " >>>>> + sMsg, aArgs); } >>>>> >>>>> And this is what I’m getting: >>>>> >>>>> {System.EntryPointNotFoundException: TFLog >>>>> at (wrapper managed-to-native) >>>>> MonoTouch.TestFlight.TestFlight:WrapperTfLog (intptr) >>>>> at MonoTouch.TestFlight.TestFlight.Log (System.String msg, >>>>> System.Object[] >>>>> args) [0x00000] in <filename unknown>:0 >>>>> at iTest.BLTestflight.Log (System.String sMsg, System.Object[] >>>>> aArgs) [0x00006] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/iTest/BLT >>>>> e >>>>> s >>>>> tfligh >>>>> t.cs:24 >>>>> at iTest.Util.ToLog (System.String sMsg, LogLevel eLogLev) >>>>> [0x00000] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/iTest/Util. >>>>> cs:226 >>>>> >>>>> at iTest.Util.GetDeviceUniqueIdentifier () [0x0006e] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/iTest/Util. >>>>> cs:667 >>>>> >>>>> at iTest.BLTestflight.TakeOff (System.String sTeamToken) [0x00000] >>>>> in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/iTest/BLT >>>>> e >>>>> s >>>>> tfligh >>>>> t.cs:14 >>>>> at TestApp.AppDelegateBase.FinishedLaunching >>>>> (MonoTouch.UIKit.UIApplication application, >>>>> MonoTouch.Foundation.NSDictionary launchOptions) [0x00000] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/TestApp/A >>>>> p >>>>> p >>>>> Delega >>>>> teBase.cs:563 >>>>> at TestApp.AppDelegateIPad.FinishedLaunching >>>>> (MonoTouch.UIKit.UIApplication app, >>>>> MonoTouch.Foundation.NSDictionary >>>>> options) [0x00000] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/TestApp/A >>>>> p >>>>> p >>>>> Delega >>>>> teIPad.cs:24 >>>>> at (wrapper managed-to-native) >>>>> MonoTouch.ObjCRuntime.Messaging:void_objc_msgSendSuper_IntPtr >>>>> (intptr,intptr,intptr) >>>>> at MonoTouch.UIKit.UIApplication.SendEvent >>>>> (MonoTouch.UIKit.UIEvent >>>>> uievent) [0x00037] in >>>>> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.g.cs:1 >>>>> 7 >>>>> 6 >>>>> at TestApp.UIApplicationMain.SendEvent (MonoTouch.UIKit.UIEvent >>>>> oEvent) [0x00000] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/TestApp/U >>>>> I >>>>> A >>>>> pplica >>>>> tionMain.cs:23 >>>>> at (wrapper managed-to-native) >>>>> MonoTouch.UIKit.UIApplication:UIApplicationMain >>>>> (int,string[],intptr,intptr) >>>>> at MonoTouch.UIKit.UIApplication.Main (System.String[] args, >>>>> System.String principalClassName, System.String delegateClassName) >>>>> [0x00042] in >>>>> /Developer/MonoTouch/Source/monotouch/src/UIKit/UIApplication.cs:29 >>>>> at TestApp.Application.Main (System.String[] args) [0x00000] in >>>>> /Users/rene/Documents/Develop/Projects/TestApp/210/TestApp/TestApp/M >>>>> a >>>>> i >>>>> n.cs:1 >>>>> 5 }= >>>>> >>>>> Any ideas? >>>>> >>>>> René >>>>> >>>>> _______________________________________________ >>>>> MonoTouch mailing list >>>>> [email protected] >>>>> http://lists.ximian.com/mailman/listinfo/monotouch >>>> >>>> >>>> >>>> -- >>>> Nic Wise >>>> t. +44 7788 592 806 | @fastchicken | >>>> http://www.linkedin.com/in/nicwise >>>> b. http://www.fastchicken.co.nz/ >>>> >>>> Earnest: Self-employed? Track your business expenses and income. >>>> http://earnestapp.com >>>> Nearest Bus: find when the next bus is coming to your stop. >>>> http://goo.gl/Vcz1p mobileAgent (for FreeAgent): get your accounts in your >>>> pocket. >>>> http://goo.gl/IuBU >>>> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa >>>> London Bike App: Find the nearest Boris Bike, and get riding! >>>> http://goo.gl/Icp2 >>>> >>> >>> >>> >>> -- >>> Nic Wise >>> t. +44 7788 592 806 | @fastchicken | >>> http://www.linkedin.com/in/nicwise >>> b. http://www.fastchicken.co.nz/ >>> >>> Earnest: Self-employed? Track your business expenses and income. >>> http://earnestapp.com >>> Nearest Bus: find when the next bus is coming to your stop. >>> http://goo.gl/Vcz1p mobileAgent (for FreeAgent): get your accounts in your >>> pocket. >>> http://goo.gl/IuBU >>> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa >>> London Bike App: Find the nearest Boris Bike, and get riding! >>> http://goo.gl/Icp2 >>> >> >> >> >> -- >> Nic Wise >> t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise >> b. http://www.fastchicken.co.nz/ >> >> Earnest: Self-employed? Track your business expenses and income. >> http://earnestapp.com >> Nearest Bus: find when the next bus is coming to your stop. >> http://goo.gl/Vcz1p mobileAgent (for FreeAgent): get your accounts in your >> pocket. >> http://goo.gl/IuBU >> Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa London >> Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2 >> > > > > -- > Nic Wise > t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise > b. http://www.fastchicken.co.nz/ > > Earnest: Self-employed? Track your business expenses and income. > http://earnestapp.com > Nearest Bus: find when the next bus is coming to your stop. > http://goo.gl/Vcz1p > mobileAgent (for FreeAgent): get your accounts in your pocket. > http://goo.gl/IuBU > Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa > London Bike App: Find the nearest Boris Bike, and get riding! > http://goo.gl/Icp2 > _______________________________________________ > MonoTouch mailing list > [email protected] > http://lists.ximian.com/mailman/listinfo/monotouch _______________________________________________ MonoTouch mailing list [email protected] http://lists.ximian.com/mailman/listinfo/monotouch
