WebRTC.Framework: Non-public API usage问题

我们项目内用到了WebRTC做即时通讯,今天打包上传App Store Connnect发现一直被拒,提示我们是用到的WebRTC涉及私有API访问;
如下图:
在这里插入图片描述

这搞得我有点头大,因为
1、我们的这个版本的WebRTC在AppStore已经上传过一个版本了;
2、我们的客户也用我们的库上架了;
让我一度怀疑是苹果的审核政策又改了;
后来经过排查发现问题如下,比较坑,特记录在此;

1、AppStore目前只支持真机SDK上传

我们的是包含模拟器的
在这里插入图片描述

2、将模拟器版本剔除方式

2.1、 指令剔除

剔除指令如下:

lipo -remove x86_64 WebRTC -o WebRTC

在这里插入图片描述

2.2、 项目内脚本剔除

剔除脚本如下:

#!/bin/sh

#  RScript.sh
#  HDSFM
#
#  Created by Chenfy on 2019/11/28.
#  Copyright © 2019 Chenfy. All rights reserved.

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

3、问题所在

出现问题的地方就是对模拟器的剔除方式不同导致的;
之前都是脚本 【2.2节】 剔除;后来直接指令剔除,然后就出现了上面现象,具体原因还未知;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章