咱接着来说IPA processing failed 打包失败的问题哈哈哈
如果不知道看上个文章https://www.jianshu.com/p/27d780350211
看见这个大佬的文章又写的 作者:进阶的coder 来源:掘金
再先说下Xcode11新特性
深色模式
如果没有任何配置的话,升级后,APP的很多配置会随着深色浅色模式的修改而改动。但是对于我司来说,目前还没有任何资源去适配深色模式。解决方案苹果已经提供。本质上来说是在代码层面屏蔽深色模式。
我这直接就给隐藏了
还有解决方案:
在plist文件里新增属性User Interface Style 数据格式为string。值设置为Light。
拓展:
1.当然如果你要求强制适配深色模式就把值改为Dark。如果需要根据用户的设置而改变,那就别设置这个属性直接删掉就好了。
2.当上面的属性设置为Light或者Dark后,你的状态栏文字颜色就会随着你的
Status bar style属性的改变而改变。这个属性可以在Plist文件里设置,也可以在General里设置如下:
3.这里需要注意:
plist文件的里这个属性(View controller-based status bar appearance)一定要设置会NO。如果不设置或者设置会YES。都会导致User Interface Style与Status bar style这个两个配置失效。
上边解决的作者:进阶的coder
继续说IPA processing failed
不只是前几天 现在也是一脸懵逼的点开show logs 如下
点开后就是 上个文章的那个文本里一堆。。
我是企业打包 上传AppStore我尝试好像没问题。其他的打包方式都会报这个错。
目前网上找到的解决方案跟解释都没能解决我这个问题。
1.有人说是如果APP不支持ipad,就不要勾选ipad。
2.有人说是部分第三方库导致的,更新一下就好了。(我觉得不是 就算是的话还一个一个的去弄么 一个大项目里边儿会又很多吧)
解决方案
熟悉编译与系统原理的朋友,面对这个问题应该很好解决,不走xcode的打包就好了。现在把步骤解释如下:
1.先把项目的环境配置好,例如你要打developer包,就先在项目里把相应的描述文件跟证书配置好,然后command +B(编译)。编译完成后,找到项目文件夹里的.app文件。
2.选中该文件,show in finder。然后压缩。压缩完成后把压缩包后缀改为ipa。
这样就完成了,该分发分发,该重签名重签名。
这个方法比较麻烦并且会出现最后安装报错的情况APIinternalError...
之后在[@Leoeoo] 大神的告诉下说是
iOS13苹果取消了32位系统的支持,SDK包含i386 x86_64架构
所以我就根据大神的提示看了下IDEDistribution.standard.log
就找到了
由于大神那时还没回复我用:lipo -remove x86_64 NIMSDK -o NIMSDK 删掉
所以我就在自己搜寻了下剔除掉x86_64, i386这两个架构SDK
网上看的一种不保险的的方法是在程序里加一个脚本,剔除禁止的架构 好像也是可以的(是可以,但是真机下就不行了 会报错 下面会说 )()
主要操作流程如下
解决办法:TARGETS->Build Phases->点击加号选择New Run Script Phase->然后复制粘贴下面代码
# Type a script or drag a script file from your workspace to insert its path.
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
结束打包 完美解决~~~ (此事件应该画上句号了)但是
没想到 真机跑的时候我又出现了(不知道你们啊)
所以先找找看吧 就找到了new build system(我记得我以前弄过)
Xcode菜单栏选择File-- Workspace Setting,把new build system(Defalt)切换到 Legacy Build System 在模拟器上运行就OK!
以为OK了 又出现了
一些错误就迷茫了~ 如果有大佬知道怎么继续解决告诉我下😂
后来想反正都是删这个东西
看来还是得用大神的方法 那咱就继续操作 https://www.jianshu.com/p/0145916f2139
一个一个删吧
还是得需要记录下的~
先找到那个log 所用的API是那个 我的是这个
各种架构解释:
模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器)
模拟器64位处理器测试需要x86_64架构,(iphone6以上的模拟器)
真机32位处理器需要armv7,或者armv7s架构,(iphone4真机/armv7, ipnone5,iphone5s真机/armv7s)
真机64位处理器需要arm64架构。(iphone6,iphone6p以上的真机)
解决办法
删除SDK中的i386,x86_86架构
我当前使用到了NIMSDK.framework这个SDK,假设NIMSDK.framework存放的目录是:
/Users/leo/Desktop/testDir/NIMSDK.framework
1.使用终端进入到SDK内部
cd /Users/leo/Desktop/testDir/NIMSDK.framework
2.查看当前支持的架构
lipo -info NIMSDK
可以看到NIMSDK当前支持的架构:
Architectures in the fat file: NIMSDK are: i386 x86_64 armv7 arm64
3.删掉i386,x86_86
lipo -remove i386 NIMSDK -o NIMSDK
lipo -remove x86_64 NIMSDK -o NIMSDK
弄好了弄了一次之后打包还是不行 我就又看啊~
原来还是这个 是另个API 周而复始 我删了4个
抱着满怀期望打包成功了 成功了不行啊 我就看了下真机可以不 也OK (反正我司暂时不需要模拟器)
可算
画上句号了~~~!!!!!!!!!!!!
有帮到你的话先点个赞吧哈哈~
还有个Xcode11:隐蔽的点点点 我这个我给去掉了是10的时候就去了?
要隐藏这些点点点,看下图:只需要不勾选这个选项就好了。