Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Problems after upgrading to Xcode 12:ld: building for iOS Simulator, but linking in dylib built for iOS, architecture arm64

Tags:

xcode12

I upgraded Xcode to Xcode 12, and build my project. Firstly, it come out an error such as below:

ld: building for iOS Simulator, but linking in dylib built for iOS, file '/Users/ethanli/Documents/Aspira/RA.com4iOS/RA.com4iOS/source/ReserveAmerica/ReserveAmerica4/External/Mapbox/MapboxMobileEvents.framework/MapboxMobileEvents' for architecture arm64

I wiped out this error by adding "arm64" to Excluded Architecture in Build Settings. Refer to https://developer.apple.com/forums/thread/656509

configuration like this

But... another error came out:

error: Build input file cannot be found: '/Users/ethanli/Library/Developer/Xcode/DerivedData/ReserveAmerica4-cgnruuknmgycgrbadguodtkwspmy/Build/Products/DEBUG-iphonesimulator/ReserveAmerica4.app/ReserveAmerica4' (in target 'ReserveAmerica4' from project 'ReserveAmerica4')

I went to the path in Finder, “ReserveAmerica4” really doesn't exist.

Is there any way to solve this problem?

like image 763
Ethan Li Avatar asked Sep 21 '20 13:09

Ethan Li


3 Answers

I resolved this error.

The root reason is that Xcode 12 does not allow build arm64 architecture for Simulator. We should set x86_64 for Simulator building.

  1. Set "Build Active Architecture Only" to "YES" in target Build Settings tab;
  2. Set x86_64 for Simulator: enter image description here

For more answers: Xcode 12, building for iOS Simulator, but linking in object file built for iOS, for architecture arm64

like image 56
Ethan Li Avatar answered Sep 16 '22 13:09

Ethan Li


You can fix it in flutter with this

post_install do |installer|
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end
like image 39
Abraams gtr Avatar answered Sep 17 '22 13:09

Abraams gtr


I got same error at M1 Silicon. But adding arm64 to Excluded + Build Active Architecture Only did not help because one library failed with: For builds to run in the simulator, this should be set to "x64" error.

Temporary solution that worked for me:

  • in Finder right click on Xcode app;
  • select Get Info;
  • set checkmark Open using Rosetta;
  • reopen Xcode / clean / rebuild;

app info

like image 28
Oleksandr B Avatar answered Sep 20 '22 13:09

Oleksandr B