Error: “File was built for archive which is not th

2019-01-30 14:37发布

I have built my own Static C++ Library, which is built with the settings:

  • Architectures: armv7, armv7s
  • Build Active Architectures Only: No
  • Support Platforms: iOS
  • Valid Architectures: armv7, armv7s

The library project builds well and I got the .a file (I have cleaned the build folder and built the project again to be sure my settings were effective).

I have added the library (.a file) to my iOS project, but the project won't build even though I have set the exact same settings on the iOS project:

  • Architectures: armv7s, armv7
  • Build Active Architectures Only: Yes
  • Support Platforms: iOS
  • Valid Architectures: armv7, armv7s

I keep getting this error:

ld: warning: ignoring file /Users/hidden/Library/Developer/Xcode/DerivedData/HelloWorldCppLib-fomvvtklwijvqicyhahxleiscein/Build/Products/Debug-iphoneos/libHelloWorldCppLib.a, file was built for archive which is not the architecture being linked (armv7s): /Users/hidden/Library/Developer/Xcode/DerivedData/HelloWorldCppLib-fomvvtklwijvqicyhahxleiscein/Build/Products/Debug-iphoneos/libHelloWorldCppLib.a

What am I missing? It tells me the .a file was not built for armv7s, but that is exactly the settings I built the library with.

7条回答
放我归山
2楼-- · 2019-01-30 15:12

It did happen to me with Facebook SDK (v 4.24.0) used via CocoaPods.

Cleanning or setting Build Active Architectures Only to NO on Pods didn't resolve the problem.

The solution was to empty the build directory (see Build settings/Build locations/CONFIGURATION_BUILD_DIR) OR $(CONFIGURATION_BUILD_DIR) Xcode variable.

查看更多
登录 后发表回答