8 ms·
Vine mistakenly ships iOS app with debug mode enabled
- robbyking 11y agoI'm really curious as to how this happened. In the app I work on, all of our debug features are wrapped in Preprocessor Macros so they'll only run in debug mode.
- ldidi 11y agoHappened to me at my previous company. We had a bunch of #ifdef DEBUG that wrapped non user-facing code. One day someone added DEBUG=1 in debug mode, DEBUG=0 in release mode, which led to the macro check always being true. The change was hidden in the Github PR since it was in our .xcodeproj. Nobody noticed, but even if we did, I'm not sure we would have guessed the actual impact of it.
- to3m 11y agoI've done this sort of thing once, and nearly done it several times more. The time the product was released like that, it was a Makefile setting a rather important flag using ?=, in a sub-Makefile two includes deep, and because that happened to have always been the first time CFLAGS was set, it worked. Until I added a new flag. (Solution: don't set your Makefile variables like that.) When I've nearly done it, it's always been on projects that have the fairly standard Debug/Release build config system (via whatever mechanism), and the Release build is the one that gets released. But then you have no config corresponding to Release-and-some-temporary-debug-stuff, which is something you basically always need. But if you manage this by hand, it's too easy to slip up and have some debug stuff end up in the final product. (Solution: have an extra build config, Final/Product/etc., that is what you use when preparing the final build. So if you get it wrong and leave your debug stuff in the Release build, the result never gets further than other team members.)
- ilyanep 11y agoAs always, a good reminder to treat all debug text as if customers will be seeing it :)
- bonobo3000 11y agoFair point, but that would take away half the fun of debugging for me :(
- dspillett 11y agoIf you simply must be profane or otherwise unsuitable in your test data, at least be subtle like instead of calling a user your are testing bad use cases with "that fucker" perhaps go with naming him "Sir Henry Isambard Tomlinson". But seriously: do be very careful with test data. While it doesn't need to be perfect it should never be potentially offensive, childish, or otherwise unprofessional. You never know when an accident will happen and your test case data accidentally escapes into releases or other material that goes to a client or prospect (I once saw unprofessional looking test data in a screenshot in a printed brochure - good luck changing that after the fact!) or when someone in sales will find the official demo site not working so decides to show a prospect a dev/test/qa instance instead (sales having access to such app instances may be a problem in its own right, but it happens). It isn't even just outsiders you need to worry about: someone here was officially disciplined last year when someone else in the team took offence to certain expletives being used in test data. He'd assumed no one else would see it as he was the only person on the task at the time, but as priorities changed so did who was looking at that piece of work.
- chiph 11y agoAt a previous job, we had test data that used an outdoor outfitter theme. We had values for canoes, fishing poles, tents, etc. under the name "Master Bait & Tackle". It was an in-house joke, until the sales department saw how complete the data set was and wanted a copy for presentations...
- Sujan 11y agoAnything bad in there? Didn't see anything...
- eddd 11y agoIs it really the way to debug your iOS apps, add some features instead of tests?
- iLoch 11y agoAs with every single piece of software in the world, that would be up to the people who implement it.
- eddd 11y agoI just asked if this is a common way to do this, but apparently all the iOS devs felt offended - I will not comment on this. Thanks for the answer anyway :)
- matthewmacleod 11y agoLike any software project with lots of moving parts, it would be great if one could develop an iOS app in a vacuum, writing tests as required, and using them to guarantee a perfect product. In reality, that never works. I would expect that these features are actually mostly used by QA or product owners for acceptance testing. The reason they typically exist in my experience is that it can be difficult to trigger the conditions required using other means.
- kolinko 11y agoHow do you test if a reminder notification really launches on a device after 5 seconds?
- Spivak 11y agoIn theory, a device should be able to be put into full debug mode where the SDK allows access to basically everything unsandboxed so your test case could actually verify that the notification was correctly delivered.
- justusw 11y agoWhile this incident is quite amusing, I wonder if this could have any negative impact, like unwanted discovery of weaknesses in the API? Otherwise it appears to me that Vine mistakenly shipped a less polished version of their iOS app with no actual negative implications.
- rmc 11y agoDoesn't Apple claim that the point of the review process is to catch these sort of things?
- matthewmacleod 11y agoNo.
- rmc 11y agoLiterally line 1 of the Apple App Store review page: > "We review all apps submitted to the App Store and Mac App Store to ensure they are reliable, perform as expected, and are free of offensive material." https://developer.apple.com/app-store/review/ https://developer.apple.com/app-store/review/
- jbverschoor 11y agoI think certain developers can skip the review process.
- jon-wood 11y agoI think its more a case that reviews after your first have a lot less manual intervention, they certainly seem to happen much faster after the initial review.
- dspillett 11y agoPerhaps having a debug feature is performing as expected? It certainly might be in some cases. I wouldn't expect a reviewer to reliably know the difference between diagnostic features deliberately present to help with remote support when people have issues and diagnostic features that should only be exposed to the developers.
- danlindley 11y agoPresumptions regarding 'performing as expected'. It can't fail!
- raverbashing 11y agoComing from Vine this is not surprising Probably the worse app I've seen on Android. Almost to the point of being unusable Instagram with videos probably took 95% of their initial users.
- vermooten 11y agoShit happens. Move on.
- anc84 11y agoDear god, what a horrific Twitter scraping site. Here is the actual source: https://twitter.com/MattNavarra/status/669211053188849664 https://twitter.com/MattNavarra/status/669211053188849664
- seba_dos1 11y agoThank you! That scraping site is completely unusable with privacy addons enabled.
- andy_ppp 11y agoIf your App is written in React Native or Cordova then code-push is your friend... https://github.com/Microsoft/react-native-code-push/ https://github.com/Microsoft/react-native-code-push/
- chrisan 11y agoThat looks/sounds awesome. Have you run into any negatives using it?
- frankiechh 11y agoYeah. JavaScript. Duh...
- frankiechh 11y agoSpam.
- axx 11y agoI'm sorry to be that guy, but if we had more "open" distribution ways for smartphones, something like this wouldn't have happend. Because they would have noticed it early on (to fix it) before anybody else would have. Now they have to wait before Apple approves their next update.
- tobyhinloopen 11y agoYou can request Apple to do a "fast" review to release an urgent update :)
- axx 11y agoHow does that work if everybody does it? I think Vine is a good position in this, since they're kinda "famous".
- Fradow 11y agoYou can request it. It doesn't mean the request will be accepted. Unless you are big, can demonstrate an external deadline, or have a bug with nasty consequences (it seems "app crash at launch" is not enough, I got a request denied for that), your request will probably be denied.
- frankiechh 11y agoMobile software != web site. Get over it. It's Apple's platform. Move on...
- frankiechh 11y agoGuess they hired the wrong iOSers...