Dear Aunt TUAW: Limiting distribution to faster iPods and iPhones
Dear Aunt TUAW,I'm an iPhone developer. My applications really need some computing *oomph*. How can I ensure that the app is only distributed on the iPhone 3GS or the iPod 3G or later?
Speaking of which, what exactly is the adoption rate of those newer, faster units? How can I find that out?
Love & Kissies,
Mr. Gando
Read on for Auntie's response...
Darling Gando,
Unfortunately, the iPhone device required capabilities do not provide a minimum CPU speed hook. These items are normally specified in the Info.plist file using the UIRequiredDeviceCapabilities key. Although you can specify that your application needs telephony services, access to a still camera or to GPS, or even peer-to-peer via Bluetooth, you cannot say "needs at least the computing power of a 3rd generation device." And that's a shame.
Hop on over to bugreport.apple.com (you'll need a free online developer account), and add a feature request! My radar number for this is 7302332. As I wrote in that request, applications should have the option of limiting sales, delivery, and installation based on device CPU/RAM performance. It's clear that the 3rd generation iPod and iPhone outperform the 1st (and to a degree, 2nd) generation units.
As for the adoption rates, I recommend you check out some of the iPhone analytics sites. Companies like Pinch Media and AdMob provide both free and paid reports. I don't have a link to a specific list of device-by-device breakdowns but I've read that YouTube Mobile uploads grew by 400% after the iPhone 3GS launch.
Warmly,
Auntie T
P.S. Don't forget to take extra Vitamin C and get your flu shots!
Share
Source: http://bugreport.apple.com/
Categories
Dear Aunt TUAW, I'm an iPhone developer. My applications really need some computing *oomph*. How can I ensure that the app is only...
Add a Comment
@agrippa (TUAW won't let me reply to my own post apparently):
Sure here's a couple of links explaining the issue:
http://www.iclarified.com/entry/index.php?enid=4935
http://www.taranfx.com/blog/iphone-privacy-is-your-iphone-spying-on-you-how-to-fix-it
Main site which has also a list of apps:
http://i-phone-home.blogspot.com/
Surely you can limit distribution to the 3GS and above by only compiling for armv7 instead of universal using the option in Xcode?
Older iPhones/iPods used armv6.
You actually can get the cpu speed using a c function based on sysctl. It works perfectly on the iPhone. I use it in my application, Gauge Mathematical Tool, for publishing benchmark scores to a score server along with cpu clock speed.
Here's the function:
#import
#import
(import these headers if you need to.)
int getProcessorFrequency()
{
int count ;
size_t size=sizeof(count) ;
if (sysctlbyname("hw.cpufrequency",&count,&size,NULL,0)) return 1;
return count;
}
The return value will be the cpu clock speed in hz. 600 mHz would be something like 600000000.
You can also get the ram size, like this:
int getRamSize()
{
int count ;
size_t size=sizeof(count) ;
if (sysctlbyname("hw.memsize",&count,&size,NULL,0)) return 1;
return count;
}
The return value will be in bytes.
One more function is useful, and it allows you to get the hardware model id of your device (i.e. iPhone2,1 or iPod3,1)
- (NSString *)hardwareModel
{
static NSString *hardwareModel = nil;
if (!hardwareModel) {
char buffer[128];
size_t length = sizeof(buffer);
if (sysctlbyname("hw.model", &buffer, &length, NULL, 0) == 0) {
hardwareModel = [[NSString allocWithZone:NULL] initWithCString:buffer encoding:NSASCIIStringEncoding];
}
if (!hardwareModel || [hardwareModel length] == 0) {
hardwareModel = @"Unknown";
}
}
return hardwareModel;
}
Hope that this helps you.
Sorry, the headers are sys/sysctl.h and sys/param.h.
Erica, if you're adding Radar bugs that aren't sensitive, you might also want to add them to the (still under-utilized) OpenRadar -- http://openradar.appspot.com/
Since Radar is only accessible to Apple folks, OpenRadar maintains a sort of mirror of bugs that have been made publicly available. You can even map the rdar: URL to OpenRadar, so that clicking on one of the ever-popular rdar:// URLs on an Apple mailing list will immediately direct you to OpenRadar to check if there's a public mirror of the bug.
If you put pinch media or other data collecting libraries in your app, I and many others will not purchase it. There are websites that list apps that embed this 'spyware' and this gives people a choice to not have their data network used and device (and therefore you personally) identifying data sent to 3rd party servers without their consent or knowledge.
October 14 2009 at 4:22 PM Report abuse Permalink rate up rate down ReplyHonzo, would you have links to those websites. My google-fu on this was weak. Thanks.
October 14 2009 at 5:01 PM Report abuse Permalink rate up rate down Replyor you could be less lazy and optimize your code so you dont need all that processing power. I know its hard to put effort and not use off the shelf API calls and call it a day so you can make a quick buck, but in the long run it'll give you more credibility as a publisher and allow you to reach a greater user base.
yeah I recently ran into this , when a user downloaded my app. The app only works on 2nd gen devices and we state that in the app store description too. But it would have been nice if the user could have just been cut off before the sale.
October 14 2009 at 4:05 PM Report abuse Permalink rate up rate down ReplyHot Apps on TUAW
Deals of the Day
more deals- Philips Fidelio Primo Speaker Dock for iPhone / iPod for $320 + $6 s&h
- miFrame Picture Frame Dock for iPad for $64 + $8 s&h
- Refurb Apple iPod nano 8GB MP3 Player for $99 + free shipping, 16GB for $119
- Hannspree Apple-Shaped 28" 1080p LCD HDTV for $270 + free shipping
- Philips wOOx Alarm Clock Radio for Apple iPod / iPhone for $60 + free shipping
- iWatchz Elemetal Collection Bracelet for iPod nano for $75 + free shipping
Software Updates
more updates- EFI Firmware Update brings Lion Internet Recovery to 2010-model Macs
- OS X Lion 10.7.3 released with Safari 5.1.3, Wi-Fi bug fix
- Aperture updated to 3.2.2, addresses Photo Stream issue
- Apple updates Keynote to address Lion issues
- Google Search app gets new look on iPad
- Apple releases Apple TV Software Update 4.4.3



12 Comments