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

Reply via email to