Discussion Forums  >  Plugins, Customizing, Source Code

Replies: 12    Views: 123

chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
08/26/14 06:42 PM (10 years ago)

A plea to plugin developers

Many of you know that most of my income from apps has been through doing stuff for other people - either making plugins or making apps for churches or other businesses. Yesterday I submitted my first real attempt at making money through an app on the App Store. (I'll post about it if it's approved). Because I wanted to take at least a small measure up front to protect the data, I turned off the debugger output using the flag in the appDelegate. As plugin developers know, there are two ways of showing debug statements in the debugger in XCode: using the BT_debugger class or using NSLog. Of course, the BT_debugger class simply uses NSLog to output statements to the console, but has the advantage of being able to easily turn off all such statements with a single flag. The problem I ran into is the various uses of NSLog throughout the app. Since these do not go through BT_debugger, there's not an easy way to simply disable them all. After doing a search of my project, I found over 450 uses of NSLog. Many of these came from my own plugins, so I'm probably more to blame than anyone. Almost every plugin had at least one or two in them, though. Even found some in the core. But, my plea to all plugin developers is to use BT_debugger whenever you want to output something to the console, rather than NSLog. I know it takes a little bit of extra time, but it's a much better practice for Buzztouch apps, and makes more safer code to release to the wild. Thanks - stepping down off the soap box for now, while I clean my own hands! :)
 
@rob
Code is Art
Profile
Posts: 115
Reg: Dec 10, 2013
Alabama
8,800
like
08/26/14 06:47 PM (10 years ago)
Great info Chris!
 
nadthevlad
Code is Art
Profile
Posts: 1025
Reg: Jun 07, 2012
Denver
21,850
like
08/26/14 07:21 PM (10 years ago)
Can you do a find and replace on the project. Find: NSLog Replace: //NSLog ?
 
Niraj
buzztouch Evangelist
Profile
Posts: 2943
Reg: Jul 11, 2012
Cerritos
37,930
like
08/26/14 07:42 PM (10 years ago)
Nice short term fix, Nick! Good long term suggestion, Chris! -- Niraj
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
08/26/14 07:54 PM (10 years ago)
Nick - yes, that works as a workaround. But would be better if we all were using BT_debugger.
 
Cakebit
Code is Art
Profile
Posts: 501
Reg: Dec 15, 2010
In your local b...
16,510
like
08/26/14 08:17 PM (10 years ago)
@chris1, Thanks for the suggestion! I will defiantly put this into practice with my plugins... If you don't mind my asking... how does this help protect your app security? I'm all about keeping internal app data safe! Do you have any other suggestions about other BT functions that I should be using instead of the default Objective C ones? -Cake http://buzztouch.me/chat/
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
08/26/14 08:44 PM (10 years ago)
Sure thing - so, anyone who has an inkling about this sort of stuff can easily enough hook their phone up to their computer and see all the debug statements output in realtime as they're running the app. An easy way of doing that is to hook it up to Xcode and open "organizer". Where it can really cause havoc is if you're outputting http requests to your debugger. So, for instance, my app issues a good number of http post requests to my server for various commands. If someone saw the details of those commands, it would be child's play to setup an html form to do the same thing maliciously. Of course, hiding the debug output is only a small protection in this regards. If someone really wanted to see that information bad enough, there's other ways of going about it. It just takes a bit more work.
 
Cakebit
Code is Art
Profile
Posts: 501
Reg: Dec 15, 2010
In your local b...
16,510
like
08/26/14 08:50 PM (10 years ago)
@chris1, Thank you for the info! I'm surprised I didn't know this! That could be important to view for some of my apps... I'll have to check this out like a kid in the candy store! Have you done any apps in the App Store for profit before? I'm interested to know what you are up to. :) If you are able to share details, I'd love to listen! -Cake
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
08/26/14 08:51 PM (10 years ago)
This is my first real attempt at it. I'll share details once it gets approved.
 
Cakebit
Code is Art
Profile
Posts: 501
Reg: Dec 15, 2010
In your local b...
16,510
like
08/26/14 08:55 PM (10 years ago)
@chris1, Awesome! I've had my fair share of successes, I was in the top 100 on the App Store in 2012... but competing in the App Store is getting harder, especially now that Apple got rid of the "Latest Apps" section in iOS 6! Getting a successful launch is THE most important piece to getting your app noticed! Hope Apple gives it the thumbs up! -Cake
 
SmugWimp
Smugger than thou...
Profile
Posts: 6316
Reg: Nov 07, 2012
Tamuning, GU
81,410
like
08/26/14 11:59 PM (10 years ago)
I'll take a look, do what I can for the future. I suspect a bit of it is 'converted' rather than 'created' plugins. Good Luck in your app publishing! Fingers crossed! Cheers! -- Smug
 
Kaybee
buzztouch Evangelist
Profile
Posts: 659
Reg: Sep 22, 2012
Perth, Australi...
44,690
like
08/27/14 09:29 AM (10 years ago)
haha, love this. One thing is for certain, if @Chris1 puts out something this worthwhile ("my first real attempt at making money through an app on the App Store"), you want to stand up and take notice. Exciting times.
 
shenry
Aspiring developer
Profile
Posts: 469
Reg: Jan 10, 2012
Orange County, ...
13,390
like
08/27/14 01:37 PM (10 years ago)
Live and learn. Looking forward to seeing your app!
 

Login + Screen Name Required to Post

pointerLogin to participate so you can start earning points. Once you're logged in (and have a screen name entered in your profile), you can subscribe to topics, follow users, and start learning how to make apps like the pros.