I had a bot that was working perfectly under Xcode 6.4. An after trigger script was automatically uploading the IPA using this path : "$XCS_OUTPUT_DIR/$XCS_PRODUCT"
However (even after redoing a bot from scratch) it appears that :
- $XCS_PRODUCT is Always empty.
- $XCS_OUTPUT_DIR is pointing to a folder that does not exist because after checking out on server it appears that Xcode server is storing .ipa there : /Library/Developer/XcodeServer/IntegrationAssets/
How to find my .ipa without this variable during my after trigger script?
I had the same problem and after discussion on Apple Developer Forums I found out that there actually is .IPA file inside
/Library/Developer/XcodeServer/Integrations/Integration-INTEGRATION_ID/ExportedProduct/
directory and you can access it from After Trigger Script by using something like
originalBinaryName=$(basename "${XCS_ARCHIVE%.*}".ipa)
originalBinaryPath="${XCS_OUTPUT_DIR}/ExportedProduct/Apps/${originalBinaryName}"
I have also sent a bug report, because $XCS_PRODUCT should not be empty anyway, and it would be nice to have new environment variable for the complete path of .IPA file.
来源:https://stackoverflow.com/questions/32699179/continuous-integration-xcode-server-after-trigger-xcs-product-not-set