iOS 添加第三方.framework 打包上传iTunesConnect 遇到的坑
1、添加完第三方库,模拟器运行没事,打iOS通用设备包的时候报一个错。
ld: '/Users/jiangwei.wang/Documents/Project/APP NAME/SeosMobileKeysSDK.framework/SeosMobileKeysSDK' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. file '/Users/jiangwei.wang/Documents/Project/APP NAME/SeosMobileKeysSDK.framework/SeosMobileKeysSDK' for architecture arm64
大概意思是说用的第三方库 不包含 bitcode ,要么需要第三方库包含 bitcode ,要么把 enable bitcode 设置为NO.
第三方库没有乱动,target->build setting->search "enable bitcode" 把 enable bitcode 设置为NO.重新编译。build success
2、第一步完成之后,打好包,上传到iTunes connect 时遇到的错误:
错误类型(1)、
ERROR ITMS-90087: "Unsupported Architectures. The executable for APP NAME.app/Frameworks/BerTlv.framework contains unsupported architectures '[x86_64, i386]'."
大概意思是说,*.framework 包含了上架不需要的架构('[x86_64, i386]')支持。应该去除。
错误类型 (2)、
ERROR ITMS-90209: "Invalid Segment Alignment. The app binary at 'APP NAME.app/Frameworks/BerTlv.framework/BerTlv' does not have proper segment alignment. Try rebuilding the app with the latest Xcode version."
错误类型 (3)、
ERROR ITMS-90125: "The binary is invalid. The encryption info in the LC_ENCRYPTION_INFO load command is either missing or invalid, or the binary is already encrypted. This binary does not seem to have been built with Apple's linker."
以上2、3个错误都应该是错误类型1导致的。
解决办法:去除第三方框架中不需要的架构支持
target --> build Phases --> 第一行最左边+ --> new run script support.
注意:最好把脚本下面的 “run scripts only on installing”, 不然的话,跑模拟器是会报错的:原因是,真机调试或者打包不需要 i386 支持, 真机是 苹果的A7, A10 等处理器架构,ARMS V7S 等,但是 在 MAC 上,模拟器的处理器还是基于Intel CPU的 i386架构的。
Showing Recent Errors Only
fatal error: lipo: -extract i386 specified but fat file: /Users/jiangwei.wang/Library/Developer/Xcode/DerivedData/APP NAME-ffatymfkewtsvbanmvhqynqbhveq/Build/Products/Release-iphonesimulator/APP NAME.app/Frameworks/SeosMobileKeysSDK.framework/SeosMobileKeysSDK does not contain that architecture
在脚本添加以下语句。可以保证打包时去除不必要的架构支持
用脚本:
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}" # This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH" EXTRACTED_ARCHS=() for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
rm "${EXTRACTED_ARCHS[@]}" echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH" done
iOS 添加第三方.framework 打包上传iTunesConnect 遇到的坑的更多相关文章
- IOS 发布程序(打包上传)
• 发布程序的主要步骤 登录开发者主页 生成cer证书:cer是一个跟电脑相关联的证书文件,让电脑具备发布程序的功能 添加App ID:发布哪些app? 生成MobileProvision文件:生成一 ...
- iOS 开发 -----公司测试打包上传流程
打包iOS应用程序 如果想要将做的iOS应用程序安装到自己的iOS设备上测试.或者安装到别人的iOS设备上,或者想发布到App Store中,先要给应用签名.签名就要有证书,这就需要申请证书的过程了. ...
- iOS 打包上传AppStore相关(3)-iTunes相应配置以及使用蒲公英网站进行应用托管分发(链接/二维码)
上一篇讲到我们最终生成了一个格式为 .xcarchive 的文件(可以右键并Show in Finder)查看.本篇我们就进行最后的设置,打包上传.另外,还有一个小福利,那就是打测试包分发链接测试. ...
- iOS 打包上传AppStore相关(2)-Xcode相应配置
上一篇描述了如何在AppleDeveloper创建Certificates.App IDs和Provisioning Profiles的过程.本篇将详细描述在Xcode部分我们需要做的配置. 1.配置 ...
- iOS 打包上传AppStore相关(1)-相关证书配置
最近一个老项目需要更新迭代,一个新的项目需要上线.有一些自己出现的BUG,也有一些没搞懂到处翻资料的问题.在此想做一个总结,写一下总体步骤,尽可能的详细一些,以及自己的一些理解.有很多步骤因为我们查阅 ...
- ios使用xcode进行Archive打包上传出现的常见错误
error itms 90362上传appstore 一直报错ERROR ITMS-90362: "Invalid Info.plist value. The value for the k ...
- iOS APP打包上传到APPstore的最新步骤
一.前言: 作为一名iOS开发者,把辛辛苦苦开发出来的App上传到App Store是件必要的事.但是很多人还是不知道该怎么上传到App Store上 下面就来详细讲解一下具体流程步骤. 二.准备: ...
- iOS自动化打包上传的踩坑记
http://www.cocoachina.com/ios/20160624/16811.html 很久以前就看了很多关于iOS自动打包ipa的文章, 看着感觉很简单, 但是因为一直没有AppleDe ...
- iOS 日志系统 本地日志打包上传到服务器
日志系统主要包含两个部分 1.本地保存 我们知道NSLog打印的日志一般都是直接输出到控制台,开发人员可以在控制台直接看到实时打印的log,既然可以在控制台输出,那么能否将日志输出到其他地方呢,比如说 ...
随机推荐
- c# 创建项目时提示:未能正确加载“microsoft.data.entity.design.bootstrappackage.。。。。
google了下, 果然找到办法了.看有的说要卸载,再清理注册表,真心不愿意啊,这安装一次就得好长时间.还好找到了这篇博文,无需卸载重安装,很简单的解决的方式,具体见http://blog.sina. ...
- php中cal_days_in_month不可用时的替代方法(计算一个月的天数)
在计算某个月中的天数时,由于PHP编译时没有加上--enable-calendar选项,会导致cal_days_in_month方法不可用. 这时,如果不能更改服务器的编译设置,可以通过以下方法实现该 ...
- latex学习(三)
本文记录一点杂事. 1.vim下有个实时pdf预览的插件:https://github.com/xuhdev/vim-latex-live-preview 2.实时预览pdf的pdf查看器是:evin ...
- What-does-git-remote-and-origin-mean
https://www.quora.com/What-does-git-remote-and-origin-mean https://stackoverflow.com/questions/29235 ...
- 每日英语:These Gadgets Aim To Put Some Teeth Into The Internet Of Things
What the world needs now is a Web-enabled toothbrush. That part is clear to several oral-hygiene com ...
- Git应用实践(一)
[时间:2017-03] [状态:Open] [关键词:Git,ssh,远程仓库,git remote] 0-背景 近期在使用Git@oschina上发现以下两个问题: 我的提交有两个名和email, ...
- [firefox] Scrapbook Plus的改进版Scrapbook X
我在两年前的博文<Firefox上一些我用于知识管理的扩展> 里面提到过我在用Scrapbook Plus这个Firefox扩展, 用它来撷取网页构建自己的知识库(可以加标注.可以搜索.可 ...
- [转]RabbitMQ入门教程(概念,应用场景,安装,使用)
原文地址:https://www.jianshu.com/p/dae5bbed39b1 RabbitMQ 简介 RabbitMQ是一个在AMQP(Advanced Message Queuing Pr ...
- android平台的三个编译命令——make,mm,mmm
在Android源码根目录下,执行以下三步即可编译android: 1. build/envsetup.sh #这个脚本用来设置android的编译环境; 2. lunch #选择编译目标 3 ...
- Yii2中的composer
1.下載composer 2.composer 插件或組件 3.有三處修改 a.composer require 的插件在vender下 b.同時vender下的composer文件修改 c.comp ...