IOS 打包的痛苦经历

1 篇文章 0 订阅
           从6月9号发现企业证书不可以用开始,到6月23号打包成功,其中经历了14天的时间,足足有两个星期那么久,这过中的打包经历,确实让我记忆犹新,一是打包不出来,二是客户又拼命的催我们:我们要用苹果手机啊,那边的网络用不了啊,只能用苹果版本啊,怎么现在苹果不能用啊~~~~。总之自己的压力不少。下面我们来细细的分析一下这两个星期是怎么处理问题。
         从6月11号回来公司,就拿到公司申请的企业证书,一切都看起来比较顺利,从下载profile描述文件,因为之前这台电脑有安装过对应的证书,所以证书不要重新安装,接下来就produce->Archive 生产打包文件,然后在Export->Save for Enterprise Deploment 根据企业证书生产ipa文件,接下来就放到bugly上进行测试发布,满以为可以大功告成,结果,用苹果手机扫描后,点开应用出现闪退~~~~,这可怎么办呢?我在想,总地要找出错误来,当时我不知道可以查看应用的错误,后来在寻找问题之中才无意发现的(可以在Xcode 菜单:Windows->Devices,在左边选择对应的设备,可以看到对应Logs,有不同的时间,对应的手机上那个应用出现错误都一目了然,主要是要看清楚是报错)。
为了能解决问题,我接下来我就运行在模拟器上去看对应的错误,结果一运行又报另外的错误,就是Alamofire缺少文件,具体的详细错误忘记是什么啦,这里开始怀疑是cocoapod的问题,于是我就用真机去调试,用个人的苹果账号,结果运行的时候发现的比较奇怪的问题,说是:ld: framework not found FileProvider for architecture x86_64 ,在网上一找说是FileProvider 是在Xcode9 才出现的新的类,但是我就奇怪我是用Xcode 7.2 去编译的,怎么会用到Xcode 9 所用的类,当时我也不知道什么原因,就按照网上给出的方式去处理,在Xcode 9 上把对应的类Copy过去到Xcode 7.2上,结果就不报错,这个是网上的解决方式: https://www.cnblogs.com/qingjoin/p/7737080.html ,后来在寻找答案的时候,发现这个问题的原因,command line tools for xcode 这个我这边的环境是默认选择了Xcode 9.0的版本,由于在cocoapod 上bugly是用c 写的,所以,需要用到command line tools去编译这个,于是就出现了缺少FileProvider 文件。
       好的,接下来用真机调试,还会出现dyld Library not loaded: @rpath/Alamofire.framework/Alamofire 错误,这个网上也有解决的方式,一开始我是采用这个方式去解决: https://blog.csdn.net/bianchengninhao/article/details/54629375 结果在两个选项中我这边都不存在这些引用,处理不了,于是我又找了其他的方式
这个我在Emabeded Binaries加入对应的Alamofire 后,又报Alamofire 不存在对应的的文件,我真是郁闷了,为啥找不到文件了,于是我就开始怀疑是cocoapod 的问题,首先我怀疑的缘由是,现在我们要打包的项目是两年前做的项目,用的语言是swift 2.3版本,而到现在为止,swift已经升到到4.2版本了,改变挺大的,而对于cocoapod的插件也是根据swift的版本变化而变化的,所以cocoapod也是跟着swift最新的版本去,是不是现在的cocoapod已经不支持swift2.3呢?这些都在我的头脑中涌现出来,接下来我可以做的只能要升级我的代码从2.3升级到4.2了。当然我处理这个的步骤是这样的:
1、先将cocoapod降版本,从1.2.0降到0.39.0,结果系统要求我们要在1.0.0版本才能用,但是我把cocoapod安装到1.0.0版本后,还是不能用。
2、接下来我就怀疑是我的系统问题,因为两年前我的系统是10.10版本,还没有到10.12版本的,于是我在windows上安装了模拟机,在安装一个10.11版本的macos,结果这个足足花费我1天多的时间去安装,用起来特别慢慢,在这个系统上我的代码根本跑不起来,而且连不了真机,所以这个一天多的时间又是浪费,其实,这个时间,市场部那边的人催促我好几次,有你再不能完成打包,我就要投诉给上级领导的意思。这时我的压力来。
3、这个时候我也没有办法了,先再一次跟领导汇报一下这个事情先,然后让我给出具体的解决方案,我当时就说要把两年前代码升级到最新版本的,需要我大概1~2个星期的时间,领导也不多说,要求我必须马上去处理。这个时候,我知道不能在拖了。要专注地解决这个问题。于是从周六开始专注去解决这个问题,其他问题我先不管。

      首先我用真机去调试,用公司的debug账号去调试,之前我还不知道可以用开发证书(P12文件)在我本机运行,这时候就报了dyld Library not loaded: @rpath/Alamofire.framework/Alamofire 于是我再去找资料,把之前找的资料都过滤掉,一步步的去查找,于是我找到这个帖子 ,发现比较合理

   

     在Build Prases ->Embedded Binaries 上加上对应的报 cocoapod 包,同时status 改成 Optional ,结果真的不报这个错误了。这个问题算是得到解决。
接着,后面在运行在真机的时候,又出现如下的错误dyld: Library not loaded: @rpath/libswiftAVFoundation.dylib,这次的报错,网上有很多说法,主要的思路是检查证书是否有效,重新清理一下缓存,重新clear项目,这些都弄过了,还是不行。所以有时真的要加上自己允许环境去找才行,自己本地的环境是Xcode 7.2 ,使用的是cocoapod插件,上面说的很多都是Xcode 9 的版本的问题,所以不对。后面还是找到外国的帖子,指出了解决的方法,不过对于自己来说真的不知道是什么原因,具体的帖子:
这个帖子跟我的报错是一模一样的,看到解决的方法我也奇怪,因为之前老是提示说要调用证书,输入登录的密码,所以,我就把对应的证书都设置为始终信任,这个帖子要求我们不要始终信任,要用默认的方式就可以解决问题,后面果然是这个问题。


    那究竟是什么原因,还正是不清楚,那位高手指点一下。
这个正是折腾,好,我们来分析一下具体的原因,我觉得有几个方面:
1、自己对IOS 的还是有点不是很熟悉,怎么用公司的账号去打包,P12是什么,如何从swift2.3升级到swift 4.2等等,这些自己都不是很熟悉。(IOS 这块还是不要丢,还是要自己写写代码)
2、专注度不够,在deal line的最后完成时间里,自己就在周六一天全神贯注在处理这个问题,其他问题都没有去管或者减少去管,这样做的效果挺高的,就在用一天的时间把这个问题解决了。所以自己的时间安排不太妥当。对某项工作要安排在那个时间去处理,要合理规划。(上午安排这种高前度的工作)

希望对大家有帮助!dan
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS打包FFmpeg是将FFmpeg库集成到iOS应用程序中的过程,以便在应用中使用FFmpeg的功能。下面是一般的iOS打包FFmpeg的步骤: 1. 下载FFmpeg源代码:从FFmpeg官方网站(https://www.ffmpeg.org/)下载最新的FFmpeg源代码。 2. 配置编译环境:在终端中进入FFmpeg源代码目录,执行以下命令配置编译环境: ``` ./configure --enable-cross-compile --arch=arm --target-os=darwin --cc=/path/to/your/xcode/developer/usr/bin/clang --sysroot=/path/to/your/xcode/developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk --extra-cflags="-arch armv7 -mfpu=neon" --extra-ldflags="-arch armv7 -isysroot /path/to/your/xcode/developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk" ``` 3. 编译FFmpeg库:执行以下命令编译FFmpeg库: ``` make ``` 4. 生成静态库:执行以下命令生成静态库文件(libffmpeg.a): ``` make install ``` 5. 创建Xcode工程:在Xcode中创建一个新的iOS应用程序工程。 6. 添加FFmpeg库:将生成的静态库文件(libffmpeg.a)拖拽到Xcode工程中,并选择"Copy items if needed"选项。 7. 配置头文件路径:在Xcode工程的"Build Settings"中找到"Header Search Paths",添加FFmpeg源代码目录的路径。 8. 配置库文件路径:在Xcode工程的"Build Settings"中找到"Library Search Paths",添加FFmpeg静态库文件所在的路径。 9. 链接FFmpeg库:在Xcode工程的"Build Phases"中找到"Link Binary With Libraries",点击"+"按钮,选择添加libffmpeg.a。 10. 导入头文件:在需要使用FFmpeg功能的源代码文件中,导入相关的FFmpeg头文件。 11. 使用FFmpeg功能:通过调用FFmpeg提供的API,实现所需的功能,如音视频解码、编码、转码等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值