Ios Xcode 9:xcodebuild-exportArchive读取文件时出错:info.plist

Ios Xcode 9:xcodebuild-exportArchive读取文件时出错:info.plist,ios,xcodebuild,xcode9,simctl,Ios,Xcodebuild,Xcode9,Simctl,我有一个包含多个构建配置和构建脚本的项目,最近从Xcode 8迁移到了Xcode 9。它从Xcode构建并运行到模拟器和设备,以及正确存档。然而,当我尝试从命令行构建或存档时,它成功了,但应用程序在打开时(在模拟器上)崩溃,或者给出错误消息(在设备上打开时) 要从Jenkins Continuous Integration存档,我正在运行 'xcodebuild -exportArchive -archivePath myApp.xcarchive -exportOptionsPlist ./b

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

要从Jenkins Continuous Integration存档,我正在运行

'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文件夹,而.app文件除了一些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
xcodebuild-sdk iphonesimulator-configuration Debug-project myApp
xcrun simctl安装myApp.app
xcrun simctl启动com.whatever.myApp
它成功安装了应用程序,然后在启动后立即崩溃,没有错误代码。 这是模拟器崩溃后报告中显示的内容:

崩溃线程:0异常类型:EXC_崩溃(SIGABRT) 异常代码:0x0000000000,0x0000000000000000 例外说明:EXC_Corbody_通知终止原因:DYLD, [0x9]


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

我可以建议先进行“归档”,然后直接从Xcode“导出归档”,只是想弄清楚这是构建还是脚本的问题

你说你有多种配置。也许你制定了错误的计划

你能提供你的构建命令吗


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

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

你说你有多种配置。也许你制定了错误的计划

你能提供你的构建命令吗

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

我用于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\u archive
即可获得IPA归档。也许,您应该在Fastlane脚本中添加其他步骤,比如安装pods。阅读文档,Fastlane是CI的一个伟大工具。

我用于在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\u archive
即可获得IPA归档。也许,您应该在Fastlane脚本中添加其他步骤,比如安装pods。阅读文档,Fastlane是一个伟大的CI工具