2016-12-01 355 views
1

jenkins安裝在OS X Sierra中,我嘗試創建一個作業 我已經在KeyChain和Provisioning Profiles Management插件中上傳了配置文件。 在作業配置中,在「生成環境」部分的「移動配置配置文件」中,選擇相應的配置文件。 當運行構建,我得到這些錯誤在Jenkins複製mobileprovision文件時無法複製錯誤

FATAL: Failed to copy /Users/Shared/Jenkins/Home/kpp_upload/abcdfe-e441-407b-ba4a-34e97bf71f5b.mobileprovision to /Users/*****/Library/MobileDevice/Provisioning Profiles/abcdfe-e441-407b-ba4a-34e97bf71f5b.mobileprovision 
     java.io.IOException: Failed to copy /Users/Shared/Jenkins/Home/kpp_upload/abcdfe-e441-407b-ba4a-34e97bf71f5b.mobileprovision to /Users/*****/Library/MobileDevice/Provisioning Profiles/abcdfe-e441-407b-ba4a-34e97bf71f5b.mobileprovision 
    at .  
     hudson.FilePath.copyTo(FilePath.java:2018) 
    at .     com.sic.plugins.kpp.KPPProvisioningProfilesBuildWrapper.copyProvisioningProfiles(KPPProvisioningProfilesBuildWrapper.java:161) 
    at .    com.sic.plugins.kpp.KPPProvisioningProfilesBuildWrapper.setUp(KPPProvisioningProfilesBuildWrapper.java:99) 
    at . hudson.model.Build$BuildExecution.doRun(Build.java:156) 
    at .    hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534) 
    at  hudson.model.Run.execute(Run.java:1720) 
    at  hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at  hudson.model.ResourceController.execute(ResourceController.java:98) 
    at  hudson.model.Executor.run(Executor.java:404) 
    Caused by:  java.io.FileNotFoundException: /Users/*****/Library/MobileDevice/Provisioning Profiles/abcdfe-e441-407b-ba4a-34e97bf71f5b.mobileprovision (Permission denied) 
    at  java.io.FileOutputStream.open0(Native Method) 
    at  java.io.FileOutputStream.open(FileOutputStream.java:270) 
    at  java.io.FileOutputStream.<init>(FileOutputStream.java:213) 
    at  java.io.FileOutputStream.<init>(FileOutputStream.java:162) 
    at  hudson.FilePath.write(FilePath.java:1907) 
    at  hudson.FilePath.copyTo(FilePath.java:2011) 
    ... 8 more 
    Finished: FAILURE 

當我在終端運行命令從源文件夾複製文件的目標文件夾,它成功。但jenkins無法複製

回答

0

問題是目標路徑中有一個文件夾「Provisioning Profiles」,其中有一個空格。

將它放到沒有空白的文件夾中,或者在代碼中跳過空格。

<string path>.replaceAll(" ", "\\ ")