咱接著來說IPA processing failed 打包失敗的問題哈哈哈
如果不知道看上個(gè)文章http://www.reibang.com/p/27d780350211
看見這個(gè)大佬的文章又寫的 作者:進(jìn)階的coder 來源:掘金
再先說下Xcode11新特性
深色模式
如果沒有任何配置的話,升級(jí)后科雳,APP的很多配置會(huì)隨著深色淺色模式的修改而改動(dòng)。但是對(duì)于我司來說,目前還沒有任何資源去適配深色模式凌净。解決方案蘋果已經(jīng)提供。本質(zhì)上來說是在代碼層面屏蔽深色模式斩芭。
我這直接就給隱藏了
還有解決方案:
在plist文件里新增屬性User Interface Style 數(shù)據(jù)格式為string耕挨。值設(shè)置為Light贪庙。
拓展:
1.當(dāng)然如果你要求強(qiáng)制適配深色模式就把值改為Dark。如果需要根據(jù)用戶的設(shè)置而改變翰苫,那就別設(shè)置這個(gè)屬性直接刪掉就好了止邮。
2.當(dāng)上面的屬性設(shè)置為Light或者Dark后,你的狀態(tài)欄文字顏色就會(huì)隨著你的
Status bar style屬性的改變而改變奏窑。這個(gè)屬性可以在Plist文件里設(shè)置导披,也可以在General里設(shè)置如下:
3.這里需要注意:
plist文件的里這個(gè)屬性(View controller-based status bar appearance)一定要設(shè)置會(huì)NO。如果不設(shè)置或者設(shè)置會(huì)YES埃唯。都會(huì)導(dǎo)致User Interface Style與Status bar style這個(gè)兩個(gè)配置失效撩匕。
上邊解決的作者:進(jìn)階的coder
繼續(xù)說IPA processing failed
不只是前幾天 現(xiàn)在也是一臉懵逼的點(diǎn)開show logs 如下
點(diǎn)開后就是 上個(gè)文章的那個(gè)文本里一堆。墨叛。
我是企業(yè)打包 上傳AppStore我嘗試好像沒問題止毕。其他的打包方式都會(huì)報(bào)這個(gè)錯(cuò)。
目前網(wǎng)上找到的解決方案跟解釋都沒能解決我這個(gè)問題漠趁。
1.有人說是如果APP不支持ipad扁凛,就不要勾選ipad。
2.有人說是部分第三方庫導(dǎo)致的闯传,更新一下就好了谨朝。(我覺得不是 就算是的話還一個(gè)一個(gè)的去弄么 一個(gè)大項(xiàng)目里邊兒會(huì)又很多吧)
解決方案
熟悉編譯與系統(tǒng)原理的朋友,面對(duì)這個(gè)問題應(yīng)該很好解決丸边,不走xcode的打包就好了〉兀現(xiàn)在把步驟解釋如下:
1.先把項(xiàng)目的環(huán)境配置好,例如你要打developer包妹窖,就先在項(xiàng)目里把相應(yīng)的描述文件跟證書配置好纬朝,然后command +B(編譯)。編譯完成后骄呼,找到項(xiàng)目文件夾里的.app文件共苛。
2.選中該文件,show in finder蜓萄。然后壓縮隅茎。壓縮完成后把壓縮包后綴改為ipa。
這樣就完成了嫉沽,該分發(fā)分發(fā)辟犀,該重簽名重簽名。
這個(gè)方法比較麻煩并且會(huì)出現(xiàn)最后安裝報(bào)錯(cuò)的情況APIinternalError...
之后在[@Leoeoo] 大神的告訴下說是
iOS13蘋果取消了32位系統(tǒng)的支持,SDK包含i386 x86_64架構(gòu)
所以我就根據(jù)大神的提示看了下IDEDistribution.standard.log
就找到了
由于大神那時(shí)還沒回復(fù)我用:lipo -remove x86_64 NIMSDK -o NIMSDK 刪掉
所以我就在自己搜尋了下剔除掉x86_64, i386這兩個(gè)架構(gòu)SDK
網(wǎng)上看的一種不保險(xiǎn)的的方法是在程序里加一個(gè)腳本绸硕,剔除禁止的架構(gòu) 好像也是可以的(是可以堂竟,但是真機(jī)下就不行了 會(huì)報(bào)錯(cuò) 下面會(huì)說 )()
主要操作流程如下
解決辦法:TARGETS->Build Phases->點(diǎn)擊加號(hào)選擇New Run Script Phase->然后復(fù)制粘貼下面代碼
# 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
結(jié)束打包 完美解決~~~ (此事件應(yīng)該畫上句號(hào)了)但是
沒想到 真機(jī)跑的時(shí)候我又出現(xiàn)了(不知道你們盎昊佟)
所以先找找看吧 就找到了new build system(我記得我以前弄過)
Xcode菜單欄選擇File-- Workspace Setting,把new build system(Defalt)切換到 Legacy Build System 在模擬器上運(yùn)行就OK出嘹!
以為OK了 又出現(xiàn)了
一些錯(cuò)誤就迷茫了~ 如果有大佬知道怎么繼續(xù)解決告訴我下??
后來想反正都是刪這個(gè)東西
看來還是得用大神的方法 那咱就繼續(xù)操作 http://www.reibang.com/p/0145916f2139
一個(gè)一個(gè)刪吧
還是得需要記錄下的~
先找到那個(gè)log 所用的API是那個(gè) 我的是這個(gè)
各種架構(gòu)解釋:
模擬器32位處理器測試需要i386架構(gòu)席楚,(iphone5,iphone5s以下的模擬器)
模擬器64位處理器測試需要x86_64架構(gòu),(iphone6以上的模擬器)
真機(jī)32位處理器需要armv7,或者armv7s架構(gòu)税稼,(iphone4真機(jī)/armv7, ipnone5,iphone5s真機(jī)/armv7s)
真機(jī)64位處理器需要arm64架構(gòu)烦秩。(iphone6,iphone6p以上的真機(jī))
解決辦法
刪除SDK中的i386,x86_86架構(gòu)
我當(dāng)前使用到了NIMSDK.framework這個(gè)SDK郎仆,假設(shè)NIMSDK.framework存放的目錄是:
/Users/leo/Desktop/testDir/NIMSDK.framework
1.使用終端進(jìn)入到SDK內(nèi)部
cd /Users/leo/Desktop/testDir/NIMSDK.framework
2.查看當(dāng)前支持的架構(gòu)
lipo -info NIMSDK
可以看到NIMSDK當(dāng)前支持的架構(gòu):
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
弄好了弄了一次之后打包還是不行 我就又看啊~
原來還是這個(gè) 是另個(gè)API 周而復(fù)始 我刪了4個(gè)
抱著滿懷期望打包成功了 成功了不行啊 我就看了下真機(jī)可以不 也OK (反正我司暫時(shí)不需要模擬器)
可算
畫上句號(hào)了~~~!H偶 C!=瞥堋6掌省!R恼A朐怼!U油贰爷绘!
有幫到你的話先點(diǎn)個(gè)贊吧哈哈~
還有個(gè)Xcode11:隱蔽的點(diǎn)點(diǎn)點(diǎn) 我這個(gè)我給去掉了是10的時(shí)候就去了?
要隱藏這些點(diǎn)點(diǎn)點(diǎn)进倍,看下圖:只需要不勾選這個(gè)選項(xiàng)就好了土至。