如何为 iTunes Connect 分发创建通用二进制文件?

问题描述:

我创建了一个应用被拒绝,因为 Apple 说我的应用没有显示正确的 iPad 窗口,它显示相同的 iPhone 屏幕,但左上角对齐.

I created an app that was rejected because Apple say that my App was not showing the correct iPad window and it was showing the same iPhone screen but top left aligned.

在模拟器上运行,我让我的应用程序准确显示它应该显示的内容,一个大的 iPad 视图.

Running on simulator, I get my App to show exactly what it should, a big iPad View.

我的应用作为 Apple 裁判显示在设备上:

my app as Apple referees that is showing on device:

替代文字 http://www.balexandre.com/temp/2010-04-22_0939.png

我的应用运行模拟器(仅 50% 缩放):

my app running the simulator (50% zoom only):

替代文字 http://cl.ly/cCH/Screen_shot_2010-04-22_at_09.40.24.png

我在应用程序委托中的代码是我之前发表过

my code in the Application Delegate is the one I published before

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    

    // The default have the line below, let us comment it
    //MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];

    // Our main controller
    MainViewController *aController = nil;

    // Is this OS 3.2.0+ ?
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= 30200

    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
            // It's an iPad, let's set the MainView to our MainView-iPad
        aController = [[MainViewController alloc] 
                              initWithNibName:@"MainView-iPad" bundle:nil];
    else 
            // This is a 3.2.0+ but not an iPad (for future, when iPhone/iPod Touch runs with same OS than iPad)
        aController = [[MainViewController alloc] 
                              initWithNibName:@"MainView" bundle:nil];

    #else
        // It's an iPhone/iPod Touch (OS < 3.2.0)
        aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
    #endif

    // Let's continue our default code 
    self.mainViewController = aController;
    [aController release];

    mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
    [window addSubview:[mainViewController view]];
    [window makeKeyAndVisible];

    return YES;
}

关于我的目标信息,我有 iPhone/iPad

on my target info I have iPhone/iPad

替代文字 http://cl.ly/cwB/Screen_shot_2010-04-22_at_09.33.12.png

我的问题是,我应该如何构建应用程序?

My question is, how should I build the app?

  • 使用基础 SDK
  • iPhone 模拟器 3.1.3
  • iPhone 模拟器 3.2

我的活动配置是 Distribution,活动架构是 arm6

my Active Configuration is Distribution and Active Architecture is arm6

已经将应用发布到 iTunes Connect 的任何人都可以向我解释设置吗?

Can anyone that already published app into iTunes Connect explain me the settings?

PS 我遵循了 创建和下载开发配置文件 上关于构建和安装开发应用程序 的开发人员指南,但没有对此发表任何意见,正如我所做的那样,该应用程序被拒绝了.

P.S. I followed the Developer Guideline on Building and Installing your Development Application that is found on Creating and Downloading Development Provisioning Profiles but does not say anything regarding this, as I did exactly and the app was rejected.

事实证明,在将项目发送给 Apple 支持后,他们回复说这可能是一个错误,我应该重新编译并再次发送.

it turns out that, after sending the project to Apple Support they reply saying that could be a mistake, that I should recompile and send it again.

这样做了,我的应用程序获得批准.

但我可以在这里告诉我,您应该如何从我从 Apple 开发人员技术支持收到的电子邮件中将您的应用编译到 AppStore(Apple 审核团队)

But I can just tell here, how you should compile your app to the AppStore (Apple Review Team) from the email I got from Apple Developer Technical Support

按照以下步骤构建可在 iPad 和 iPhone 上运行的通用应用程序:

Follow these steps to build a universal application that will run on both iPad and iPhone:

  • 将基础 SDK 构建设置(在架构部分)设置为 iPhone SDK 3.2.
  • 将 iPhone OS 部署目标构建设置设置为 iPhone OS 3.1.3 或更早版本.
  • 将目标设备系列构建选项设置为 iPhone/iPad.
  • 确保您的架构构建设置同时使用 armv6 和 armv7.
  • 将 Active SDK 设置为 iPhone 设备 3.2,选择您的分发配置,构建(选择构建按钮)您的应用程序,然后提交应用程序审核.

我希望这能帮助别人,因为它帮助了我:)

I hope this helps someone as it helped me :)

已添加(为两个应用指定图标)

替代文字 http://cl.ly/11AF/Screen_shot_2010-05-10_at_15.37.51.png

如上图所示,只需添加一个名为 CFBundleIconFiles 的新属性并添加 2 个图标,Array (0) 用于 iPhone 图标,Array(1) 用于 iPad图标.

As you can see for the image above, just add a new property called CFBundleIconFiles and add the 2 icons, the Array (0) is for iPhone Icon, the Array(1) is for iPad icon.

请记住将默认的 Icon file 属性保留给 iPhone,以便与旧版本的操作系统兼容.

Remember to leave the default Icon file property to the iPhone for back compatibility with old versions of the OS.

记得为两个应用指定正确的尺寸:

remember to specify the correct sizes for both apps:

  • iPhone 图标:57 x 57 像素
  • iPad 图标:72 x 72 像素
  • iPhone icon: 57 x 57 pixels
  • iPad icon: 72 x 72 pixels