[
https://issues.apache.org/jira/browse/CB-11019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15245853#comment-15245853
]
ASF GitHub Bot commented on CB-11019:
-------------------------------------
Github user vladimir-kotikov closed the pull request at:
https://github.com/apache/cordova-ios/pull/213
> Cordova ios handles project rename incorrectly
> ----------------------------------------------
>
> Key: CB-11019
> URL: https://issues.apache.org/jira/browse/CB-11019
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 4.1.0
> Reporter: Vladimir Kotikov
> Assignee: Vladimir Kotikov
> Labels: ios, prepare, triaged
> Fix For: 4.1.2
>
>
> When application name is changed in `config.xml`, following call to `prepare`
> changes the ios project structure within {{platforms/ios}} directory. Though
> some internal properties of ios platformApi are not changed and still point
> to old paths. This causes the following `plugn add` call to fail.
> Notice that the bug can be reproduced only if {{prepare}} and {{plugin add}}
> bot h called within one node process, i.e. programmatically.
> Here is a snippet that can help reproduce the problem (run {{npm install
> [email protected]}} first):
> {code}
> var Q = require('q');
> var tmp = require('tmp');
> var path = require('path');
> var shell = require('shelljs');
> var events = require('cordova-lib').events;
> var cordova = require('cordova-lib').cordova;
> events.on('log', console.log).on('warn', console.warn);
> var CORDOVA = path.resolve('./node_modules/cordova/bin/cordova');
> // This is a repro for issue, similar to CB-10961 but it does repro even with
> the
> // fix for CB-10965 (https://issues.apache.org/jira/browse/CB-10965) checked
> in
> var case2 = Q(tmp.dirSync().name)
> .then(function (tempDir) {
> shell.exec(CORDOVA + ' create ' + tempDir + ' com.app1 app1 -d');
> shell.pushd(tempDir);
> })
> .then(function () {
> return cordova.raw.platform('add', ['d:/cordova/cordova-ios']);
> })
> .then(function () {
> shell.sed('-i', '<name>app1</name>', '<name>app2</name>', 'config.xml');
> return cordova.raw.prepare([PLATFORM]);
> })
> .then(function () {
> return cordova.raw.plugin('add', ['cordova-plugin-camera'], {save: true});
> });
> {code}
> The snippet above will throw the following error (similar to what described
> in CB-10961)
> {noformat}
> Failed to install 'cordova-plugin-camera':Error: ENOENT: no such file or
> directory, open
> 'C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\app1.xcodeproj\project.pbxproj'
> at Error (native)
> at Object.fs.openSync (fs.js:584:18)
> at Object.fs.writeFileSync (fs.js:1224:33)
> at Object.cachedProjectFiles.(anonymous function).write
> (C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\lib\projectFile.js:73:16)
> at
> C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\lib\plugman\Plugman.js:84:21
> at _fulfilled
> (C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\node_modules\q\q.js:834:54)
> at self.promiseDispatch.done
> (C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\node_modules\q\q.js:863:30)
> at Promise.promise.promiseDispatch
> (C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\node_modules\q\q.js:796:13)
> at
> C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\node_modules\q\q.js:857:14
> at runSingle
> (C:\Users\VLADIM~1.KOT\AppData\Local\Temp\tmp-13756pWNNAgPv8e9b\platforms\ios\cordova\node_modules\q\q.js:137:13)
> {noformat}
> even after fix for CB-10965 applied (checked in cordova-common with patch for
> CB-10965 merged in)
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]