2017-08-31 5 views
3

Je travaille pour soutenir iOS 11 et XCode 9. Lorsque je tente d'exécuter la suite de tests, je reçois une erreur Linker:Linker Erreur lors de tests: symboles non définis pour l'architecture x86_64

Undefined symbols for architecture x86_64

"ConstantName", reference from: - [FileATest testMethod] in FileATest.o

Dans FileA.h

OBJC_EXTERN NSString *const ConstantName 

Dans FileA.m

NSString *const ConstantName = @"ConstantValue" 

En FileATest.m utiliser la constante et l'importation ont

#import "FileA.h" 

En utilisant une constante statique dans le fichier d'en-tête semble fonctionner, mais je lis que ce n'est pas la bonne façon de déclarer une constante.

Cela fonctionnait bien avec XCode 8 et les versions précédentes, mais pas pour XCode 9 Beta 6. Est-ce que quelqu'un a eu ce problème? Comment puis-je le réparer?

+0

Il suffit d'aller à vos paramètres de construction et de rechercher une architecture valide et simplement ajouter x86_64 leur ... –

+0

N'est-ce pas simple, en fait. – Fdiazreal

Répondre

2

J'ai eu le même problème lors de l'exécution des tests unitaires et la solution pour moi était d'aller à la App Target > Build Settings > Dead Code Stripping et le mettre à NON.

Espérons que cela aide.