web-dev-qa-db-fra.com

Les applications WatchKit doivent avoir un objectif de déploiement égal à iOS 8.2 (au lieu de 8.3)?

Je viens de télécharger Xcode 6.3 beta 4, et mon application WatchKit ne parvient plus à se construire avec une erreur:

Embedded Binary Validation Utility Error
error: WatchKit apps must have a deployment target equal to iOS 8.2 (was 8.3)

L'application iOS et le projet ont en fait un objectif de déploiement de 7.1 et l'ont toujours fait, mais nous avons travaillé avec le SDK iOS 8.3 pour notre composant WatchKit (en utilisant Swift 1.2) sans problème en utilisant Xcode 6.3 beta 1, 2 et 3. Cette erreur ne s'est produite qu'avec Xcode 6.3 beta 4.

Quelqu'un d'autre a cette erreur et sait comment la corriger?

65
UberJason

Sélectionnez les paramètres de votre projet et accédez à "CIBLES". Cliquez sur votre application Watch Kit, sélectionnez Build Settings. Pour la clé "iOS Deployment Target", vous devriez trouver "iOS 8.3". Pour une raison quelconque, Xcode 6.3 Beta 4 veut avoir ceci sur "iOS 8.2" pour "Debug" et "Release". Votre projet devrait maintenant se construire comme prévu.

Cela est toujours vrai pour la version XCODE 6.3!

100
netshark1000

Target -> "appName" Watch Kit App -> search Deployment -> change iOS Deployment Target on iOS 8.2 -> run enter image description here

38
Iraklii

Je me suis lancé moi-même. Cela ressemble à un bogue dans Xcode 6.3 beta 4.

J'ai analysé le project.pbxproj fichier (en mode texte) d'un projet fraîchement créé avec une extension WatchKit. Il semble qu'il y ait un paramètre:

IPHONEOS_DEPLOYMENT_TARGET = 8.2;

... qui manque dans nos projets créés avec des versions antérieures de Xcode.

J'ai donc copié manuellement ce paramètre dans les configurations de débogage et de publication de mon projet. Cette erreur a disparu.

J'ai ensuite reçu une autre erreur concernant une incompatibilité de version entre mon application et la cible de l'application WatchKit. La correction de cette incompatibilité de version a permis à la build de compiler propre et de fonctionner correctement.

Je sais que c'est un peu hacky, mais je suppose que c'est relativement sûr.

Lors de la recherche dans le fichier project.pbxproj, vous souhaiterez faire correspondre ce terme de recherche: "_WatchKit_Extension". Cela devrait identifier la zone près de laquelle la nouvelle instruction devrait être ajoutée.

Fil de discussion dans les forums Apple:

https://devforums.Apple.com/thread/266033?tstart=

Extrait d'un nouveau projet:

4F9F32751AC2024F00673D86 /* Debug */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                GCC_PREPROCESSOR_DEFINITIONS = (
                    "DEBUG=1",
                    "$(inherited)",
                );
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Debug;
        };
        4F9F32761AC2024F00673D86 /* Release */ = {
            isa = XCBuildConfiguration;
            buildSettings = {
                ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
                IBSC_MODULE = Bogus_WatchKit_Extension;
                INFOPLIST_FILE = "Bogus WatchKit App/Info.plist";
                IPHONEOS_DEPLOYMENT_TARGET = 8.2;
                PRODUCT_NAME = "$(TARGET_NAME)";
                SKIP_INSTALL = YES;
                TARGETED_DEVICE_FAMILY = 4;
                "TARGETED_DEVICE_FAMILY[sdk=iphonesimulator*]" = "1,4";
            };
            name = Release;
        };
16
Daniel

Étonnamment encore vrai en 6.4 ;-)

Tous les objectifs doivent être fixés à 8,2

2
Jim Malak

J'étais confronté au même problème "iOS Deployment Target '8.3' is newer thatn SDK 'iOS 8.2' in target YUOR_PROJECT WatchKit Extension "

Voici une solution simple à ce problème. Vous pouvez modifier la cible à partir de .xcodeproj, suivez simplement les étapes ci-dessous:

  1. Faites tout changement dans votre projet ou fichier plist (changez Build/version),
  2. Sélectionnez votre fichier de projet modifié
  3. Trouvez '8.3' (Command + F) et remplacez-le par 8.2.
  4. J'ai joint un fichier pour référence.

C'est ça.

Cela vous aidera si vous avez le même problème que le mien.

enter image description here

1
Ashvin Ajadiya

Accédez à Target -> Sélectionnez Watch Kit App, sous la valeur de changement de déploiement de 8.3 à

//: configuration = Debug IPHONEOS_DEPLOYMENT_TARGET = 8.2

//: configuration = Release IPHONEOS_DEPLOYMENT_TARGET = 8.2

Nettoyez et construisez. Problème résolu!

0
Suhail Bhat

A rencontré le même problème dans le simulateur avec Xcode 7.3.1 et pourrait le résoudre en allant sur l'application, puis sur la cible de déploiement Watch OS, vous pouvez choisir une version inférieure en fonction de votre montre. J'espère que cela vous aidera.

0
IsPha