2017-10-06 40 views
0

我有一個項目具有多個構建配置和構建腳本,最近從Xcode 8遷移到Xcode9。它的構建和運行都適用於Xcode的模擬器和設備,並且可以正確存檔。但是,當我嘗試從命令行構建或存檔時,它會成功,但是應用程序在打開時(模擬器上)崩潰或給出錯誤消息(在設備上打開時)。Xcode 9:xcodebuild -exportArchive錯誤讀取文件:info.plist

從詹金斯持續集成歸檔,我跑

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

,並創建一個IPA,但是當我嘗試打開IPA,它給了我這個錯誤:

"Unable To Install 'Error Reading File: info.plist' Please try again later."

and the app name itself is "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 

它成功地安裝應用程序,然後用無錯誤代碼發射後立即崩潰。 這是在報表中顯示的模擬器崩潰後:

Crashed Thread: 0 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x0000000000000000, 0x0000000000000000 Exception Note: EXC_CORPSE_NOTIFY Termination Reason: DYLD, [0x9]

我如何得到這個命令行正確編譯/運行/歸檔?

回答

1

我可以建議直接從Xcode製作'archive',然後'export archive',只是爲了弄清楚它是構建還是腳本的問題。

你說你有多種配置。也許你正在制定錯誤的計劃?

你能提供你的構建命令嗎?

另外,xcode 9對exportArchive.plist有新的要求。如果您將直接從Xcode導出歸檔文件,它將保存用於導出的plist和導出結果。您可以稍後在構建腳本中使用它。

1

我使用fastlane在CI上構建應用程序。這比手動製作所有內容容易。 我用後續車道建設發展檔案:

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腳本添加額外的步驟,例如安裝窗格。閱讀文檔,Fastlane是CI的一個重要工具。