最近接手了个新项目,真机测试没问题,但是今天需要打包的时候在仓库(Organizer)里选择Distribute的时候却出现这样的情形,打出来的包只有.app或者archive,却没有想要的ipa包。

网上查了查,多数的解决方案都指向工程配置skip install 和build phase里的header的问题。比较完整的是
stackoverflow里的解决方案,然而我按里面的说法,修改了pod工程的header文件位置,工程就开始报错。
后来查了查发现Organizer有三个分类iOS Apps, macOS Apps, Other Items.

很明显,这个Other items是一个比较特别的分类,不属于正常构建的Archives。这个分类下的Archive是包体没有加载完整你工程里所以的配置而产生的一个不完整的包体。后来发现我的问题主要是因为引入了另一个工程,而另一个工程的skip install配置出了问题。解决方案如下:
A,主工程project:在build setting里搜索install,设置:installtion Directory为空(这个一般默认为空)、设置skip install 为No;
主工程target:在build setting里搜索install,设置:installtion Directory为$(LOCAL_APPS_DIR),一般设置后显示为/Applications字样、设置skip install 为No
B,导入的另一个工程project:设置和主工程project一致;
导入的另一个工程target:在build setting里搜索install,设置:installtion Directory为空、设置skip install 为YES
注意:很多人会以为跟工程的Certification和Profile有关,正常情况下如果你的这两个文件有问题再Archive的时候已经报错了,不会走到Organizer。而在Organizer里面,如果是iOS App 或者MacOS App分类则可直接打包,这时候也可能会遇到Certification和Profile的问题,这时候就需要另外解决了。
网友评论