架构i386的未定义符号。仅限iPad模拟器

时间:2018-04-25 05:18:21

标签: ios xcode ipad cocoapods

我的项目中有一个通过 CocoaPods 导入的框架,名为 JPush
iPhone设备和iPhone模拟器上的一切都很好 但是当我切换到iPad模拟器时,编译器一直在抱怨以下内容。 (我没有在iPad设备上试试,因为我没有带任何iPad) enter image description here

任何建议将不胜感激。提前致谢。

更新
我收集了所有iOS设备架构

arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7:iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4

32-bits processor:
simulator: i386
real device: armv7 or armv7s
64-bits processor: 
simulator: x86_64
real device: arm64

因此,当您提出相同的错误时,请尝试使用file FILENAME命令来显示静态库支持的体系结构。

1 个答案:

答案 0 :(得分:1)

您尝试链接的框架不包含i386切片:

libjpush-ios-3.0.9.a: Mach-O universal binary with 4 architectures: [arm_v7:current ar archive] [arm64]
libjpush-ios-3.0.9.a (for architecture armv7):  current ar archive
libjpush-ios-3.0.9.a (for architecture armv7s): current ar archive
libjpush-ios-3.0.9.a (for architecture x86_64): current ar archive random library
libjpush-ios-3.0.9.a (for architecture arm64):  current ar archive

它确实包含x86_64切片。选择64位iOS设备进行模拟(iPhone 5S或更高版本)并重建。