Awesome, good to hear about the Token Macro Plugin. Just FYI ${env:WORKSPACE} did not expand at all.
/usr/bin/xcodebuild -alltargets -configuration "Ad Hoc" build SYMROOT=${env:WORKSPACE}/build
I had a hunch that I decided to test. Based on the following log message
FATAL: /Jenkins/workspace/Test Project/build/Ad Hoc-iphoneos does not exist.
I guessed that the Build .ipa step was using the Master file systems instead of the Slave file system.
So I created /Jenkins/workspace/Test Project/build/Ad Hoc-iphoneos on the Jenkins Master.
Obviously the .ipa wasn't created but the log now shows
** BUILD SUCCEEDED **
Cleaning up previously generate .ipa files
Packaging IPA
Finished: SUCCESS
Based on that I agree that the problem is "a bug in how I compute the default build directory".
In the changelist above, In XCodeBuilder.java on line 128 you use the hudson.FilePath class. The JavaDoc for that constructor says
To create FilePath that represents a "local" path.
A "local" path means a file path on the computer where the constructor invocation happened.
I think instead you should use the following constructor with base = build.getWorkspace() and rel = symRootValue
public FilePath(FilePath base, String rel)
It says,
Construct a path starting with a base location.
Parameters:
base - starting point for resolution, and defines channel
rel - a path which if relative will be resolved against base
JavaDoc Ref
Hi Brad,
I read a little bit the xcodebuild documentation (http://www.manpagez.com/man/1/xcodebuild/) and this parameter can be passed as SYMROOT=<A_PATH>
Thus what I could propose is :
Let me know if it is what you have in mind. I'll implement it this week if we are agree.