blackberry / VSPlugin

Visual Studio Plugin for BlackBerry Native SDK
9 stars 15 forks source link

Redeploy to secure device in Debug profile fails. #170

Open mattcostanzo opened 11 years ago

mattcostanzo commented 11 years ago

If I try to redeploy an application that is already on the device to a secure PlayBook I get the following error about the manifest file not existing:

1>------ Build started: Project: Square, Configuration: Debug BlackBerry ------ 1>Build started 9/20/2012 1:27:40 PM. 1>InitializeBuildStatus: 1> Touching "Device-Debug\Square.unsuccessfulbuild". 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning MSB8012: TargetPath(C:\d ev\Sample_2\Square\Square\Device-Debug\Square) does not match the Linker's OutputFile property value (C:\d ev\Sample_2\Square\Square\Device-Debug\Square.exe). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile). 1>Link: 1> qcc -o bbutil.o C:/DEV~1/Sample_2/Square/Square/bbutil.c -V"4.4.2,gcc_ntoarmv7le" -c -Wp,-MMD,bbutil.d -Wp,-MT,bbutil.o -g -w3 -lang-c -fexceptions -fstack-protector-all -I"C:/bbndk-2.0.0/target/qnx6\usr\include" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\freetype2" -I"C:/bbndk-2.0.0/target/qnx6..\target-override\usr\include" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\cpp" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\cpp\c" -D_FORTIFY_SOURCE=2 -DUSING_GL20 -DQCC -DQCC -DQNX -UWIN32 -U_WINDOWS 1> qcc -o main.o C:/DEV~1/Sample_2/Square/Square/main.c -V"4.4.2,gcc_ntoarmv7le" -c -Wp,-MMD,main.d -Wp,-MT,main.o -g -w3 -lang-c -fexceptions -fstack-protector-all -I"C:/bbndk-2.0.0/target/qnx6\usr\include" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\freetype2" -I"C:/bbndk-2.0.0/target/qnx6..\target-override\usr\include" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\cpp" -I"C:/bbndk-2.0.0/target/qnx6\usr\include\cpp\c" -D_FORTIFY_SOURCE=2 -DUSING_GL20 -DQCC -DQCC -DQNX -UWIN32 -U_WINDOWS 1> qcc -o C:/DEV~1/Sample_2/Square/Square/DEVICE~2/Square ./bbutil.o ./main.o -V"4.4.2,gcc_ntoarmv7le" -lang-c++ -g -Wl,-z,relro,-z,now -lbps -lpps -lscreen -lEGL -lGLESv2 -lfreetype -lpng -lm -L"C:/bbndk-2.0.0/target/qnx6\armle-v7\lib" -L"C:/bbndk-2.0.0/target/qnx6..\target-override\armle-v7\lib" -L"C:/bbndk-2.0.0/target/qnx6..\target-override\armle-v7\usr\lib" 1>FinalizeBuildStatus: 1> Deleting file "Device-Debug\Square.unsuccessfulbuild". 1> Touching "Device-Debug\Square.lastbuildstate". 1> 1>Build succeeded. 1> 1>Time Elapsed 00:00:00.74 2>------ Deploy started: Project: Square, Configuration: Debug BlackBerry ------ 2>Build started 9/20/2012 1:27:40 PM. 2>BuildBar: 2> Deleting file "CompileRan". 2> App Installed 2> Square.vcxproj -> 2> C:\d ev\Sample_2\Square\Square\Device-Debug*.tlog 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\BBNativePackager.command.1.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\BBNativePackager.read.1.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\BBNativePackager.write.1.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd-java.read.1.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd-java.read.13.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd-java.read.14.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd-java.read.2.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd-java.write.2.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd.read.1.tlog". 2> Deleting file "C:\d ev\Sample_2\Square\Square\Device-Debug\cmd.write.1.tlog". 2>OptimizedDeploy: 2> Info: Sending request: Get File 2> Info: Action: Get File 2> Info: Package com.example.Square.testDev_mple_Squaree67c924e 2> Info: Asset Path ../../../../apps/com.example.Square.testDev_mple_Squaree67c924e/META-INF/MANIFEST.MF 2>BBDEPLOY : error : Cannot open file ../../../../apps/com.example.Square.testDev_mple_Squaree67c924e/META-INF/MANIFEST.MF: No such file or directory 2> 2>Build FAILED. 2> 2>Time Elapsed 00:00:04.69 ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== ========== Deploy: 0 succeeded, 1 failed, 0 skipped ==========

/apps/com.example.Square.testDev_mple_Squaree67c924e/ folder isn't accessible from Momentics File System Navigator either. Permission denied when I try to access it.

mattcostanzo commented 11 years ago

jenear commented 8 months ago Caused by deploying in signing mode and then redeploying in devmode. This is probably the expected behaviour but the error message is pretty cryptic.

Ah, that makes sense! I was worried for a second there, I was pretty sure we determined that you can access those files in devMode on a secure device. You're right, though, this is a cryptic error. There are a couple of ways the user can fix this:

  1. Rename their application so that it performs a full deploy, thinking it's a new app.
  2. Delete the signed application.

It would be good to show the user an error that tells them how to fix it, by doing one of those two things. I don't know that we'd want to automatically write over the signed release-mode application with a debug-mode one, that might seem like a bug to some people. Perhaps what would be best would be to always rename debug-mode applications, adding "(Debug)" or something to the end of the name so that they automatically get two applications side-by-side when they do this, "MyApp" and "MyApp (Debug)". Or at least give the user the option to name their app differently in different modes. That turns this bug into a bar-descriptor wizard feature, though, in a way.

dburgess commented 8 months ago KNOWN ISSUE: Deploying an application in non-development/signed mode (Release) and then re-deploying in development mode/unsigned mode (Debug) will fail as blackberry-deploy tries to overwrite a signed application. The signed application is read only.. and therefore this fails. The work around is to manually delete the signed application from the device before redeploying.

PamC commented 10 years ago

Release note: If you deploy an application in non-development/signed (Release) mode and then redeploy it in development/unsigned (Debug) mode, the subsequent deployment fails, as blackberry-deploy attempts to overwrite a signed application, which is read only. Workaround: Manually delete the signed application from the device and then redeploy it.