J'ai installé Xcode 12 sur mon Mac, j'ai essayé de construire mon application react native qui fonctionne parfaitement sur Android, et j'obtiens 'atomic_notify_one<unsigned long>' is unavailable
. C'est le maximum d'informations que j'obtiens de l'erreur.
Réponses
Trop de publicités?J'ai rencontré le même problème lors de la construction dans XCode 12.5. Si la désactivation temporaire de Flipper n'est pas une option pour vous, vous pouvez rétrograder vers XCode 12.4. Cela a réglé le problème pour moi. Vous pouvez télécharger XCode 12.4 ici : https://developer.apple.com/download/more
Je pense que la réponse fournie par @opensw fonctionnera mais j'ai trouvé une solution plus améliorée pour que cela fonctionne avec l'installation des pods à chaque fois sans supprimer le fichier Pods
dossier. Tout d'abord, ajoutez/remplacez la ligne suivante dans votre fichier Podfile
use_flipper!({ 'Flipper-Folly' => '2.5.3', 'Flipper' => '0.87.0', 'Flipper-RSocket' => '1.3.1' })
Maintenant, dans les dernières versions mentionnées dans les lignes ci-dessus corrige un problème avec la fonction Flipper-folly
Mais nous devons également prendre en charge le RCT-folly et pour cela, nous utiliserons la fonction find_and_replace
fonction. Voici la nouvelle fonction que j'ai obtenue à partir de l'application aquí
# Define find-and-replace function
def find_and_replace(dir, findstr, replacestr)
Dir[dir].each do |name|
text = File.read(name)
replace = text.gsub(findstr,replacestr)
replaced = text.index(replacestr)
if replaced == nil && text != replace
puts "Fix: " + name
File.open(name, "w") { |file| file.puts replace }
STDOUT.flush
end
end
Dir[dir + '*/'].each(&method(:find_and_replace))
end
Maintenant, nous appelons cette fonction à partir de la post-installation. Nous devrons donc ajouter les 2 appels de fonction suivants dans la post-installation post_install do |installer|
find_and_replace("Pods/RCT-Folly/folly/synchronization/DistributedMutex-inl.h",
"atomic_notify_one(state)", "folly::atomic_notify_one(state)")
find_and_replace("Pods/RCT-Folly/folly/synchronization/DistributedMutex-inl.h",
"atomic_wait_until(&state, previous | data, deadline)", "folly::atomic_wait_until(&state, previous | data, deadline)")
Voici ma réponse en Github
Remplacez tout le code actuel du flipper dans votre podfile par celui-ci en fonction de votre version de React Native :
add_flipper_pods!({ 'Flipper-Folly' => '2.5.3', 'Flipper' => '0.87.0', 'Flipper-RSocket' => '1.3.1' })
ou
use_flipper!({ 'Flipper-Folly' => '2.5.3', 'Flipper' => '0.87.0', 'Flipper-RSocket' => '1.3.1' })
Ensuite, mettez à jour le projet Pods en utilisant ceci :
cd ios && pod install && cd ..