2010-04-17 8 views
2

Utilisation du Pre Release Xcode 3.2.3 Je reçois cela comme un projet de démarrageComment démarrer un projet avec les deux sorties iPhone & iPad?

alt text http://www.balexandre.com/temp/2010-04-17_1155.png

Que dois-je choisir/faire pour grand projet qui peut avoir à la fois l'iPad et l'iPhone comme une cible (ne pas montrer l'application iPhone sur iPad mais un vrai iPad Voir)?

Merci.


Pour éviter les problèmes:

  • iPhone OS 3.1.3 est la dernière version sur iPhone
  • iPhone OS 3.2 est la dernière version sur iPad

Ma question ne viole aucun accord que moi et Apple sommes tenus de, car ma question concerne ces communiqués déjà publics.

Je viens de dire que sur mon système d'exploitation, je cours le Xcode 3.2.3, c'est tout.

+0

Cette information est sous NDA par Apple. Vous ne devriez pas poser de questions publiques à ce sujet, et personne ici ne peut légalement répondre aux questions à ce sujet. –

+0

@Claus, en cours d'exécution iPad et iPhone est PUBLIC que vous pouvez le faire déjà avec iPhone 3.1.3 et iPad 3.2, je viens de dire que mon XCode est la version 3.2.3! Comme le déclare KennyTM, le 3.2 est publié au public (c'est l'iPad OS) !!! – balexandre

+1

duplication possible de http://stackoverflow.com/questions/2547315/what-are-the-build-settings-for-a-universal-iphone-and-ipad-application – kennytm

Répondre

11

ont simplement trouvé un moyen simple:

alt text http://www.balexandre.com/temp/2010-04-17_1242.png

alt text http://www.balexandre.com/temp/2010-04-17_1241.png

Ensuite, si vous voulez passer des fichiers XIB par appareil, disons, le MainView pour iPhone est A et le MainView pour l'iPad est B, dans votre AppDelegate vous ajoutez ceci:

- (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 runs with same OS than iPad) 
     aController = [[MainViewController alloc] 
           initWithNibName:@"MainView" bundle:nil]; 

    #else 
     // It's an iPhone (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; 
} 
+0

vous n'avez pas besoin de cette merde '#if __IPHONE_OS_VERSION_MAX_ALLOWED> = 30200'. Tant que vous utilisez Base SDK 3.2, 'UI_USER_INTERFACE_IDIOM()' fonctionnera correctement sur les appareils pré-3.2 – user102008

0

Vous pouvez choisir le type d'application comme "universel".

+0

si vous regardez mieux et la question, c'est plutôt comment mettre à niveau une application iPhone existante vers une application universelle. – balexandre

+1

Désolé mon erreur. Je vais aller avec toi pour ça. – Akshay