[ https://issues.apache.org/jira/browse/CB-8326?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14282712#comment-14282712 ]
Andrew Grieve commented on CB-8326: ----------------------------------- For the first layer of this, I think you can add "--" to specify args to the platform build script. E.g.: {code} cordova build ios --device -- CODE_SIGN_IDENTITY='iPhone Developer: ABCD(1X23456789)' {code} We should add this to the help text if it's not there already. For the build template script, we will need the change there, but I think the scripts are currently being re-written in JS, so may want to wait for that to happen > Allow arguments to be sent to the build comand e.g. xcodebuild > -------------------------------------------------------------- > > Key: CB-8326 > URL: https://issues.apache.org/jira/browse/CB-8326 > Project: Apache Cordova > Issue Type: Bug > Components: CLI, CordovaJS, CordovaLib > Affects Versions: 3.5.0, 4.0.0, 3.6.3, 3.7.1, 4.1.3 > Environment: All > Reporter: DotNetWise > Original Estimate: 24h > Remaining Estimate: 24h > > Currently if you do > cordova build ios --device CODE_SIGN_IDENTITY='iPhone Developer: > ABCD(1X23456789)' > PROVISIONING_PROFILE='/usr/local/provisions/ABC_Development.mobileprovision' > You'll get an error that CODE_SIGN_IDENTITY is not a known platform. > This is absolutely rubbish, as there is no real way to send arguments > directly to xcodebuild e.g. for directly build & sign an .ipa > We have tweaked locally the code, but every cordova release is making it a > pain in the ass to reapply the changes. > PLEASE Make sure you allow anyother parameters to be sent to the actual build > comand. > For the GOD sake only include KnownPlatforms as platforms and everything else > send it to the actual build command. > We have added this code to cli.js > var tokens = remain.slice(1); > tokens.forEach(function (option, index) { > console.log("option", option, > cordova_lib.cordova_platforms.hasOwnProperty(option)); > if (cordova_lib.cordova_platforms.hasOwnProperty(option)) { > opts.platforms.push(option); > } else { > opts.options.push(option); > } > }); > And commented this one out > //var badPlatforms = _.difference(opts.platforms, known_platforms); > //badPlatforms.forEach(function (option) { > // opts.options.push(option); > //}); > //if( !_.isEmpty(badPlatforms) ) { > // msg = 'Unknown platforms: ' + badPlatforms.join(', '); > // throw new CordovaError(msg); > //} > Also commented this one > //opts.options = downstreamArgs.concat(unparsedArgs); > And works great. > Then in your project template you should forward the arguments in file > platforms/xxxx/cordova/build > e.g. for IOS > CONFIGURATION=Debug > EMULATOR=1 > DEVICE=0 > declare -a SCHEME > SCHEME=("-target" "$PROJECT_NAME") > i=0 > args= > for a; do > ((i++)); > case "$a" in > --debug) echo "ARG --debug";; > --release) CONFIGURATION=Release;echo "ARG --release";; > --device) EMULATOR=0;echo "ARG --device";; > --emulator) echo "ARG --emulator";; > -scheme) ((i++)); SCHEME=("-scheme" $i);echo "ARG=-scheme $i";; > -target) ((i++)); SCHEME=("-target" $i);echo "ARG=-target $i";; > PROVISIONING_PROFILE*) echo "ARG=$a";mp=${a:21}; uuid=`grep > -aA1 UUID ${mp} | grep -o "[-A-Z0-9]\{36\}"`;args="$args > PROVISIONING_PROFILE=\"$uuid\"";echo " => extracted uuid=$uuid";; > *) echo "ARG=$a";args="$args \"$a\"";; > esac > shift > done > eval set -- $args > set +x; > if (( $EMULATOR )); then > exec xcodebuild -project "$PROJECT_NAME.xcodeproj" -arch i386 -target > "$PROJECT_NAME" -configuration $CONFIGURATION -sdk iphonesimulator build > VALID_ARCHS="i386" CONFIGURATION_BUILD_DIR="$PROJECT_PATH/build/emulator" > SHARED_PRECOMPS_DIR="$PROJECT_PATH/build/sharedpch" "$@" > else > exec xcodebuild -xcconfig "$CORDOVA_PATH/build$(echo -$CONFIGURATION | tr > '[:upper:]' '[:lower:]').xcconfig" -project "$PROJECT_NAME.xcodeproj" > ARCHS="armv7 armv7s arm64" "${SCHEME[@]}" -configuration $CONFIGURATION -sdk > iphoneos build VALID_ARCHS="armv7 armv7s arm64" > CONFIGURATION_BUILD_DIR="$PROJECT_PATH/build/device" > SHARED_PRECOMPS_DIR="$PROJECT_PATH/build/sharedpch" "$@" > fi > Notice the "$@" that was missing from your templates -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org