{"id":15449,"library":"gulp-phonegap-build","title":"Gulp Plugin for Adobe PhoneGap Build","description":"This Gulp plugin was designed to automate the process of uploading application files to the now-defunct build.phonegap.com service and triggering cloud builds. While the package itself is available on npm at version 0.1.5, the core service it integrates with, Adobe PhoneGap Build, was officially discontinued by Adobe on October 1, 2020. This renders the plugin non-functional for its original purpose. The project was in 'BETA' and under 'active development' at the time of its last update, forking from `grunt-phonegap-build` to provide similar functionality for Gulp users. Its key differentiators were its direct integration with Gulp streams and the ability to configure various PhoneGap Build parameters like app ID, user credentials, target platforms, and signing keys directly within a `gulpfile.js`.","status":"abandoned","version":"0.1.5","language":"javascript","source_language":"en","source_url":"git://github.com/marcbuils/gulp-phonegap-build","tags":["javascript","gulp","gulpplugin","phonegap"],"install":[{"cmd":"npm install gulp-phonegap-build","lang":"bash","label":"npm"},{"cmd":"yarn add gulp-phonegap-build","lang":"bash","label":"yarn"},{"cmd":"pnpm add gulp-phonegap-build","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"This is a Gulp plugin and requires Gulp to be installed as a peer dependency for task runner integration.","package":"gulp","optional":false}],"imports":[{"note":"The plugin is designed for CommonJS environments typical of Gulpfiles from its era (Node.js >= 0.8.0). ESM `import` syntax is not supported and will not work.","wrong":"import phonegapBuild from 'gulp-phonegap-build';","symbol":"phonegapBuild","correct":"const phonegapBuild = require('gulp-phonegap-build');"}],"quickstart":{"code":"var gulp = require('gulp');\nvar phonegapBuild = require('gulp-phonegap-build');\n\n// NOTE: This plugin is non-functional as the Adobe PhoneGap Build service was discontinued on Oct 1, 2020.\n// The example below demonstrates its intended usage for historical context.\n\ngulp.task('phonegap-build-example', function () {\n    gulp.src('dist/**/*', {dot: true}) // {dot: true} is important to include files like .pgbomit\n        .pipe(phonegapBuild({\n          \"isRepository\": false, // Set to true if using a GitHub repository\n          \"appId\": \"9876\",       // Replace with your actual PhoneGap Build App ID\n          \"user\": {\n            \"token\": \"ABCD123409876XYZ\" // Replace with your PhoneGap Build authentication token\n          },\n          \"platforms\": ['ios', 'android'], // Required to trigger builds due to API quirk\n          \"download\": {\n            \"ios\": 'dist/ios.ipa',\n            \"android\": 'dist/android.apk'\n          }\n        }))\n        .on('error', function(err) {\n            console.error('PhoneGap Build task failed:', err.message);\n        });\n});\n\ngulp.task('default', ['phonegap-build-example']);","lang":"javascript","description":"This quickstart demonstrates how to define a Gulp task using `gulp-phonegap-build` to upload files, trigger a build for specific platforms, and download the resulting app binaries, configured with a token for authentication. Note that this code will no longer function due to the PhoneGap Build service shutdown."},"warnings":[{"fix":"Migrate to alternative cross-platform development solutions like Apache Cordova (for local builds), Ionic Appflow, React Native, Flutter, or Progressive Web Apps.","message":"The Adobe PhoneGap Build cloud service, which this Gulp plugin integrates with, was officially discontinued on October 1, 2020. Consequently, `gulp-phonegap-build` is entirely non-functional as its target API no longer exists. There is no direct replacement service under the PhoneGap brand.","severity":"breaking","affected_versions":">=0.1.0"},{"fix":"Always specify `platforms: ['ios', 'android']` (or other relevant platforms) in the plugin configuration to ensure builds are triggered. (This is now moot due to service shutdown.)","message":"Even when the service was active, omitting the `platforms` array in the configuration would prevent builds from being triggered due to an undocumented quirk in the PhoneGap API. This was a common source of confusion.","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Ensure `gulp.src('path/to/files/**/*', {dot: true})` is used to include all necessary files, including dotfiles. (This is now moot due to service shutdown.)","message":"When sourcing files for upload using `gulp.src`, the `{dot: true}` option was crucial to include hidden configuration files (e.g., `.pgbomit`) that PhoneGap Build might have relied upon. Forgetting this option could lead to unexpected build failures or misconfigurations on the PhoneGap Build server.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-04-21T00:00:00.000Z","next_check":"2026-07-20T00:00:00.000Z","problems":[{"fix":"This error, particularly after October 2020, likely indicates that the `build.phonegap.com` service is no longer operational. The plugin cannot recover from this, and the underlying service is permanently offline.","cause":"Network connection issues, server-side closure, or the PhoneGap Build service being unavailable.","error":"Error: read ECONNRESET"},{"fix":"Prior to the shutdown, verify `user` and `appId` configurations. After October 2020, this error confirms the service is defunct, and the plugin is no longer usable.","cause":"Incorrect authentication credentials (user, password, or token) or the PhoneGap Build service denying access due to its shutdown.","error":"Error: access denied"}],"ecosystem":"npm"}