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

Ethan Li picture Ethan Li · Sep 21, 2020 · Viewed 15k times · Source

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?

Answer

Ethan Li picture Ethan Li · Sep 27, 2020

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