Search code examples
jenkinscalabash-ios

Unable to auto detect APP_BUNDLE_PATH for Calabash + Jenkins


I have integrated iOS project with Jenkins. To run the automation test cases I am using the below code in shell script.

export DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer/
export CODESIGN_ALLOCATE=`xcode-select -print-path`/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate 


xcodebuild -alltargets clean
xcodebuild -alltargets
xcodebuild -sdk iphonesimulator \
           -project Myapp.xcodeProj \
           -scheme Myapp-cal \
           ONLY_ACTIVE_ARCH=NO \
           CONFIGURATION_BUILD_DIR="$WORKSPACE/build" \
           clean build
cucumber  

The automation testing is working fine in xcode where as with Jenkins getting the below error.

Unable to auto detect APP_BUNDLE_PATH. Have you built your app for simulator? Searched dir: /Users/test/Library/Developer/Xcode/DerivedData/Myapp-fayplezntrxmdqeteknsfkkvtzla/Build/Products Please build your app from Xcode You should build the -cal target.

Help appreciated


Solution

  • I believe all you need to do is export your APP_BUNDLE_PATH in your script before you call cucumber.

    Something like this:

    export APP_BUNDLE_PATH="${WORKSPACE}/build/Build/Products/Debug-iphonesimulator/Myapp-cal.app"
    cucumber
    

    To see an example of this in the wild see the briar-ios-example repo. [1]

    FYI/BTW APP and APP_BUNDLE_PATH are interchangeable. [2]