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節】 剔除;後來直接指令剔除,然後就出現了上面現象,具體原因還未知;

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