Discussion Forums  >  Uncategorized

Replies: 30    Views: 691

cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
03/19/11 10:50 AM (14 years ago)

App Rejection

My buzztouch app has been rejected from the app store because it does not meet the standards for Reachability. My app frequently looks to the internet to get information, such as my video links, custom html, etc. When there is no internet connectivity available, the app will obviously not load certain features other than the app's menus. According to Apple's reachability standards, there needs to be a notification that internet connectivity is currently non-existent. I have tried finding a way to simply modify my Buzztouch XCode files to make a No Internet prompt pop up. However, I have NO CLUE how to do this. And online tutorials aren't helping because my Buzztouch project files are vastly different than many of the basic examples I have seen out there. Are there any suggestions as to how to incorporate this simple feature so I can get my app approved?
 
elaine
buzztouch Evangelist
Profile
Posts: 385
Reg: Dec 26, 2010
Ireland
3,850
like
03/19/11 10:56 AM (14 years ago)
No clue either. Could you do it the other way and put the videos into xcode so they get loaded onto the phone when the app is installed?
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 11:07 AM (14 years ago)
Well the problem with that is my app is an educational app and the number of videos I want to add is indefinite. They are also approximately 20 MB videos, and I don't want my app size to skyrocket. I'm also using lots of custom HTML and have spent hours getting it all in place on buzztouch. Everything had worked seamless until now. All I need is a popup telling the user Internet isn't active. Sigh. Frustrating.
 
elaine
buzztouch Evangelist
Profile
Posts: 385
Reg: Dec 26, 2010
Ireland
3,850
like
03/19/11 11:08 AM (14 years ago)
aha ok. Hope you get it sorted so :)
 
erichopf
buzztouch Evangelist
Profile
Posts: 316
Reg: Mar 14, 2011
NY, NY
3,460
like
03/19/11 11:20 AM (14 years ago)
cking2729, Have you tried building out an app with a page of each type of content you want, but not put any details, basically blank? When I did that, the photos I was trying to call for didn't exist and a default image came up. No sure if the same image would come up in the video page, but worth a shot. If you could locate those, and use an image software like Photoshop or GIMP, you could add type info to those images to alert the user that there is no internet connection. It's a hack way, but might get it approved until a long term solution such as a java window popping up to alert the end user. Best of Luck Eric
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 11:24 AM (14 years ago)
That's a great idea. I had my hopes set that it'd be easier though. Apple provides the code to do a notification. I just have no idea where to go add it once my buddyouch project is open in Xcode.
 
erichopf
buzztouch Evangelist
Profile
Posts: 316
Reg: Mar 14, 2011
NY, NY
3,460
like
03/19/11 11:43 AM (14 years ago)
I thought my approach would be easier then rooting around in the code. I understand a little a bit of Visual C and some other languages, but if you alter one image that resides in your app, that would be an easy way to do it.
 
David @ buzztouch
buzztouch Evangelist
Profile
Posts: 6866
Reg: Jan 01, 2010
Monterey, CA
78,840
like
03/19/11 12:08 PM (14 years ago)
Hi guys... there are few problems with this situation. Some of them are related to Apple's mysterious rules and opinions - they are very arbitrary. Others are related to the the buzztouch source itself. We agree that the app should show some sort of message if it can't get the content. Makes perfect sense. @cking2729 - you're not going to be able to easily 'show a message' when the internet is not available. it's far more complex than that. There are thousands of lines of code that make the magic happen and figuring out where to put the message is a daunting task for an non-programmer. This doesn't mean the code is 'vastly different' than samples you see online, it only means that the samples you'll dig up on Google are snipptes of code without any context, not software. The source-code you download from your control panel is a complex peice of software, not a code-snippet and as such it's tough to figure out. So... the debate revolves around finding the best solution. We for sure will keep working out a plan to both accomplish what we are trying help you do and satisfy the 'message' guideline that comes up sometimes.
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 02:18 PM (14 years ago)
I figured it out. I imported the the .h and .m files provided by Apple's Reachability sample code into the source and config folders that are downloaded from Buzztouch. After adding a few lines of code to Buzztouch's ScreenController .h and .m files, I had a prompt informing me internet was not available. I confirmed this working on both my iPhone 4 with/without airplane mode activated, as well as my WiFi iPad.
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 04:27 PM (14 years ago)
cking2729, would you mind providing more details to do this please. David, would you please consider building something permanent into the buzz touch code for 1.4 and 1.5. I am afraid many of us are flying by the seat of our pants and to be honest, the advanced programming is a bit beyond the joy of using your great tool. Please make your tool even greater by helping us past this hurdle.
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 04:59 PM (14 years ago)
cking2729, would you mind providing more details to do this please. David, would you please consider building something permanent into the buzz touch code for 1.4 and 1.5. I am afraid many of us are flying by the seat of our pants and to be honest, the advanced programming is a bit beyond the joy of using your great tool. Please make your tool even greater by helping us past this hurdle. I tried the following so far but need some help on where to put the files to make them work with my buzztouch project. 1) get the reachability app from apple (I used version 2.2 from apple) http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html 2) open the Reachability project in xcode 3) under classes, edit the ReachabilityAppDelegate.m file and edit the host form www.apple.com to www.yourdomain.com (I tested with www.blogspot.com) for example 4) Run the project after building it in xcode on the simulator of your choice 5) It will tell you if the destination could be reached or not. The reachability project runs ok on the simulator but... 6) Ok, so now I need some tips on where to put the files into my buzztouch project source. I assume I would only need the following files only but not sure? Any step by step instructions on additional edits appreciated. a) ReachabilityAppDelegate.h b) ReachabilityAppDelegate.m c) Reachability.h d) Reachability.m
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 05:13 PM (14 years ago)
Open the folder you downloaded from buzztouch. I copied the following from Apple's Reachability example into the downloaded buzztouch 'config' and 'source' folders. ReachabilityAppDelegate.h ReachabilityAppDelegate.m Reachability.h Reachability.m Then in Xcode, with the buzztouch project open, I expanded ScreenControllers folder. You should see folders for Application, as well as the various screens you may have added for your buzztouch app to use. Inside the Application folder, I brought up AppViewController.h and added #import Reachability.h below of the rest of the #import declarations. Save that file. Then in the AppViewController.m file, I added the following code directly below the last @synthesize line: -(void)viewDidLoad { Reachability *r = [Reachability reachabilityWithHostName:@http://www.google.com]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)){ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@No Internet message:@Please have an active internet connection for full functionality delegate:self cancelButtonTitle:@OK otherButtonTitles:nil]; [alert show]; [alert release]; } } Save file. And that's it. Your main application window should now display a message if you have no internet connectivity. To make it work for your other screens, simply repeat the same steps for those folders. For example, I also have a Screen_SubMenu and Screen_ShareFacebook folder that are active. I wanted the message to appear for them. Therefore, I made the exact same modifications to the ViewController.h and .m files within each of those folders. On a side note. You can change the message that appears by altering what's in quotations in the code snippet. Instead of saying Please have an active internet connection for full functionality, you may want something simpler like Internet Unavailable.
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 05:21 PM (14 years ago)
Great cking2729, I will try this out soon. :-)
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 06:35 PM (14 years ago)
Hi again ckin2729. Everything went ok until I pasted your code snippet into the AppViewController.m file. Did I paste it in the wrong place perhaps? //other code not shown.... @synthesize localDataFileName, remoteDataCommand, progressView; //i pasted your code here. -(void)viewDidLoad { Reachability *r = [Reachability reachabilityWithHostName:@http://www.google.com]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)){ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@No Internet message:@Please have an active internet connection for full functionality delegate:self cancelButtonTitle:@OK otherButtonTitles:nil]; [alert show]; [alert release]; } } //other code not shown....
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 06:43 PM (14 years ago)
Sorry about that Miereter. It just occurred to me that this forum takes out the quotation marks in posts. So my snippet didn't appear correctly where there should be quotations. The http://www.google.com should be entirely in quotations. Also, the No Internet should be in quotations, as well as Please have an active internet connection for full functionality. And finally, the OK after the @ should be in quotes. That should fix any errors....
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 06:59 PM (14 years ago)
Dear cking2729. Thanks for your patience in showing me. I have one error left complaining about unexpected @ just before @No Internet Message -(void)viewDidLoad { Reachability *r = [Reachability reachabilityWithHostName:@http://www.google.com]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)){ UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@No Internet message:@No internet connection! delegate:self cancelButtonTitle:@OK otherButtonTitles:nil]; [alert show]; [alert release]; } }
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 07:05 PM (14 years ago)
Looking at your code, you are missing an @ after No Internet message: the code should read: initWithTitle:@ OPEN QUOTES No Internet CLOSE QUOTES message:@ OPEN QUOTES No internet connection! CLOSE QUOTES
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/19/11 07:19 PM (14 years ago)
It works! Thanks so much, it is very kind of you to help out! I really appreciate your assistance. I do wish that buzztouch would build this in for us, so we don't have to mess with it for every app and screen where we need it.
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/19/11 07:34 PM (14 years ago)
Sure thing! I'm glad it got worked out. I was starting to go into a panic thinking my weeks of hard work was going to be for not because of a lousy reachability issue!
 
David @ buzztouch
buzztouch Evangelist
Profile
Posts: 6866
Reg: Jan 01, 2010
Monterey, CA
78,840
like
03/20/11 12:25 AM (14 years ago)
@cking2729 awesome help - thanks tons for this! I didn't realize you were trying to do something 'so simple' and kudo's for workign this solution. It's not tough at all to add a simple alert regarding the 'internet not available' but that wasn't the approach I was thinking. There are many many times when the internet is 'not available' but the app continues to work. This is because lots of screens use previously cached data for exactly this reason. So... alerting the user that they have no internet available isn't always appropriate (in our opinion). Consider this... a user loads up a handy-dandy trail guide at home and browses a bunch of cool trail images. Then, he sets of into the mountains where there is no internet. The idea that the app would alert him everytime he tapped something (because he has no internet, and he knows he has no internet) doesn't seem appropriate. It's these types of ideas and situations that make it a more difficult problem to solve across tens of thousands of apps. Yes, that many run this source code. @Miereter We'll get it worked out but dont' plan anymore changes to v1.4. We've spent countless hours (as you know) on the latest release and do plan to finalize a design for the 'no network message' for that version. We'll have the v1.4 to v1.5 converter done soon too so you can begin converting existing app to v1.5 and take advantage of the features. You guys rock for tinkering this much - love it!
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/20/11 06:24 AM (14 years ago)
Thanks David, looking forward to it. The cases you mention are ofcourse important and makes sense. I myself have a nav app witch cached maps for offline use and you are right, it would not be appropriate to alert about no internet when it is not currently needed by the user. Thanks for your explanations and we look forward to your solution. Thanks Again the cking2729 for the interim solution. I am waiting on my first app approval/rejection and it would be 'funny' if they approve it without this check..we shall see.
 
ianJamesPiano
Code is Art
Profile
Posts: 2661
Reg: Feb 13, 2011
Palm Springs, C...
37,010
like
03/20/11 04:41 PM (14 years ago)
cking2729, did you put in the app description that your app requires an internet connection? that's all i did and was approved.
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/20/11 04:59 PM (14 years ago)
yes i did. i put at the very end of my app description that most functionality requires an active internet connection. from what i've read, the app review process is very subjective. there are hundreds of app on the app store that rely on internet, yet never give any kind of alert. but reachability appears to be something they are becoming more and more stringent about. i re-submitted my app for approval yesterday with very user-friendly reachability notifications. we shall see how it goes.....
 
David @ buzztouch
buzztouch Evangelist
Profile
Posts: 6866
Reg: Jan 01, 2010
Monterey, CA
78,840
like
03/21/11 12:03 AM (14 years ago)
@cking2729 - exactly right, we too think Apple is focussing on this issue recently. After tens of thousands of these (yes, that many), we've gained a unique perspective about their approval / rejection process. Of course we don't know any secrets, but for sure we've seen, tracked, and documented some interesting trends. One of the most obvious - Apple seems to key on a some issues / topics, work them for awhile (recently it's Reachability, Push Notifications with Spam, and Location Aware apps that don't tell the user 'nicely' that they may be being tracked). After awhile, a new, 'more important' topic will come to the forefront, pushing the previously 'hot' issue to the background again. Making sense of it all is like a sport!
 
G8torBrent
Aspiring developer
Profile
Posts: 27
Reg: Mar 04, 2011
location unknow...
270
like
03/21/11 06:24 AM (14 years ago)
@cking2729 First off, you rock. Second, you mentioned in your solution that you copied Apple's reachability sample files ( ReachabilityAppDelegate.h ReachabilityAppDelegate.m Reachability.h Reachability.m )to BOTH your source folder and config folder. There's already a Reachability.h and Reachability.m in my existing source folder from Buzztouch and looking at both of them in xcode, the files are substantially different. Overwrite? Anyone who can let me know, I'd appreciate it.
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/21/11 06:30 AM (14 years ago)
Hey G8torBrent, I did an overwrite of the current reachability files. I didn't look closely at the reachability files that came with the buzztouch download, but my code requires Apple's newest reachability files to be there. Hope this helps.
 
G8torBrent
Aspiring developer
Profile
Posts: 27
Reg: Mar 04, 2011
location unknow...
270
like
03/21/11 06:36 AM (14 years ago)
Yes, thanks. Did you put all four files in both the source and config folders?
 
cking2729
Aspiring developer
Profile
Posts: 17
Reg: Mar 12, 2011
Texas, USA
170
like
03/21/11 06:45 AM (14 years ago)
Sure did. Just for good measure, I copied all files to both locations because I wasn't sure what I was going to need or not at the time. To be quite honest, I don't believe the AppDelegate files have any purpose. But if everyone wants to know *exactly* what I did, that would be it! :)
 
Miereter
Apple Fan
Profile
Posts: 154
Reg: Feb 21, 2011
USA
1,540
like
03/21/11 06:47 AM (14 years ago)
Hi G8torBrent. In my case when I reviewed cking2729's advice, keep in mind you really only should do it for a version 1.4 buzztouch application. Version 1.5 buzztouch apps do not require this treatment, it already has an error alert that alerts the used that no internet could be found. (In 1.5, it is not a pop-up mindyou, but should satisfy apple). Yes, I too copied the version 2.2 reachability code from apple to both source and config folders, and yes, overwrite the files already there. As David pointed out, it may not be ideal for all use cases ie think of a hiker-map application where the user intentially turns off wi-fi, then goes on his hike and want to look at his cached maps but now the pop-up about no internet 'bothers' him when he is well-aware he has not connection. Ultimately, instead of messing around with version 1.4 and the hassle of this manual workaround, I decided to re-create my app as a buzztouch 1.5 app and no code editing required. I do hope that buzztouch will refine the somewhat scary (for some users) ios error about no internet, and instead also use a friendly pop-up message. Hope this helps.
 
G8torBrent
Aspiring developer
Profile
Posts: 27
Reg: Mar 04, 2011
location unknow...
270
like
03/21/11 06:51 AM (14 years ago)
Great feedback cking2729 and Miereter. I'm not an early adopter (this is my first app/apps using BT) so I wasn't working with 1.5. Thanks SO much you guys. (Or in the case of cking2729, y'all...I can say that; my wife is from Texas.)
 
G8torBrent
Aspiring developer
Profile
Posts: 27
Reg: Mar 04, 2011
location unknow...
270
like
04/01/11 07:20 AM (14 years ago)
Thank you SO much for posting your problem and solution. I incorporated your reachability snippets and thanks to your sharing, my app got approved in less than a day (a week if you count the waiting for review period). Thanks Buzztouch community!
 

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.