Xcode 9:xcodebuild -exportArchive 错误读取文件:info.plist

Posted

技术标签:

【中文标题】Xcode 9:xcodebuild -exportArchive 错误读取文件:info.plist【英文标题】:Xcode 9: xcodebuild -exportArchive Error Reading File: info.plist 【发布时间】:2017-10-06 19:01:42 【问题描述】:

我有一个具有多个构建配置和构建脚本的项目,该项目最近从 Xcode 8 迁移到 Xcode9。它可以从 Xcode 构建并运行良好的模拟器和设备,以及正确存档。但是,当我尝试从命令行构建或存档时,它会成功,但应用程序在打开时崩溃(在模拟器上)或给出错误消息(在设备上打开时)。

为了从 Jenkins 持续集成中归档,我正在运行

'xcodebuild -exportArchive -archivePath myApp.xcarchive -exportOptionsPlist ./build/exportArchive.plist -exportPath myApp.ipa'

它创建了一个ipa,但是当我尝试打开ipa时,它给了我这个错误:

“无法安装'错误读取文件:info.plist',请稍后再试。”

应用名称本身是“ErrorReadingFile:info.plist”

当我打开导出的 .ipa 文件时,它没有 dSYM 或 info.plist,只有一个带有 .app 的 Products 文件夹,除了一些 iPad 图标图像(这应该是通用应用程序)。


另外, 当我运行命令为模拟器构建和部署时:

xcodebuild -sdk iphonesimulator -configuration Debug -project myApp
xcrun simctl install <whatever device id> myApp.app
xcrun simctl launch <whatever device id> com.whatever.myApp

它成功安装了应用程序,然后在启动后立即崩溃,没有错误代码。 这是模拟器崩溃后报告中显示的内容:

线程崩溃:0 异常类型:EXC_CRASH (SIGABRT) 异常代码:0x0000000000000000, 0x0000000000000000 异常说明:EXC_CORPSE_NOTIFY 终止原因:DYLD, [0x9]

如何从命令行正确构建/运行/存档??

【问题讨论】:

【参考方案1】:

我可以建议制作“存档”,然后直接从 Xcode 中“导出存档”,只是为了弄清楚是构建问题还是脚本问题。

您说您有多种配置。也许您正在构建错误的方案?

你能提供你的构建命令吗?

此外,xcode 9 对 exportArchive.plist 有新的要求。如果您直接从 Xcode 中导出存档,它会将用于导出的 plist 与导出结果一起保存。您可以稍后在构建脚本中使用它。

【讨论】:

【参考方案2】:

我使用 fastlane 在 CI 上构建应用程序。这比手动制作所有东西要容易。 我使用follow lane来建立一个开发档案:

lane :development_archive do
    gym(
        output_directory: ENV['ARTIFACT_OUTPUT_DIRECTORY'],
        output_name: ENV['IPA_ARCHIVE_NAME'],
        scheme: ENV['SCHEME'],
        include_bitcode: false,
        configuration: 'Debug',
        export_method: "development",
    )
end

在命令行中,我只需键入fastlane development_archive 即可获取 IPA 存档。也许,您应该向 Fastlane 脚本添加额外的步骤,例如安装 pod。阅读文档,Fastlane 是 CI 的绝佳工具。

【讨论】:

以上是关于Xcode 9:xcodebuild -exportArchive 错误读取文件:info.plist的主要内容,如果未能解决你的问题,请参考以下文章

无效的 Swift 支持 - 适用于 iOS 9 的 Swift 2.0 项目,(Xcode build 7A220)

xcodebuild 比 Xcode 慢得多?

为啥在使用 XCode 和 xcodebuild 之间存在差异?

xcodebuild 更新到 xcode 4.3 后移动

Xcode 7.2 使用 xcodebuild 构建项目失败

Xcode 8、xcodebuild、多个 bundle ID 和 Provisioning Profiles