marcoarment / BugshotKit

iOS in-app bug reporting for developers and testers, with annotated screenshots and the console log.
MIT License
1.36k stars 138 forks source link

Consider removing the "attentionClassDumpUser:" safety feature. #27

Open jaredsinclair opened 10 years ago

jaredsinclair commented 10 years ago

Although it's a clever way to prevent people from shipping BugshotKit to the AppStore, the "class dump" private API reference creates additional hassle for developers. In order to exclude BugshotKit from App Store build configurations, we have several unappealing choices:

1) Manually create a static library every time master is updated, which makes it likely that the Bugshot library will become outdated compared to the current master branch. (I just discovered mine was 41 commits behind.)

2) Configure the Xcode project to include a freshly-built static library as a target dependency, which is not as straightforward a process as it should be. I'm not sure it's even possible to do this on a per-build-config basis.

3) Add a separate target for dev/beta builds.

4) Manually add/remove the source .h and .m files when submitting to the App Store.

It's much simpler and cleaner to include BugshotKit dynamically, leaving it up to the developer to exclude BugshotKit from release build configurations however she sees fit, perhaps with preprocessor macros. This isn't possible while the "class dump" safety feature is still around.

mmcdole commented 9 years ago

This is also preventing us from submitting our app to beta testers via TestFlight. Now that we have to submit our builds for TestFlight through Apple, they reject our binary.

screen shot 2014-11-16 at 9 30 17 pm copy

jaredsinclair commented 9 years ago

I forked BugshotKit and removed that code. I also added an additional trigger: double-tap of the hardware volume buttons. https://github.com/jaredsinclair/BugshotKit

chadmoone commented 9 years ago

:+1: In light of the new Apple beta testing scheme, we have had to transition the way we toggle our test environment configuration (since beta builds are now effectively release builds). Given the new system, this safety feature makes it too difficult to use.