2016-12-01 353 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(" ", "\\ ")