2017-03-14 1 views
1

Nous développons un framework iOS, principalement dans Swift avec une pincée d'Objective-C.Choisir Info.plist échoue silencieusement - quelle peut être la raison?

Quelque part le long de la ligne, nous avons apparemment perdu la connexion entre le projet resp. son objectif principal et son Info.plist:

enter image description here

C'est la cible principale. Nous avons seulement remarqué que le framework construit n'incluait pas l'Info.plist, une application fictive rapidement créée pour jouer avec notre framework n'a pas du tout plu.

Toutefois, le choix du fichier échoue. Je peux sélectionner le fichier dans cette boîte de dialogue:

enter image description here

Mais avec la confirmation « Choisissez » n'a pas d'effet. Dans le fichier pbxproj, je vois des entrées comme

<hash> /* Debug */ = { 
     isa = XCBuildConfiguration; 
     buildSettings = { 
      ... 
      DEFINES_MODULE = YES; 
      ... 
      INFOPLIST_FILE = "$(SRCROOT)/hcl/Info.plist"; 
      "INFOPLIST_FILE[sdk=*]" = ""; 
      INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 
      IPHONEOS_DEPLOYMENT_TARGET = 10.2; 
      ... 
     }; 
     name = Debug; 
    }; 

qui semblent tout à fait raisonnables. Le fichier Info.plist semble lui aussi être valide; XCode montre joyeusement la vue de la table quand je l'ouvre.

Mais l'onglet Info reste vide et aucun Info.plist ne se retrouve dans le framework. La définition du "fichier Info.plist" dans la section "Empaquetage" des paramètres du projet sur le même chemin n'aide pas non plus.

Quelle peut être la raison de cela? Comment pouvons-nous obtenir Info.plist dans notre cadre?


side note "Fun": J'ai essayé de contourner le problème en ajoutant Info.plist à la section "Ressources Bundle copie" de "Build phases". Effectivement, nous obtenons le Info.plist dans le cadre et l'application utilisant est satisfaite. Cependant, nos essais ne courent plus:

xctest[7779:90709] The bundle “hclTests” couldn’t be loaded because it is damaged 
    or missing necessary resources. 
Try reinstalling the bundle. 

xctest[7779:90709] (dlopen_preflight(/path/to/hclTests): 
    Library not loaded: @rpath/hcl.framework/hcl 
    Referenced from: /path/to/Build/Products/Debug-iphonesimulator/hclTests.xctest/hclTests 
    Reason: no suitable image found. Did find: 
     /path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl: 
      required code signature missing for 
      '/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl' 

/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl: 
    required code signature missing for '/path/to/Build/Products/Debug-iphonesimulator/hcl.framework/hcl' 

Program ended with exit code: 82 

Merci pour ce message très utile, XCode. Il m'a fallu seulement trois heures pour comprendre un fichier copié causé cela.

Répondre

0

Il y avait un cadre de construction:

"INFOPLIST_FILE[sdk=*]" = ""; 

Je ne sais pas d'où il vient, mais il semble passer outre

INFOPLIST_FILE = "module/Info.plist" 

et provoquant le chaos silencieux.

La suppression du paramètre ci-dessus résout le problème.