web-dev-qa-db-fra.com

Cadres dynamiques iOS8 -> Erreur CodeSign: la signature de code est requise pour le type de produit «Framework» dans le SDK «iOS 8.3»

J'utilise les cadres dynamiques iOS8 que je crée moi-même et que j'associe à mon application iOS. Cela fonctionnait bien dans le simulateur et sur l'appareil, mais lorsque j'essaye d'archiver une version Release pour cela, je reçois toujours cette erreur:

Erreur de signe de code: aucun profil d'approvisionnement correspondant trouvé: aucun des profils d'approvisionnement valides n'a autorisé les droits d'accès spécifiés: com.Apple.developer.ubiquity-kvstore-identifier, keychain-access-groups, com.Apple.developer.icloud-container-identifiers , com.Apple.developer.icloud-services, com.Apple.security.application-groups, com.Apple.developer.ubiquity-container-identifiers. Erreur CodeSign: la signature de code est requise pour le type de produit "Framework" dans le SDK "iOS 8.3"

Dans la cible de l'application -> Phases de construction -> Intégrer les cadres -> le cadre y est lié et la case à cocher "Code Sign on Copy" est cochée.

Dans la cible du cadre -> Paramètres de construction -> J'ai défini le profil de provisioning sur "Automatique", et pour l'identité du signe de code, sous Version, j'utilise "Distribution iOS"

J'ai 3 cibles d'applications différentes qui doivent s'appuyer sur ce cadre.

Je suis confus:

  • le framework a-t-il besoin de son propre AppID enregistré dans le Developer Center?

  • le cadre a-t-il besoin de son propre profil d'approvisionnement?

  • le cadre peut-il utiliser le même fichier de droits de la cible de l'application iOS?

Merci.

18
Z S

J'ai eu le même problème mais je l'ai résolu par:

Définir l'équipe sur Aucun dans l'onglet Général des paramètres cibles.

La modification de cette valeur semble également réinitialiser les paramètres de signature de code dans les paramètres de génération, sur "iOS Developer" pour le débogage et la publication. Si ce n'est pas le cas, changez ces paramètres vous-même.

Je peux maintenant construire mon framework sans erreur.

La signature du cadre nouvellement construit peut être vérifiée en entrant codesign --display --verbose = 4 FRAMEWORK_PATH dans le terminal.

Cet outil devrait retourner: l'objet de code n'est pas du tout signé

12
Chris Birch

La structure n'a pas besoin de son propre ID d'application enregistré dans le centre de développement, le profil d'approvisionnement ou les droits. J'ai une application sur l'App Store qui contient une cible d'application, une cible d'extension aujourd'hui, des cibles d'extension de surveillance et une cible de structure pour le code partagé.

Je rencontrais ce problème avec une deuxième application pour laquelle j'essayais de configurer une build, et j'ai pu le résoudre en modifiant la signature de mon framework pour utiliser les paramètres automatiques au lieu de "Don't Code Sign" (identité de développeur iOS/Profil automatique). Cela provoque la disparition de l'erreur et le cadre semble toujours être résigné pendant l'archivage comme on pourrait s'y attendre. Il semble que certains paramètres de construction soient requis, même s'il va juste démissionner.

EDIT: il convient de mentionner qu'une fois que vous le définissez sur automatique, vous devez également avoir un profil d'approvisionnement installé qui convient à l'ID de bundle défini pour les cibles en cours de création (un profil de développement générique devrait suffire).

7
Charles A.