坑
最近幫部門(mén)內(nèi)部其他小組利用RN寫(xiě)app,但是對(duì)于移動(dòng)開(kāi)發(fā)的中的,ios和 android工程上的問(wèn)題,
沒(méi)有移動(dòng)開(kāi)發(fā)經(jīng)驗(yàn)還是不行的,所以,工程相關(guān)的坑,就讓我來(lái)趟了。
打包上傳,本以為沒(méi)什么問(wèn)題,結(jié)果出了幾個(gè)錯(cuò)誤

itsm-90087
提示自建的framework包包含了不支持的架構(gòu) x86_64,之前用存靜態(tài)庫(kù)(.a)是沒(méi)有這個(gè)問(wèn)題,
查閱相關(guān)資料得知,自建framework在打正式包的時(shí)候,需要自己做 thin 處理,
lipo Stickies.app/Contents/MacOS/Stickies -thin i386
-output Stickies.app/Contents/MacOS/Stickies.i386
例如上段命令,可以從 fat 過(guò)的包中,提取出某個(gè)架構(gòu)的包。
Daniel Kennett
給出了他的方案,在 Build Phases -> Embed Frameworks 之后加一個(gè) Run Script 即可
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
作用是根據(jù)工程聲明,做thin處理,替換framework
itsm-90362
這個(gè)itsm提示另一個(gè)的framework的info.plist有問(wèn)題,提示版本號(hào)問(wèn)題,查看一下
最小版本是7.0,沒(méi)有問(wèn)題啊,實(shí)在搞不清楚為什么提示我8.0,我的app版本是8.0
framework版本是7.0 沒(méi)有任何問(wèn)題啊,
原來(lái)是自建framework最小要求ios8.0的原因,把該framework改成8.0,問(wèn)題解除
access privacy-sensitive
終于通過(guò)提交,結(jié)果收到蘋(píng)果一封信
This app attempts to access privacy-sensitive data without a usage description.
The app's Info.plist must contain an NSCameraUsageDescription key with a string
value explaining to the user how the app uses this data.
感情是我用到了相機(jī),但是沒(méi)有申請(qǐng)?jiān)L問(wèn)該權(quán)限的說(shuō)明,好吧,在info.plist 里面加上
<key>NSCameraUsageDescription</key>
<string>支付安全考慮</string>