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

时间:2017-10-06 19:01:43

标签: ios xcodebuild xcode9 simctl

我有一个包含多个构建配置和构建脚本的项目,最近从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文件时,它没有dSYMs或info.plist,只有一个带有.app的Products文件夹,除了一些iPad图标图像外,.app文件全部为空(这应该是一个通用的应用程序)。

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

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]

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

2 个答案:

答案 0 :(得分:1)

我可以建议直接从Xcode制作'archive',然后'export archive',只是为了弄清楚它是构建问题还是脚本问题。

你说你有多种配置。也许你正在构建错误的计划?

您能提供构建命令吗?

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

答案 1 :(得分:1)

我在CI上使用fastlane构建应用。比手工制作所有东西更容易。 我使用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的一个重要工具。