2016-02-10 64 views
3

使用本地設備的VS2015(針對Apache Cordova Update 6,60128.14的工具,版本2/3/2016)編譯cordova iOS應用程序時,我收到以下錯誤:當爲本地設備編譯VS2015 ios cordova應用程序時出現「SyntaxError:Unexpected token」

1> ------ Platform ios already exists 
1> ------ Updating plugins 
1> SyntaxError: Unexpected token a 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

有什麼奇怪的是,該項目成功地編譯和部署到本地iPhone一次。在下一次編譯時,會發生此錯誤。

+0

可能重複關閉http://stackoverflow.com/questions/33231568/syntaxerror-unexpected-token-m-when-running-cordova-project-from-visual-studio – Aldracor

+0

PS。我發佈了一個適用於我的解決方案。 – Aldracor

+1

這現在解決了在VS2015,更新2與TACO更新8 – SamG

回答

11

經過大量實驗後,VS2015似乎嘗試使用先前版本中遺留的損壞的remote_ios.json文件(位於plugins文件夾中)。 解決方法是在iOS的每次重建之前刪除plugins \ remote_ios.json文件。

希望微軟的人們注意到這個問題,並在下一次更新中加以解決。

3

在Update 6中修復了一個錯誤,導致在完全沒有插件的情況下構建項目時,會創建一個錯誤的ios.json文件。您的Mac可能仍然存在一個糟糕的ios.json文件,每次構建後都會重新下載。

如果您在VS中運行clean並重新構建,它會強制它執行非增量構建,因此不會受到任何舊構建文件的影響。試一試,讓我們知道它是否能解決問題。

+0

我實際上已經乾淨了很多次,但它沒有解決問題。我總是必須刪除(本地)remote_ios.json文件。這似乎是在我連接到Mac的遠程iOS設備上執行Debug-build-run時開始的。在此之前,我沒有遇到這個問題。所以,也許做遠程部署,然後切換回本地打破了一些東西。 – SamG

+0

我們很樂意在下次更新中解決這個錯誤。什麼是在remote_ios.json文件中?我們之前看到的問題是,它只是命令的錯誤輸出。如果我們能夠找出錯誤來自哪裏,那麼我們可以防止它首先將它寫出到文件中。 –

+0

以下是remote_ios.json文件的內容。這是一個測試項目,讓我知道如果你喜歡我的地方上傳這樣你可以得到更多的信息: 'amework.ngcdemo255101" }, ‘科爾多瓦 - 插件白名單’:{ ‘PACKAGE_NAME’: 「com.ionicframework.ngcdemo255101」 }, 「ionic-plugin-keyboard」:{ 「PACKAGE_NAME」:「com.ionicframework。ngcdemo255101" }, 「的PhoneGap-插件-barcodescanner」:{ 「PACKAGE_NAME」: 「com.ionicframework.ngcdemo255101」 }} , 「dependent_plugins」:{}} ' – SamG

1

我在爲遠程設備構建時遇到同樣的問題。對我來說,這似乎與正在使用的插件數量有關。當我有六個插件時,一切正常。我的插件/ ios.json看起來是這樣的:

{ 
"prepare_queue": { 
    "installed": [], 
    "uninstalled": [] 
}, 
"config_munge": { 
    "files": {} 
}, 
"installed_plugins": { 
    "cordova-plugin-device": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-file": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-geolocation": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-media": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-network-information": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-whitelist": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    }, 
    "cordova-plugin-statusbar": { 
     "PACKAGE_NAME": "io.cordova.myappe2785d518e9f4f6ea03055878dd7a400" 
    } 
}, 
"dependent_plugins": {} 
} 

當我增加7個插件(或更多)和重建,插件/ remote_ios.json被創建,看起來像這樣(沒有開括號):

6ea03055878dd7a400" 
    } 
}, 
"dependent_plugins": {} 
} 

刪除第七個插件,然後重建可以解決問題。 我在Mac上檢查了〜/ .taco_home/remote-builds/taco-remote/builds // cordovaApp/plugins/i os.json文件,它與我的本地機器完好無損。因此,必須在創建remote_ios.json文件的代碼中截斷某些內容。

相關問題