J'utilise Xcode 10.2, Swift 5.
Avec le schéma de débogage, aucun problème ne se produit, mais avec le schéma de libération lorsque je crée ou archive, il montre que la commande compileSwift a échoué avec un code de sortie différent de zéro.
J'ai essayé de supprimer DerivedData/Clean/pod deintegrate & pod install & pod update. Aucune de ces œuvres.
Pour mon projet, le problème était lié au pod Cache
qui donne une erreur lorsque Optimization Level
pour Release
est défini sur Optimize for Speed [-O]
. J'ai mis Compilation Mode
à Whole Module
à nouveau et définissez le niveau d'optimisation pour le pod dans le fichier pod:
post_install do |installer|
installer.pods_project.targets.each do |target|
# Cache pod does not accept optimization level '-O', causing Bus 10 error. Use '-Osize' or '-Onone'
if target.name == 'Cache'
target.build_configurations.each do |config|
level = '-Osize'
config.build_settings['Swift_OPTIMIZATION_LEVEL'] = level
puts "Set #{target.name} #{config.name} to Optimization Level #{level}"
end
end
end
end
Réfrence: https://github.com/hyperoslo/Cache/issues/233#issuecomment-47774956
J'ai résolu ce problème en allant Projet Pods puis aux paramètres du bâtiment et en définissant Mode de compilation à Incrémental pour Release. Ensuite, nettoyez et archivez, devrait alors compiler correctement.
J'ai donc eu le même problème lors de la mise à jour de mon projet vers Swift 5. Pour une raison quelconque, Cocoapods (dernière version, 1.6.1) a défini la Swift_VERSION de certains pods sur Swift 5 même s'ils sont publiés en tant que Swift 4, 4.1, 4.2 pods. J'ai donc dû ajouter un script de post-installation qui définissait la version de correction de Swift comme ceci
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'CryptoSwift' || target.name == 'SwiftyBeaver'
target.build_configurations.each do |config|
config.build_settings['Swift_VERSION'] = '4.2'
end
end
end
end
J'ai dû définir "Optimization Level" dans "Swift Compiler - Code Generation" sur "Release" - "No Optimization [-Onone]" de "Optimize for speed" pour que Cache passe Archive.
Même chose avec SwiftyBeaver
Cela semble être un problème lié à Xcode 10.2. De plus, d'autres projets de pod semblent bien avec l'optimisation, comme Toucan ou XCGLogger.
J'ai eu le même problème après la mise à niveau vers Xcode 10.2. Après avoir suivi les étapes ci-dessous, cela a fonctionné pour moi:
vous pouvez suivre ces étapes ...
Vous obtenez toutes ces erreurs uniquement à cause des pods ... alors vous devez également mettre à jour chaque pod que vous utilisez.