苹果的又一个坑:InHouse打包后程序不能启动
来源:互联网 发布:美国软件中国代理 编辑:程序博客网 时间:2024/06/10 02:00
现象:
Debug模式下,程序启动正常,功能也正常。但Archive打包后,LaunchScreen显示一下,程序闪退。
工程为Swift项目,并且嵌入了一个Swift 库(Alamofire)。
查看设备日子,发现如下异常:
Dyld Error Message:
Library not loaded:@rpath/Alamofire.framework/Alamofire
Referenced from: /private/var/mobile/Containers/Bundle/Application/2307B97A-4DE2-4BB0-9B3C-9B58FB3617CB/YNYDQX.app/YNYDQX
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/
检查Alamofire,发现代码没有签名,而且Bundle ID不能匹配。怎么回事?明明记得以前嵌入框架(.a文件)是不需要签名的(O-C项目)?!
不管了,先解决这个问题再说。于是进行签名,并修改Bundle ID。
再次运行程序,发现故障依旧,控制台输出:
[deny-mmap] mapped file has no teamidentifier and is not a platform binary: /private/var/mobile/Containers/Bundle/Application/2307B97A-4DE2-4BB0-9B3C-9B58FB3617CB/YNYDQX.app/YNYDQX
在stackoverflow上查找答案,有人说需要撤销原来的inHouse证书,然后重新制作新的证书和provisioning profile。
于是登录Portal,重新制作证书和Provisioning Profile。
将代码重新签名,再次打包。
程序正常启动。
比较老的证书和新制作的证书,发下以下部分有所不同:
在新的inHouse证书的主题中,增加了一个新的字段:组织单位(也就是所谓的OU)。
原来,iOS(测试设备为8.1)现在开始对inHouse证书中的OU进行验证了。老的证书中并没有这个东西,于是iOS强行终止了App进程。
但是苹果官方并没有对此进行说明。对于相对小众的企业开发者来说,无疑又被苹果坑了一回。
- 苹果的又一个坑:InHouse打包后程序不能启动
- Qt程序打包发布方法(使解决QML打包后不能启动的bug)
- java程序打包后文件图片不能加载的问题
- 黑苹果安装后不能启动Windows解决
- 解决"打包成功后的ipa点击程序出现白屏,不能进入界面"的问题
- 解决"打包成功后的apk点击程序出现白屏,不能进入界面"的问题
- air 打包后不能安装的解决办法
- 关于J2ME程序打包后不能执行jad的一点解决办法
- java程序打包后图片等资源不能加载的问题
- 【解决方案】Xcode制作inhouse的时候:Archive后无法导出ipa包
- VS.NET Beta2安装后添加/删除程序不能正常启动的问题的解决方案
- devexpress 16 17打包发布后,程序无法启动
- 苹果系统不能启动故障排除的DIY完全手册
- 装MySQl后不能启动的解决办法
- wifi关闭后不能启动的问题
- Android,程序反编译后的打包发布
- Spring boot程序的打包和启动
- 系统升级后不能启动
- MySQL hash index VS Btree index
- UITextView转UIImage
- 灰度图像--图像分割 Marr-Hildreth算子(LoG算子)
- js验证中括号
- 使android:fillAfter="true"在xml中起作用
- 苹果的又一个坑:InHouse打包后程序不能启动
- python 文件打开错误
- 复杂数据结构&算法可视化演示程序——学习数据结构最好方式
- OpenStack 的 Nova 和 Glance 组件
- oracle数据处理经验1
- Minimum Subarray——算法练习
- CONNECT_BY_ROOT获取根节点属性
- leetcide Valid Sudoku
- Linux 指令详解 chpasswd 批量修改用户密码