该文章主要是记录 iOS 打包遇到的一些问题。
The data couldn’t be read because it isn’t in the correct format
- 打包的时候遇到一个奇怪的报错信息
The data couldn’t be read because it isn’t in the correct format
,查看日志文件发现报can not load such file -- sqlite3 (LoadError)
的错误信息
/Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- sqlite3 (LoadError)
from /Library/Ruby/Site/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:24:in `<main>'
2018-12-04 20:14:31 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with 1
2018-12-04 20:14:31 +0000 ipatool JSON: (null)
大概意思就是找不到 sqlite3 这个文件
解决办法如下:
gem list | grep sqlite3
如果没有输出信息则说明确实少了 sqlite3 这个文件。
执行下面这条命令安装。
gem install sqlite3 --platform=ruby
安装成功后如果没有生效的话就重启电脑吧。
如果并不是报缺少某个文件的错误信息,可以使用以下命令来检测工程配置文件语法是否有错。
plutil Info.plist
Xcode 10: unable to attach DB error
使用命令行打包 .a 文件在 Xcode 10 有遇到这个问题,在 Xcode 9 上面是正常的。
Build system information
error: unable to attach DB: error: accessing build database "/Users/lihs/Library/Developer/Xcode/DerivedData/UserCenter-dafymnmmjxddclfxazuozrgwchms/Build/Intermediates.noindex/XCBuildData/build.db": database is locked Possibly there are two concurrent builds running in the same filesystem location.
** BUILD FAILED **
Build settings from command line:
SDKROOT = iphoneos12.4
TOOLCHAINS = com.apple.dt.toolchain.XcodeDefault
note: Using new build system
note: Planning build
查了下 stackoverflow ,大佬们早已经解决了这个问题链接
只要在 xcodebuild 命令下加个参数 OBJROOT="${OBJROOT}/DependentBuilds" 完美解决问题:
xcodebuild -workspace ${PROJECT_NAME}.xcworkspace -scheme ${PROJECT_NAME} -sdk iphoneos -configuration ${CONFIGURATION} OBJROOT="${OBJROOT}/DependentBuilds"