cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Frequent Visitor

Injecting updated JSON into msapp without error

I am attempting to:

  • unpackage an exported .msaap file,
  • edit the "2.json" file (the content of the app itself) in the "Controls" folder (I find and replace of a lot of variables),
  • and then repackage the .msaap and upload it.

 

This doesn't work.  The app will open, but the canvas is blank.

 

Re-exporting the broken app and examining the .msaap file shows that the "2.json" file is now missing but the other files are just fine, as if the "2.json" files was stripped out during the upload/opening process in the PowerApps web interface.

 

In an attempt to solve the problem, I modifed file attribute flags in the .msaap file (which is just a .zip file), such as the "A" archive bit, and the Created and Accessed attributes.  The same error resulted.

 

Does anyone know how to edit the "2.json" file and successfully repackage to a working app?

 

It would save me literally dozens of hours...

 

-James

13 REPLIES 13
Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Injecting updated JSON into msapp without error

@JamesA ,

See my post from Friday that is related (and perhaps the same thing).  

 

https://powerusers.microsoft.com/t5/General-Discussion/BUG-Export-amp-Import-Canvas-App-Issues-Entit...

 

Unfortunately, haven't gotten any response on this one...

Highlighted
Frequent Visitor

Re: Injecting updated JSON into msapp without error

AH-ha, thank you, I had not seen your post.

 

This does indeed sound very similar:

 

"

  • Importing an MSAPP (or Zip) that has had ANY file modified (to resolve a separate issue I'll post about) fails with an error with no details - whether opening from Studio or from the Import screen.  Below is a screenshot:

    PowerApps Studio Open (Import) Error.PNG

"

And, you made the same observation that the .msaap package contents format has changed.

 

Something that occured to me while I was eating dinner -- are you using the new groups feature, the "enhanced Group control" experimental feature?

 

I was wondering if using that might produce a new file format.  I will have to create a new version of my app without the experimental feature turned on, and see if it exports in a different file format.

 

Hopefully someone will answer and puzzle this out.

Highlighted
Community Support
Community Support

Re: Injecting updated JSON into msapp without error

Hi @JamesA ,

I've made a similar test and met the same problem like your description.

Only edit the .json file is not enough.

There are many settings in other files.

I'm afraid there's no directly to modify an app by editing .msapp file.

I suggest you express your views on PowerApps Ideas Forum. Your precious advice will be very helpful for our work.

https://powerusers.microsoft.com/t5/PowerApps-Ideas/idb-p/PowerAppsIdeas

What's more, here's a similar issue for your reference:

https://powerusers.microsoft.com/t5/General-Discussion/msapp-file-format/td-p/133244

The powerapps tool mentioned in this issue may help you.

 

 

Best regards,

Community Support Team _ Phoebe Liu

 

  

Community Support Team _ Phoebe Liu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Highlighted
Frequent Visitor

Re: Injecting updated JSON into msapp without error


Thanks for your response, however it is not as simple as you summarize.

 

There is currently an inherent issue with the .msaap file format.

 

Try these two tests --

 

1) unpack an .msaap file (unzip the archive) and make NO modifications to the files.  Repack everything as a new .zip file, rename to .msaap and try to open it.  With absolutely no changes to the files and the "many settings in other files" you claim, you will be unable to even load the .msaap in the PowerApps Studio.

 

2) extract JUST the "2.json" file within the "Controls" folder located in the .msaap archive. Open it, change one character, and then change it back so that the file is exactly as it was. Save that "modified" file. Replace the original "2.json" within the .msaap archive (note, we did NOT extract the entire archive)!  Attempt to open the .msaap file in PowerApps Studio, and you will be greeted with a version of the app that is "blank".  Again, no modification to the "many settings in other files" and yet the file format does not work.  If you again try to export/save this new version of the .msaap, you will note that the "2.json" file is simply missing from the archive.

 

This is an issue with the .msaap file format and how it is read by PowerApps Studio. 

 

The previous version of the .msaap file format (with the "Entities.json" file that contained the contents of the app) did not have this problem, and could be edited and uploaded.

 

Hopefully someone else will have some insight to the secrets of the .msaap file format,

 

Or, perhaps the issue will be addressed by Microsoft, however I think we are more likely to solve it as a community.

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Injecting updated JSON into msapp without error

@JamesA  - yes I totally agree.  I did see those as well with additional testing after posting my issue.  

 

Totally agree that reZipping the MS App does not work - whether I use "Send to Compressed (zipped) folder", 7zip (in .ZIP format), etc.  

 

I was only trying to change three minor values in the 1.json file under Controls (start page) due to another issue where PowerApps Studio messed up these settings, resulting in the app crashing on startup outside the Studio environment (reported these other issues separately, but they were all tied to my same testing).  

 

 

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Injecting updated JSON into msapp without error

FYI - This functionality (editing json files and rezipping) did work until recently, and was even referenced by several tutorials, and suggested (I believe) by several MS resources for things like themes in the past.

 

In addition, the PowerApps Tools on GitHub (https://github.com/microsoft/powerapps-tools) also does just this.  Yes, these are mentioned as unsupported, but many at MS have recommended using these tools, including in response to support requests.  

 

 

Highlighted
Frequent Visitor

Re: Injecting updated JSON into msapp without error

Thanks, @BrianR , sorry, my response above about "not as simple as you summarize" was for @v-yutliu-msft, if that wasn't clear!

 

Glad you see the same results.

 

It does appear to be a .msaap file format issue, and one that has recently occurred, since it appears many others were able to edit .json files and repackage without issue.

 

Wish I knew some other things to try.  Seems like an archive and packaged file attribute problem, possibly.  Maybe the CRC check for each packaged file is referenced somewhere, and when it doesn't match, it clears it from the archive.

Highlighted
Kudo Kingpin
Kudo Kingpin

Re: Injecting updated JSON into msapp without error

FYI - I *FINALLY* got this working (though this is NOT a fix, just a workaround).

 

See the link here:  https://poszytek.eu/en/microsoft-en/office-365-en/powerapps-en/powerapps-export-fails-due-to-missing...

 

While this is addressing a different problem, the method he uses to update the MSAPP works.

 

Key here (as he keeps saying) DO NOT UNZIP the file!

 

What you'll do instead is:

 

  1. Download the MSAPP from within Powerapps Studio with File->Save As->This Computer
  2. Rename the file to change the .msapp extension to .zip
  3. Open the now .zip file using 7zip - OPEN - do NOT Extract
  4. Drag the files you want OUT of the ZIP file onto you harddrive in a folder
  5. Edit as needed.  If you happen to format the files (ALT-SHIFT-F in MS Code) to read them, make sure you undo this - ie: join the lines (in MS Code, select all (Control-A) lines in the file you changed, hit F1, type "join lines", and then save the file(s).
  6. Drag the modified file (with the same filename) over to 7zip, and close the ZIP file.
  7. In PowerApps Studio, do File->Open on the modified MSAPP file.  IT SHOULD WORK!

Note that I have NOT been able to rezip an MSAPP that has been unzipped and be able to import it (though this DID work in the past!!).  This is the only way I've gotten this to work (kudos to Tomasz Poszytek for the thought on this).  

 

BTW - in my case, I did not actually do lines 4-6 above, instead I just DELETED two JSON files (in Controls that were causing my app problems.

 

PowerApps for some STUPID reason made two Data Table controls I had done a cut and paste on (in the same app to a different location) TOP LEVEL controls - ie: at the same level as a screen (right under App).  Thus, while the app would load in Studio, I could not run it outside, nor could I get rid of those two control (or move, rename, etc).  Was a mess.

 

But this resolved it for me (until the next time Studio screws up an MSAPP file - last time I had to rebuild from scratch (a few days ago), and manually recreate every screen, copy controls from the old one (that didn't start) to the new one, and then doctor up MOST of the X, Y, Width, and Height for MOST of the controls (as many had formulas that were wiped out, or in some cases a static value (like 115) changed (to 1 in these cases).  

 

Wasted 3 hours this morning on this, and about 4 days last week on the other MSAPP issue.

 

But at least now I can FINALLY go in and manually fix myself now that PowerApps finally lets me import things this way.

 

 

Frequent Visitor

Re: Injecting updated JSON into msapp without error

I wish that this solution worked for me!

 

I actually had found Mr. Poszytek's post last week, and tried that -- removing the file without unzipping, editing, and inserting it.  No joy -- I am able to load the modified .msaap, however it's the same situation as I described above, an empty app.

 

I think because you are removing files, it works fine for you, but I am finding and replacing variables in copied blocks of code that I return into the .msaap.  No matter how carefully I format and return the code, it never makes it on load.

 

I'm still in the same position I described in the third or so post in this thread.

 

Very sad, super-frustrating -- I will be spending an epic amount of time this week with Notepad++ open in one window, and alt-tab-ing back and forth with code to find and replace variables in a real editing interface.  If it was supported, it would be a 1-hour job, but instead it's a 6-hour job.

 

Plz microsoft..plz.  Let us see the code.  Or, fix the .msaap file format (not expecting a response, just venting!)

 

Thanks for the ideas, though, I appreciate it!

 

 

Helpful resources

Announcements
secondImage

Demo-Extravaganza 2020

Check out these cool Power Apps & vote on your favorite!

secondImage

Robotic Process Automation

Let's talk about the solution provided by Microsoft for Robotic Process Automation (RPA)

secondImage

Community Highlights

Check out whats happening in Power Apps

secondImage

Community User Group Member Badges

FIll out a quick form to claim your community user group member badge today!

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Users online (7,118)