最近接手别人的项目,项目没有完结,我接着写完,准备上线的时候打包遇到问题,特此记录下,以前从未发生过此问题
老规矩:command+B -> Product -> Archive -> Upload to App Store,结果如下所示:
D74B20AB-32D6-43F5-99FB-0F06A5C82AE4.png
底下四个按钮只有Cancel 、 Show Logs 很明显必须Show Logs啦。查看如下所示:
9977FA62-8C5E-4A86-854D-255B5EAD705F.png
显示的logs中有四个文件,一个文件是没有内容的(0字节,也许是我这个问题刚好没有吧,具体的不提清楚),这里建议大家分别看看四个log文件,这里面贴出来我的文件内容:
-
IDEDistribution.critical.log(个人觉得这个可供参考的意义不大)
76C78B61-6810-430A-BD58-469D0C2B2B12.png -
IDEDistribution.standard.log (这个很重要,1KB的文件)
2864235C-75CF-4FCC-A44D-88FF3E11763C.png -
IDEDistribution.verbose.log (有参考意义)
BD9F101A-7CA3-44A1-B0B2-F2AE0153ED34.png
上述的log文件中有反复提到NIMSDK.framework,这个是网易云信的SDK,这里非常有必要说一点,接手的工程使用的是Cocoaspod管理的,但是NIMSDK却是手动拖入的,一开始以为是少添加了相关的依赖库,所以对着官方文档重新添加了下(接手的这个项目使用的SDK版本较早),结果再次打包还是同样的错,再次去翻看logs,相对有参考意义的:
2018-6-1 下午7.25.xcarchive/Products/Applications/TaTa.app/Frameworks/NIMSDK.framework" did not contain a "archived-expanded-entitlements.xcent" resource.
NIMSDK 不能包含XXXX,那就看看相应的库,查看Build Phases,发现整体的目录结构多了一部分,如下所示:
8EFD8962-3F97-4DCA-9BCB-BC02EA80F59B.png
最后一行的Run Script看着相当陌生,开发的多了,对于陌生分东西很敏感,点进去看了下,是shell相关的东西,具体的如下所示:
78628A98-C94A-4067-9929-4BB160865C89.png
原则上,接手被人的项目尽量别删东西,但是我看到的是这个shell什么都没有,所以有了尝试删除的想法,故此,提前备份的情况下,删除了该Run Script,再次打包好了,开心的飞起
总结:
- 开发会遇到各种各样的问题,出问题不用怕,先自己找原因,这并不是说漫无目的的找,一般来说,开发工具会有相应的提示,如本次的show Logs,需要会查看关键性的提示
- 集成第三方的SDK的时候尽量不要手动导入,这样工作量有些大,很容易出错(少添加或者添加错对应的依赖库),在就是别人接手的时候比较累(这次是因为shell里面什么都没有,我才敢删除,如果里面有内容,那我是万万不敢删除的)
- 出现问题先尝试自己解决,不要一出问题就去各种搜索,这样子印象不深刻,下次再出现此类问题很可能依旧要去搜索,个人觉得没有必要
本次遇到的坑就是这样,希望对以后的某些同学有用处。。。
网友评论