某些 iOS 模拟器的 CocoaPods 库构建错误
CocoaPods libraries errors building for some iOS simulators
短错误:
file was built for archive which is not the architecture being linked (i386)
展开:
对于某些模拟器,我在构建项目时收到以下错误:
ld: warning: ignoring file
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libFSCalendar.a,
file was built for archive which is not the architecture being linked
(i386):
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libFSCalendar.a
ld: warning: ignoring file
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libGBDeviceInfo.a,
file was built for archive which is not the architecture being linked
(i386):
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libGBDeviceInfo.a
ld: warning: ignoring file
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSCLAlertView-Objective-C.a,
file was built for archive which is not the architecture being linked
(i386):
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSCLAlertView-Objective-C.a
ld: warning: ignoring file
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSSKeychain.a,
file was built for archive which is not the architecture being linked
(i386):
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSSKeychain.a
Undefined symbols for architecture i386: "_OBJC_CLASS_$_FSCalendar",
referenced from:
objc-class-ref in VCalendarView.o "_OBJC_CLASS_$_GBDeviceInfo", referenced from:
objc-class-ref in VEMailView.o
objc-class-ref in DataClass.o "_OBJC_CLASS_$_SCLAlertView", referenced from:
objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SCLAlertViewBuilder", referenced from:
objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SCLAlertViewShowBuilder", referenced from:
objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SSKeychain", referenced from:
objc-class-ref in VDescriptionView.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1
(use -v to see invocation)
它适用于 iPhone 6 Plus 模拟器 9.3.0 但不适用于 iPhone 5s。为什么?我有 $(inherited)
Other Linker Flags 选项。
我找到了解决方案。
我删除了目录
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build
(在CocoaPods的库上右击>Show in Finder,然后找到它的父目录)重新全部重建。 Xcode 重新创建了所有现在可用的库。所有构建首选项都与默认值相同。
我通过删除DerivedData
目录解决了这个问题。
步骤:
在Xcode中,转到菜单栏→Window→项目.
在项目window中,选择左边的项目。
单击删除... 按钮以获取派生数据。当要求确认时,单击 删除。
重建项目。
对于Xcode8,请看这个问答:
短错误:
file was built for archive which is not the architecture being linked (i386)
展开:
对于某些模拟器,我在构建项目时收到以下错误:
ld: warning: ignoring file /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libFSCalendar.a, file was built for archive which is not the architecture being linked (i386): /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libFSCalendar.a ld: warning: ignoring file /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libGBDeviceInfo.a, file was built for archive which is not the architecture being linked (i386): /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libGBDeviceInfo.a ld: warning: ignoring file /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSCLAlertView-Objective-C.a, file was built for archive which is not the architecture being linked (i386): /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSCLAlertView-Objective-C.a ld: warning: ignoring file /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSSKeychain.a, file was built for archive which is not the architecture being linked (i386): /Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build/Products/Debug-iphonesimulator/libSSKeychain.a Undefined symbols for architecture i386: "_OBJC_CLASS_$_FSCalendar", referenced from: objc-class-ref in VCalendarView.o "_OBJC_CLASS_$_GBDeviceInfo", referenced from: objc-class-ref in VEMailView.o objc-class-ref in DataClass.o "_OBJC_CLASS_$_SCLAlertView", referenced from: objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SCLAlertViewBuilder", referenced from: objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SCLAlertViewShowBuilder", referenced from: objc-class-ref in VAlerts.o "_OBJC_CLASS_$_SSKeychain", referenced from: objc-class-ref in VDescriptionView.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1 (use -v to see invocation)
它适用于 iPhone 6 Plus 模拟器 9.3.0 但不适用于 iPhone 5s。为什么?我有 $(inherited)
Other Linker Flags 选项。
我找到了解决方案。
我删除了目录
/Users/admin/Library/Developer/Xcode/DerivedData/myApp-ekwldvjyuxwkykbareyvvydbtero/Build
(在CocoaPods的库上右击>Show in Finder,然后找到它的父目录)重新全部重建。 Xcode 重新创建了所有现在可用的库。所有构建首选项都与默认值相同。
我通过删除DerivedData
目录解决了这个问题。
步骤:
在Xcode中,转到菜单栏→Window→项目.
在项目window中,选择左边的项目。
单击删除... 按钮以获取派生数据。当要求确认时,单击 删除。
重建项目。
对于Xcode8,请看这个问答: