Upload to app store错误Unsupported architecture

错误提示:

image

错误原因:

是由于framework 包含了x86_64, i386 架构,这个是苹果不允许的。

解决办法:剔除掉x86_64, i386这两个架构

1、通过终端来去除
(1)查看一下framework包含的架构
lipo -info XXXX.framework/XXXX
或者
cd XXXX.framework
lipo -info XXXX

会出来结果

Architectures in the fat file: XXXX.framework/Realm are: i386 x86_64 armv7 arm64
(2)剔除
lipo XXXX.framework/XXXX -thin armv7 -output XXXX_armv7
 
lipo XXXX.framework/XXXX -thin arm64 -output XXXX_arm64
 
lipo -create XXXX_armv7 XXXX_arm64 -output XXXX

将这个重新output出来的XXXX替换之前的XXXX.framework/XXXX就好了,重新打包和真机运行都没问题

2、工程中添加脚本来去除
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_EXECUTAB LE_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

因为不是全部的sdk 都需要,所以这样会报错,只需要替换脚本中的一句代码就行,替换成需要的框架

$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK 
替换成
"$APP_PATH" -name '[frameworkname].framework' -type d | while read -r
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接在上一篇教程(中译版)中,你学到了怎么样创建一个可复用的圆形旋钮控件。然而你可能不清楚怎样让其他开发者更方...
    _冷忆阅读 7,210评论 9 5
  • 这几天公司有一个新的需求,就是要将我们开发的某些东西都抽取出来,打个比方我们开发了A项目,可以以后B项目要包含A项...
    黄鱼儿啦啦啦阅读 11,405评论 2 16
  • 本文目标:掌握封装及开发SDK的全部技巧 文章比较长,建议分模块阅读 内容提要:不同场景下如何封装及开发SDK ....
    Yochi阅读 18,007评论 12 88
  • 原博地址 :http://ios.jobbole.com/81583/ 本篇主要是根据对制作完整版的项目作为SDK...
    盖世英雄_ix4n04阅读 7,510评论 2 5
  • 指令集 通常会把CPU的扩展指令集称为”CPU的指令集”(因为基本的,类似加减的指令似乎是必须被CPU所支持的指令...
    JimmyL阅读 9,976评论 7 10

友情链接更多精彩内容