如何configurationiOS应用程序以在特定设备上工作?

我正在开发用于QR码扫描的ZBar SDK的iOS应用程序。 这里ZBar SDK的创造者告诉我们

只有iPhone 3GS和iPhone 4支持,因为他们有一个自动对焦相机。 ZBar库不支持iPhone 3G,不太可能支持它。

所以我把auto-focus-camera键添加到了我的plist的Required Device Capabilities部分。 除了一件事情之外,所有的都很棒 – iPad 2和iPod Touch 4th Gen没有自动对焦相机,但仍然可以使用我的ZBar SDK代码扫描QR码。 但是我的auto-focus-camera键不允许iPad 2和iPod Touch 4th Gen的用户从App Store下载我的应用程序。

换句话说,我需要find一种方法,使我的应用程序可以通过App Store在这些设备上安装:

  1. iPhone 3GS。
  2. iPhone 4。
  3. iPhone 4S。
  4. iPad 2。
  5. 新的iPad。
  6. iPod Touch第四代

而在这些设备上,我的应用程序不应该可用:

  1. iPhone 2G。
  2. iPhone 3G。
  3. iPad兼容。
  4. iPod Touch三代和

我的问题是:如何使我的应用程序在App Store中可用于第一个列表设备的用户,而不可用于第二个列表设备的用户?

任何帮助将不胜感激!

PS:我已经看到了这个问题 ,但对我没有多大帮助。

PS2: 这个应用程序有所需的一套可用设备。

要求:与iPhone 3GS,iPhone 4,iPhone 4S,iPod touch(第四代),iPad 2 Wi-Fi,iPad 2 Wi-Fi + 3G,iPad(第三代)和iPad Wi-Fi + 4G兼容。

有谁知道,他们是怎么做到的?

PS3:同时添加still-cameraauto-focus-camera 给我们这样的 :

要求:与iPhone,iPod touch(第四代),iPad 2 Wi-Fi,iPad 2 Wi-Fi + 3G,iPad(第三代)和iPad Wi-Fi + 4G兼容。

只要我们所有的iPhone都适合我们的应用程序,而不是3GS,4和4S,这并不是一个好方法。

PS4:我的应用程序在这里 ,它有这样的要求:

要求:与iPhone 3GS,iPhone 4和iPhone 4S兼容。

Word Lens需要armv7opengles-2video-camera设备function。

我不确定你能做到这一点

也许你可以检查你的代码,如果设备模型不是好的,只是popup一个新的视图,说用户正在使用的模型不能使应用程序工作?

你可以用这个来检测模型:

 #import <sys/utsname.h> NSString* machineName() { struct utsname systemInfo; uname(&systemInfo); return [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding]; } 

并给出:

 @"i386" on the simulator @"iPod1,1" on iPod Touch @"iPod2,1" on iPod Touch Second Generation @"iPod3,1" on iPod Touch Third Generation @"iPod4,1" on iPod Touch Fourth Generation @"iPhone1,1" on iPhone @"iPhone1,2" on iPhone 3G @"iPhone2,1" on iPhone 3GS @"iPad1,1" on iPad @"iPad2,1" on iPad 2 @"iPhone3,1" on iPhone 4 @"iPhone4,1" on iPhone 4S 

否则,你可以尝试发送电子邮件给苹果

我们需要在应用程序的plist的Required Device Capabilities部分使用video-camera键。