以下是2017.9.27寫的內(nèi)容, 今天是2017.10.9, 更新一下, 9.27寫的內(nèi)容, 我個人感覺是錯誤的, 因?yàn)椴荒芙鉀Q根本問題.
一. 環(huán)境
macOS: 10.12.6 (16G29)
Xcode: 9
二. 通過application loader上傳ipa的時候遇到的問題
遇到這個問題后, 當(dāng)然第一時間要去查看icon的圖片是否真的丟失, 但是icon 120*120是存在的.
然后, 通過在網(wǎng)上搜索, 查到多種方案, 嘗試后, 沒有卵用, 花費(fèi)了一天多一點(diǎn), 有點(diǎn)郁悶.
三. 網(wǎng)上的大部分解決方案
遇到問題, 第一時間找度娘. 大概有一下幾個解決方案.
- 是cocoapods的鍋, 按照攻略改了之后, 沒卵用...
- 是info.plist的鍋, 改了之后, 也沒有卵用....
以上兩種隨便一搜就有, 不多說.
四 .最終如何解決的呢?
感謝 談?wù)刋Code9打包上傳遇到的問題與解決方案.
以下圖片也是借用對方的圖片.
-
第一步: 正常archive打包, build successed后, 會生成.xcarchive文件, 如下圖:
右擊.xcarchive, 然后show in finder
右擊該文件, 顯示包內(nèi)容
- 打開終端命令,定位到此處, 輸入命令
find Products/ -name Info.plist -print0 | xargs -0n1 plutil -replace BuildMachineOSBuild -string 16A323
-
點(diǎn)擊upload App Store直接上傳或者點(diǎn)擊Export導(dǎo)出后, 使用application loader
五.補(bǔ)充與思考
在 "四 .最終如何解決的呢?" 中的第4條, 簡單看了一下那一條命令, 理解命令后, 可以不用命令, 按如下步驟手動操作:
a.如圖操作
b.打開info.plist, 改變BuildMachineOSBuild
上圖是我已經(jīng)修改后的結(jié)果, 最初的不是16A323, 而是16G29,
wiki上搜索后查到macOS Sierra的結(jié)果:
目前還不知道為什么換了之后就可以了.或許把macOS升級到10.12.7之后, 再嘗試一下, 可能也不會在有這個問題了吧.
我是分割線
以下是10.9更新的內(nèi)容
補(bǔ)充: 我把macOS升到10.13依然不行, 還有90022的問題
問題:
打包的時候依然會有90022的問題, 用Xcode9跑到iPhone8的模擬器上之后, 發(fā)現(xiàn)iPhone8模擬器上沒有APP的圖標(biāo)
解決:
參考: https://stackoverflow.com/questions/46462871/missing-required-icon-files-in-build-from-xcode-9
在podfile
里面增加:
post_install do |installer|
installer.aggregate_targets.each do |target|
copy_pods_resources_path = "Pods/Target Support Files/#{target.name}/#{target.name}-resources.sh"
string_to_replace = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"'
assets_compile_with_app_icon_arguments = '--compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"'
text = File.read(copy_pods_resources_path)
new_contents = text.gsub(string_to_replace, assets_compile_with_app_icon_arguments)
File.open(copy_pods_resources_path, "w") {|file| file.puts new_contents }
end
end
然后重新pod install即可.
示例:
需要注意的是: target.name是pods下的target.name, 不是主工程的target.name, 90022應(yīng)該是cocoapods的bug.