La description:
Juste mis à jour de Xcode 10 à Xcode 12, avant la v10, ce projet a été construit et exécuté avec succès.
Échec de la génération de la cible OneSignalNotificationExtension :
Undefined symbol: _swift_getObjCClassMetadata
Undefined symbol: type metadata accessor for Foundation.UUID
Undefined symbol: Swift._bridgeAnythingToObjectiveC<A>(A) -> Swift.AnyObject
Undefined symbol: protocol descriptor for Swift.ExpressibleByFloatLiteral
Undefined symbol: associated conformance descriptor for Swift.ExpressibleByFloatLiteral.Swift.ExpressibleByFloatLiteral.FloatLiteralType: Swift._ExpressibleByBuiltinFloatLiteral
Undefined symbol: associated type descriptor for Swift.ExpressibleByFloatLiteral.FloatLiteralType
Undefined symbol: protocol descriptor for Swift.ExpressibleByIntegerLiteral
Undefined symbol: associated type descriptor for Swift.ExpressibleByIntegerLiteral.IntegerLiteralType
Undefined symbol: method descriptor for Swift.ExpressibleByIntegerLiteral.init(integerLiteral: A.IntegerLiteralType) -> A
Undefined symbol: static Foundation.UUID._unconditionallyBridgeFromObjectiveC(__C.NSUUID?) -> Foundation.UUID
Undefined symbol: value witness table for Builtin.Int32
Undefined symbol: protocol witness table for Swift.Int : Swift._ExpressibleByBuiltinIntegerLiteral in Swift
et 100 erreurs de plus
Je ne suis pas très bon sur Xcode et Mac donc je suis désolé si ce n'est pas clair ou trompeur.
Merci
Environnement
natif de réaction 0,63.2
onesignal-react-native 3.9.1
Xcode 12
Installé via npm et lié aux pods
Étapes pour reproduire le problème :
Construire
Salut,
À quoi ressemble votre fichier NotificationService.swift
? Cela devrait être quelque chose comme :
import UserNotifications
import OneSignal
class NotificationService: UNNotificationServiceExtension {
var contentHandler: ((UNNotificationContent) -> Void)?
var receivedRequest: UNNotificationRequest!
var bestAttemptContent: UNMutableNotificationContent?
override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: <strong i="8">@escaping</strong> (UNNotificationContent) -> Void) {
self.receivedRequest = request;
self.contentHandler = contentHandler
bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent)
if let bestAttemptContent = bestAttemptContent {
OneSignal.didReceiveNotificationExtensionRequest(self.receivedRequest, with: self.bestAttemptContent)
contentHandler(bestAttemptContent)
}
}
override func serviceExtensionTimeWillExpire() {
// Called just before the extension will be terminated by the system.
// Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used.
if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent {
OneSignal.serviceExtensionTimeWillExpireRequest(self.receivedRequest, with: self.bestAttemptContent)
contentHandler(bestAttemptContent)
}
}
}
Jetez un œil à l'étape 4.3.6 des instructions de configuration et continuez à partir de là pour vous assurer que vous avez tout configuré correctement.
J'espère que cela t'aides. À votre santé
Merci pour les commentaires.
J'utilise le fichier Objective-C. Dois-je utiliser le rapide?
Je pensais que vous utilisiez Swift. Si vous utilisez Obj-C, utilisez l'Objective C. Prendre plaisir!
J'ai aussi des problèmes avec Xcode 12
Je peux réussir à construire le projet sur Xcode 11. Cependant, dès que j'ouvre le Xcode12 et que je construis le projet, j'obtiens l'erreur suivante :
▸ Linking OneSignalNotificationServiceExtension
❌ clang: error: no such file or directory: '/Users/carloscuesta/project-folder/ios/build/project/Build/Products/Debug-iphonesimulator/libRCTOneSignal.a'
Cela ne semble pas être une erreur du côté de OneSignal. On dirait qu'il y a quelque chose de bizarre avec le cache ou quelque chose comme ça,
choses que j'ai essayé:
rm -rf ~/Library/Developer/Xcode/DerivedData/
Je ne sais pas ce que je devrais essayer d'autre, je dirais que tout est correctement lié puisque l'application fonctionne bien sur Production et que la construction fonctionne avec Xcode 11.
J'ai la bibliothèque liée manuellement à l'aide du guide OneSignal, une idée sur la façon de résoudre ce problème ? ??
Généralement, lorsque j'ai eu ce problème, il a été résolu en nettoyant le DerivedData
mais je ne peux pas me débarrasser de l'erreur 😞
J'ai découvert quelque chose de bizarre,
Si j'essaie de créer l'application avec Xcode 12, cela échoue toujours. Cependant, si je crée d'abord l'application avec Xcode 11, puis ouvre Xcode 12 et crée l'application, cela fonctionne 🤯
Cependant, dès que je nettoie la construction et essaie de reconstruire à nouveau avec Xcode 12, il recommence à échouer avec la même erreur 😖
Même erreur ici avec Xcode 12 et onesignal-react-native 3.9.1 :-(
Les projets fonctionnaient avant la mise à jour.
Même erreur.
SDK Onesignal -> 2.15.2
réagir-natif-un-signal -> 3.9.1
A bien fonctionné sur xCode 11.
Salut,
C'est étrange @carloscuesta . Avez-vous essayé de voir une différence entre le projet sur Xcode 11 et 12 ? Peut-être que 12 modifie certains paramètres de construction importants pour une raison quelconque.
J'ai eu un problème similaire lorsque j'ai mis à jour mon Xcode de 11 à 12..
Salut @rgomezp
Je peux confirmer qu'il n'y a pas de changement de Xcode 11 à Xcode 12. Le git status
du repo n'est pas modifié.
Cependant, je peux toujours reproduire la construction échouée. Et chaque fois que je construis sur Xcode 11 et Xcode 12 après ça fonctionne pour la première fois 😕
Salut,
Je pense que cela est lié au problème actuel des ici .
Cela pourrait fonctionner, ajoutez x86_64
à VALID_ARCH
si vous devez exécuter l'application sur un simulateur, par exemple, x86_64
arm64
arm64e
Ce débordement de pile peut contenir la solution dont vous avez besoin.
Hey! Merci pour votre aide @rgomezp
Je vais vous dire les résultats de mes expériences!
J'ai présenté arm64
comme suggéré sur le post StackOverflow sur le Project
> Architectures
> Excluded Architectures
.
Cela n'a pas résolu le problème. J'ai la même erreur en me plaignant de x86_64
.
J'ai donc ajouté x86_64
au Excluded Architectures
.
Après le changement suivant, l'erreur suivante semble être corrigée. Cependant, j'ai une autre erreur concernant le OneSignalNotificationServiceExtension.appex
.
Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target's code sign settings match the parent app's.
Cependant, je n'ai rien changé en rapport avec CodeSign 🤔 - La version Xcode11 fonctionne bien
Après avoir nettoyé le DerivedData
build et redémarrez l'ordinateur. Je vois une autre erreur : Link app (i386)
.
Si j'ouvre l'erreur, je vois que beaucoup de fichiers ne sont pas trouvés dans le dossier DerivedData
. Aucun d'entre eux n'est lié à OneSignal. Cependant, je ne sais pas pourquoi cela échoue si cela fonctionne correctement sur Xcode 11. Je suis tellement confus en ce moment 😅
VALID_ARCHS
Cela n'a pas fonctionné pour moi non plus. J'ai également lu que cela est déconseillé sur Xcode 12 et que Excluded Architectures
devrait être utilisé à la place.
Je n'avais pas de User-Defined Setting
pour ça. Comme je n'utilise pas CocoaPods et que j'ai le module lié manuellement.
J'ai trouvé un lien intéressant qui parle de l'erreur "même certificat" avec Xcode après avoir exclu arm64
.
Il dit que les extensions ne doivent pas exclure ces architectures . Même erreur malheureusement :(
Je suis à court d'idées pour aujourd'hui
Je peux confirmer que la construction et l'exécution de l'application sur un appareil réel ne génèrent aucune erreur sans les modifications "Architectures exclues".
C'est donc quelque chose de 100% lié à l'architecture du simulateur lui-même
Hola Carlos,
Merci pour l'enquête détaillée. Pour plus de visibilité, j'ai également trouvé ce thread de débordement de pile .
Pour résumer le problème @carloscuesta ,
Embedded binary is not signed with the same certificate as the parent app...
est résolue en ajoutant arm64 et x86_64 aux architectures exclues , selon les conseils pour l'utiliser sur VALID ARCHS.Carlos, à ce stade, je ne sais pas ce qui peut être fait d'autre car cela ressemble à un problème non lié à OneSignal.
D'autres personnes peuvent-elles confirmer que la solution de contournement de Cocoapods liée ci-dessus fonctionne pour elles si elles _utilisent_ des Cocoapods ?
Salut @rgomezp
Merci pour toute l'aide que vous avez fournie.
Carlos, à ce stade, je ne sais pas ce qui peut être fait d'autre car cela ressemble à un problème non lié à OneSignal.
Je ne suis pas sûr à 100% de cette déclaration car si je dissocie toute la bibliothèque OneSignal et que je supprime les OneSignalNotificationServiceExtension
le projet s'appuie sur Xcode12. Je ne sais pas d'où vient l'erreur, c'est sûr et c'est peut-être un cas particulier puisque la bibliothèque est liée manuellement. Et je n'ai rien à toucher avec les architectures
Mais oui, voyons si nous pouvons trouver d'autres cas d'utilisation 👍🏼
Il semble que Xcode 12 soit construit pour le simulateur avec l'architecture - arm64, i386, x86_64 .
Ma solution de contournement est donc
Cela fonctionne bien dans mon projet.
@stanleyctcl Votre solution fonctionne ! :tada:
Je n'ai pas vu que la cible RCTOneSignal
l'intérieur de la bibliothèque RCTOneSignal
avait le VALID_ARCHS
défini comme un paramètre User-Defined
. C'est quelque chose que nous devrions supprimer du côté de la bibliothèque ! Je vais faire un PR pour résoudre le problème !
C'est pourquoi tous mes changements n'ont pas fonctionné. Parce que la bibliothèque OneSignal a ce paramètre utilisateur défini.
Hé, merci @stanleyctcl
Votre solution a fonctionné pour moi.
Auparavant, mon build sur le mode de publication sur iOS Simulator échouait. J'ai building for iOS Simulator, but linking in object file built for iOS, file onesignal
erreur
Malheureusement, après avoir mis en œuvre votre solution, je n'ai pas pu archiver mon application. J'ai cette erreur.
No architectures to compile for (ARCHS=arm64, VALID_ARCHS=arm64 arm64e armv7 armv7s, EXCLUDED_ARCHS=(
arm64
))
une idée ?
@abdullahizzuddiin Assurez-vous que vous n'avez exclu que l'architecture pour les simulateurs iOS
Ah, mon mauvais. J'ai oublié le petit détail. Merci @carloscuesta de m'avoir signalé. Il s'est avéré que je n'avais besoin que de définir Excluded Architecture
sans supprimer VALID ARCHS
du paramètre de construction du sous-projet RCTOneSignal
. ??
= = =
Je pense que j'ai une erreur de différence. J'ai archivé avec succès. Mais, après avoir choisi "Gérer automatiquement la signature", j'ai eu cette erreur
Je peux déployer une application sur Appstore sans aucun problème sur la version précédente de Xcode. Auparavant, j'utilisais 11.7. Maintenant, j'ai utilisé 12.0 et j'ai instantanément eu cette erreur sans aucun changement sur mon repo.
//package.json
react-native-onesignal: 3.8.1
//Podfile
pod 'OneSignal', '>= 2.14.2', '< 3.0'
...
target 'OneSignalNotificationServiceExtension' do
pod 'OneSignal', '>= 2.14.2', '< 3.0'
end
Un indice ? ou dois-je créer un problème séparé ?
ps :
J'ai également soumis mon problème au Forum des développeurs Apple au cas où ce ne serait pas le problème de cette bibliothèque.
j'utilise react-native-onesignal 3.9.1 sur la version react native 0.60.0... Je suis en mesure de résoudre ce problème en incluant x86_64 dans les paramètres définis par l'utilisateur (VALID_ARCHS)
Salut à tous,
Je pense que ce problème peut être fermé en toute sécurité car il ne semble pas être un problème OneSignal.
@abdullahizzuddiin
(Problème différent, pensez à ouvrir un ticket séparé)
Pour plus de visibilité, je posterai une des réponses sur le fil Apple Dev Forum :
PROBLÈME:
La tentative d'exécution de la compilation sur le périphérique réel a échoué, même si la compilation a réussi sur mon MacBook Pro.
L'erreur suivante s'est produite avec ce message :
Le profil de provisionnement « iOS Team Provisioning Profile : com.xxxxxxxxxxxx.Name of -App » n'inclut pas l'appareil actuellement sélectionné « iPhone » (identifiant 0000xxxx-000xxxxxxxxxxxxxxxxxx).
Manuel d'aide en ligne de Xcode
Préférences des comptes
Utilisez les préférences Comptes pour gérer les actifs des comptes de développeur (certificats de signature et profils d'approvisionnement), ajouter des référentiels et ajouter des serveurs.
Pour ouvrir les préférences Comptes, choisissez Xcode > Préférences et cliquez sur Comptes.
I Ensuite, j'ai cliqué sur, gérer les certificats, et ajouté un nouveau certificat en cliquant sur le signe plus.
PROBLÈME RÉSOLU:
J'ai ensuite exécuté ma version et mon erreur de signature a été effacée, l'application a été installée sur mon iPhone 11 Pro Max.
Espérons que cette solution vous aide.
Salut @rgomezp
Cette question était un mélange de différents problèmes. Celui que vous indiquez n'a rien à voir avec le problème du simulateur lui-même, c'est quelque chose qui a à voir avec RCTOneSignal
parce que l'utilisation de VALID_ARCHS
Je ne sais pas si nous devrions fermer complètement ce problème jusqu'à ce que celui du simulateur soit résolu.
Salut @rgomezp
J'ai suivi la suggestion d'Apple Dev Forum que vous avez extraite ci-dessus. Mais, cela n'a pas résolu mon problème.
Temporairement, j'ai rétrogradé la version Xcode à 11.7 et j'ai pu construire, exécuter et archiver avec succès. Mais, je peux toujours faire ces actes dans Xcode 12.0
Je vais laisser cela ouvert pour être fermé automatiquement d'ici le #1053
Il semble que Xcode 12 soit construit pour le simulateur avec l'architecture - arm64, i386, x86_64 .
Ma solution de contournement est donc
1. Add **arm64** in **Excluded Architectures** of Project Build setting 2. Remove **VALID ARCHS** from RCTOneSignal subproject build setting. **(VAILD ARCHS was moved to User-Defined of build setting in Xcode 12)**
Cela fonctionne bien dans mon projet.
Cela fonctionne pour moi. N'oubliez pas de le supprimer. Ne pas simplement le laisser vide "" car cela ne fonctionnerait pas
Éditer:
Mon projet utilise la liaison manuelle Un signal 3.2.12.
réactif-natif 0.59.9
xcode 12
J'ai essayé la solution stanleyctcl qui fonctionne dans le simulateur pour le débogage et la version. Mais lors de la construction pour l'appareil générique/l'archive, j'ai rencontré le même problème qu'abdullahizzuddiin
Aucune architecture pour compiler (ARCHS=arm64, VALID_ARCHS=arm64 arm64e armv7 armv7s, EXCLUDED_ARCHS=(
bras64
))
La solution qui a fonctionné pour moi est
Appliquer ceci uniquement
2. Remove **VALID ARCHS** from RCTOneSignal subproject build setting. **(VAILD ARCHS was moved to User-Defined of build setting in Xcode 12)**
Cela devrait faire fonctionner Archive mais la version du simulateur échoue. Pour arranger ça. vous devez aller à la cible de toutes les cibles du projet et du pod -> Paramètres de génération -> Architecture -> Construire l'architecture active uniquement -> Définir 'Oui' pour le mode de publication
Explication et étapes sur : https://stackoverflow.com/a/64139830/9232424.
Pour en savoir plus : https://medium.com/macoclock/deep-drive-xcode-build-settings-827c3ce4811c.
Ah, mon mauvais. J'ai oublié le petit détail. Merci @carloscuesta de m'avoir signalé. Il s'est avéré que je n'avais besoin que de définir
Excluded Architecture
sans supprimerVALID ARCHS
du paramètre de construction du sous-projetRCTOneSignal
. ??= = =
Je pense que j'ai une erreur de différence. J'ai archivé avec succès. Mais, après avoir choisi "Gérer automatiquement la signature", j'ai eu cette erreurJe peux déployer une application sur Appstore sans aucun problème sur la version précédente de Xcode. Auparavant, j'utilisais 11.7. Maintenant, j'ai utilisé 12.0 et j'ai instantanément eu cette erreur sans aucun changement sur mon repo.
//package.json react-native-onesignal: 3.8.1 //Podfile pod 'OneSignal', '>= 2.14.2', '< 3.0' ... target 'OneSignalNotificationServiceExtension' do pod 'OneSignal', '>= 2.14.2', '< 3.0' end
Un indice ? ou dois-je créer un problème séparé ?
ps :
J'ai également soumis mon problème au Forum des développeurs Apple au cas où ce ne serait pas le problème de cette bibliothèque.
Le même problème s'est produit avec moi dans xcode 12, avez-vous résolu le problème ? @abdullahizzuddiin ou vous venez de rétrograder le xcode à 11.7
Merci
Pour fonctionner dans le simulateur, je dois ajouter " arm64 " dans " Architectures exclues ".
Mais, pour exécuter l'application sur un appareil réel, je dois la laisser sans les modifications " Architectures exclues ".
Je dois donc faire ce changement à chaque fois que je cours.
J'espère que ça aide.
Même problème ici, c'est revenu.
Même
Même
Commentaire le plus utile
J'ai aussi des problèmes avec Xcode 12
Je peux réussir à construire le projet sur Xcode 11. Cependant, dès que j'ouvre le Xcode12 et que je construis le projet, j'obtiens l'erreur suivante :
Cela ne semble pas être une erreur du côté de OneSignal. On dirait qu'il y a quelque chose de bizarre avec le cache ou quelque chose comme ça,
choses que j'ai essayé:
rm -rf ~/Library/Developer/Xcode/DerivedData/
Je ne sais pas ce que je devrais essayer d'autre, je dirais que tout est correctement lié puisque l'application fonctionne bien sur Production et que la construction fonctionne avec Xcode 11.
J'ai la bibliothèque liée manuellement à l'aide du guide OneSignal, une idée sur la façon de résoudre ce problème ? ??
Généralement, lorsque j'ai eu ce problème, il a été résolu en nettoyant le
DerivedData
mais je ne peux pas me débarrasser de l'erreur 😞