iOS开发:程序打包提示Ignoring file XXX missing required architecture arm7 in file XXX错误

前段时间在开发过程中遇到一个iOS打包报错Ignoring file XXX missing required architecture arm7 in file XXX的问题,然后回想了一下问题所在,是因为集成了ijk播放器插件,然后ijk三方库不支持arm7造成的报错。具体的错误提示如下所示:

Undefined symbol:_OBJC_CLASS_$_IJKFFOptions

Undefined symbol: _IJKMPMoviePlayerVideoRotationRotateUserInfoKey

Undefined symbol: _IJKMPMoviePlayerVideoRotationNotification

Undefined symbol: _IJKMPMoviePlayerPlaybackStateDidChangeNotification

Undefined symbol: _IJKMPMoviePlayerPlaybackDidFinishReasonUserInfoKey

Undefined symbol: _IJKMPMoviePlayerPlaybackDidFinishNotification

Undefined symbol: _OBJC_CLASS_$_IJKFFMoviePlayerController

Undefined symbol: _IJKMPMoviePlayerLoadStateDidChangeNotification

Undefined symbol: _IJKMPMediaPlaybackIsPreparedToPlayDidChangeNotification

项目具体报错截图如下所示:

扫描二维码关注公众号,回复: 11464767 查看本文章

这个报错也不是什么新问题,但是没有遇到的就会无从下手,会觉得是第三方库的锅,其实不是的,看错误提示就可以直接看到arm7相关的提示。只要定位到具体的问题点,那么问题就很好解决了。

原因就是,如果一些程序中使用的静态库不支持armv7,而你的工程支持armv7时,就会出现“Ignoring file XXX missing required architecture arm7 in file XXX"的编译错误,想要解决这个问题,有两个方法:

1.如果使用的是开源的库,能够找到源代码,则可以用源代码重新打一个支持armv7的libaray, 或者在项目工程中直接使用源代码,而不是静态库。

2.如果是闭源代码库,就直接修你的工程不支持armv7,或者等着三方库更新添加支持armv7的库(一般没人傻傻的等而耽误了开发周期的)。

具体的解决该问题的操作步骤如下所示:

1、打开项目工程,然后找到TARGETS目录下的项目名称,然后点击选择Build Settings—>Valid Architectures选项;

2、鼠标单击选中Valid Architectures选项,然后点击右侧的值,单击打开下拉弹出框;

3、找到下拉弹出框里面的arm7选项,然后点击选中,然后点击底部的“-”按钮,移除arm7选项;

4、关闭弹出框,点击项目编译按钮,重新打包,不再报错,问题解决。

以上就是本章全部内容,欢迎关注三掌柜的微信公众号“iOS开发by三掌柜”,三掌柜的新浪微博“三掌柜666”,欢迎关注!

三掌柜的微信公众号:

三掌柜的新浪微博:

猜你喜欢

转载自blog.csdn.net/CC1991_/article/details/106469042