Skip to content

Instantly share code, notes, and snippets.

@HoussemNasri
Last active June 8, 2024 06:59
Show Gist options
  • Save HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28 to your computer and use it in GitHub Desktop.
Save HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28 to your computer and use it in GitHub Desktop.
Extend your trial period for Balsamiq Wireframes on Windows and macOS Forever!

Overview

This script will prolong your trial time for Balsamiq Wireframes on both Windows and macOS. You may also manually apply the hack by following the steps in Manual Editing.

Prerequisites

  • python3

⚠️ Warning: Close all balsamiq wireframes instances before proceeding, otherwise the operation won't succeed.

Run the script

⚠️ Works only on Windows, for MacOS check the Manual Editing section.

  1. Download and install python3
  2. Download the script and extract it
  3. Open the terminal and navigate to the script location
  4. Close Balsamiq
  5. Run python BalsamiqForever.py or python3 BalsamiqForever.py

Manual Editing

If running the script didn't do it or you just want to get your hands dirty, here is how to apply the hack manualy by editing configuration files on the application folder.

Windows

  1. Open this file in your text editor %APPDATA%\Balsamiq\Balsamiq Wireframes\LocalSettings.json.
  2. Edit DefaultSelectionColorRGBA property and increase it's value.

For example, if you're using this configuration "DefaultSelectionColorRGBA": 1916130510, your trial will expire in September 20, 2030 🤯, for custom expiration date use this website.

  1. Save changes.

MacOS

Adding support for macOS wouldn't be possible without the help of @pep108 and @megatunger.

  1. Open this file in your text editor /Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js.
  2. Search for this function function getLicenseValidFromLicenseData(data).
  3. Replce function body by return true.
//result
function getLicenseValidFromLicenseData(data) {
      return true
}
  1. Save.
import json
import os
import time
import webbrowser
import sys
import re
def handleWindows(extra_seconds):
print("OS : Windows")
local_settings = r"{}\Balsamiq\Balsamiq Wireframes\LocalSettings.json".format(os.getenv('APPDATA'))
print("Reading from {}".format(local_settings))
with open(local_settings) as reader:
json_data = json.load(reader)
json_data['DefaultSelectionColorRGBA'] = int(time.time()) + extra_seconds
print("Writing to {}".format(local_settings))
with open(local_settings, 'w') as outfile:
json.dump(json_data, outfile)
def handleMacos(trial_days_left=30, debug_mode=False):
print("OS : macOS")
print("Debug Mode: " + str(debug_mode))
def dump_debug(start_func, end_func, content_func, new_func):
print("function start line: {}".format(start_func))
print("function end line: {}".format(end_func))
print("function content:")
print(content_func)
print("new function content:")
print(new_func)
editor_macos = "/Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js"
editor_macos_test = r"C:\Users\housi\Desktop\Balsamiq\editor-macos-test.js"
if debug_mode:
editor_macos = editor_macos_test
print(editor_macos)
if not os.path.exists(editor_macos):
print("editor-macos.js NOT FOUND!")
exit(0)
get_trial_days_left_pattern = re.compile(r"\s*function\s+getTrialDaysLeftFromNativeData\(\w+\)\s*{")
func_start_line = -1
func_end_line = -1
found_a_match = False
function_content = ""
with open(editor_macos, encoding="utf8") as reader:
line_number = 0
# it starts at 1 because w have already matched one '{'
curly_braces_balance = 1
for line in reader.readlines():
line_number += 1
if not found_a_match:
match = get_trial_days_left_pattern.match(line)
if match is not None:
found_a_match = True
func_start_line = line_number
# TODO what if the start line is also the end line, One-Liner function
else:
curly_braces_balance += line.count("{")
curly_braces_balance -= line.count("}")
if curly_braces_balance == 0:
function_content = function_content + line
func_end_line = line_number
break
if func_start_line != -1:
function_content = function_content + line
body = "return {};".format(trial_days_left)
new_function_signature = "\nfunction getTrialDaysLeftFromNativeData(nativeData) {\n\t" + body + "\n}\n\n"
if debug_mode:
dump_debug(func_start_line, func_end_line, function_content, new_function_signature)
with open(editor_macos, encoding="utf8") as reader:
lines = reader.readlines()
# The first -1 to make it base 0 and the second one refers to the previous index
index = (func_start_line - 1) - 1
leading_count = 0
# Removing leading blank lines before the function definition
while not lines[index].strip():
lines.pop(index)
index -= 1
leading_count += 1
# The start and end indexes will change after removing the leading blank lines
func_start_line -= leading_count
func_end_line -= leading_count
# Removing trailing blank lines after the function end
index = func_end_line
while not lines[index].strip():
lines.pop(index)
# Removing the old function
for i in range(func_end_line - func_start_line + 1):
lines.pop(func_start_line - 1)
# Replacing it with the new function
lines.insert(func_start_line - 1, new_function_signature)
# Writing changes back to file
with open(editor_macos, "w", encoding="utf8") as f:
lines = "".join(lines)
f.write(lines)
print("IMPORTANT! please make sure to close Balsamiq before proceeding or the script won't have any effect")
years = int(input("How many years of trial do you want :) "))
if sys.platform.startswith("win"):
handleWindows(years * 365 * 24 * 60 * 60)
elif sys.platform.startswith("darwin"):
handleMacos(years * 365)
else:
print("Sorry, operating system not supported")
exit(0)
print("****************************************************************")
print("* Congratulations! You gained {} days of trial".format(years * 365))
print("* Please don't forget to leave a star ✭")
print("****************************************************************")
print("https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28")
webbrowser.open("https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28")
input("Press ENTER to exit")
@HoussemNasri
Copy link
Author

@megatunger why did you say it's expired, did it not work for you?

@megatunger
Copy link

megatunger commented Aug 1, 2021

My case was Balsamiq expired 30 days trial before and the script will not work (I'm using Mac)

@ssrful
Copy link

ssrful commented Aug 16, 2021

@HoussemNasri - Thanks a lot, Man! You're a saver!

@warleipereira
Copy link

Thaks!!

@SangSama
Copy link

How to running the script?

* Install python and run the python command on the script.
  `python BalsamiqForever.py`

* You can also do it manually by editing `%APPDATA%\Balsamiq\Balsamiq Wireframes\LocalSettings.json`
  and setting the value of the `DefaultSelectionColorRGBA `property to a higher timestamp.
  you can use this website to choose the timestamp value: https://www.epochconverter.com/

Excellent!!! Works with 4.2.7 Thanks a lot!

Can you tell me how to do it in detail?

@alexander01576
Copy link

After running the script I am getting this error on mac os:

Screenshot 2021-08-30 at 12 27 50 AM

You can repeat once again?

@alexander01576
Copy link

@alexander01576 Do you mean run the script again?

yes

@HoussemNasri
Copy link
Author

@haccks what version of Balsamiq are you using?

@HoussemNasri
Copy link
Author

@haccks 4.2.7 should be fine, I need to see this file Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js because it's the only file the script will edit, if something went wrong its in there

@HoussemNasri
Copy link
Author

@haccks upload the file to Pastebin and send me the link to my email

@HoussemNasri
Copy link
Author

I don't have a mac, you can also do it manually, checkout this comment https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28#gistcomment-3838127

@HoussemNasri
Copy link
Author

@haccks why, what did you change

@HoussemNasri
Copy link
Author

@haccks yes that's correct, it should work by now

@HoussemNasri
Copy link
Author

I don't know if that's normal behavior, @megatunger discovered that method

@megatunger
Copy link

My hack still showing 30 days trial ended but you can use all functions normally

@shanecarvalho
Copy link

Works just as described. Perfect.

@EliasVinicius
Copy link

EliasVinicius commented Sep 5, 2021

@HoussemNasri the procedure %APPDATA%\Balsamiq\Balsamiq Wireframes\LocalSettings.json works and edit DefaultSelectionColorRGBA to timestamp , thank you !

@AlanKang98
Copy link

My hack still showing 30 days trial ended but you can use all functions normally

That works! Thank you very much!

@flopezre
Copy link

BalsamiqForever.py", line 110, in <module>
    years = int(input("How many years of trial do you want :) "))
ValueError: invalid literal for int() with base 10: ''

@flopezre
Copy link

@HoussemNasri the procedure %APPDATA%\Balsamiq\Balsamiq Wireframes\LocalSettings.json works and edit DefaultSelectionColorRGBA to timestamp , thank you !

How to edit?

@HoussemNasri
Copy link
Author

@flopezre We have added a small tutorial to apply the hack manually, check out the Readme.

@hoanhtnb
Copy link

Balsamiq Wireframes 4.3.2
Os: Windows 10
Nice! Thank you very much.

@Mansourkira
Copy link

Thank you broo , it works

@bLeuebLink
Copy link

works like magic! thanks a lot!!

@mwangaben
Copy link

Good............... thanks

@pinknerd
Copy link

Works for macOS thanks!

@HoussemNasri
Copy link
Author

HoussemNasri commented Dec 15, 2021

Hi @pinknerd, for MacOS you should edit the configuration manually, by following instructions in the readme, Manual Editing section, apparently the script trial will fail after a while.

@flopezre
Copy link

flopezre commented Jan 11, 2022

Hello, not works in the last version.

In the new version doesn't exits the file LocalSettings.json

@HoussemNasri
Copy link
Author

@flopezre What version are you referring to? I downloaded the most recent version 4.4.2 from the website, and LocalSettings.json is still in the same location.

@flopezre
Copy link

flopezre commented Jan 12, 2022

@HoussemNasri:

Help :C

@HoussemNasri
Copy link
Author

@flopezre The configuration files are located in the support folder in AppData/roaming which you can open using this path %APPDATA%\Balsamiq\Balsamiq Wireframes or from the About Balsamiq Wireframes screen by clicking Open Support Folder

@flopezre
Copy link

Well i can, but only with the Manual Editing.

Thanks mate...

@Artaherzadeh
Copy link

Amazing work bro.
It's funny they choose DefalutSelectionColorRGBA for the trial end time. Is there any way to hide the trial alert in the app?

@Artaherzadeh
Copy link

Artaherzadeh commented Feb 15, 2022

Becareful:

Balsamiq team is aware of 3 ways to get unlimited trial time so be careful before updating your software and keep a backup of the latest setup files.

@mamedee
Copy link

mamedee commented Feb 17, 2022

It works!
image

@Jmack69
Copy link

Jmack69 commented Feb 27, 2022

Hi friend, you are the master....
image

@yufanme
Copy link

yufanme commented Mar 5, 2022

works for me.
image
maybe 100000000000000000000000000000 years is enough
image
you deserve 5 star, man.
great job!

@HoussemNasri
Copy link
Author

HoussemNasri commented Mar 5, 2022

@yufanme The script doesn't work for macOS, have a look at the manual editing section https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28#run-the-script

@yufanme
Copy link

yufanme commented Mar 5, 2022

@yufanme The script doesn't work for macOS, have a look at the manual editing section https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28#run-the-script
thx HoussemNasri, I did that manually, and how can I check if that works

@yufanme
Copy link

yufanme commented Mar 5, 2022

@yufanme The script doesn't work for macOS, have a look at the manual editing section https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28#run-the-script

the information box seems not change, so I should restart my mac to make that work?

@HoussemNasri
Copy link
Author

the information box seems not change, so I should restart my mac to make that work?

No need to restart, it works unlimited regardless of how many trial days you got.

@gazzabwoy
Copy link

This works a treat... thanks very much!!

@bhaktisf
Copy link

This works like charm!
Thanks a lot!

@ZetaBayt
Copy link

thanks @HoussemNasri it's still works
if "DefaultSelectionColorRGBA" like this 1648016208.7415917, you should "DefaultSelectionColorRGBA": 1916130510.

@newmanstuff
Copy link

Getting error on macOS, please help!

@polat-code
Copy link

manual editing works for windows . Perfect. Thanks.

@Quiroa
Copy link

Quiroa commented Mar 25, 2022

Gracias mano por el código, me funciono con Balsamiq 4.4.8.26.
Nota: lo probé el 24-03-2022 en una computadora con W11

@jsalafica
Copy link

Funciona perfecto con la version 4.4.8 - Editor version 3.10.4
Lo hice manual editando el archivo de configuración LocalSettings.json
Saludos!

@Artaherzadeh
Copy link

Can you find a way to extend Axure RP 10 trial?

@He0820
Copy link

He0820 commented May 2, 2022

Thank you Very Much

@judexes
Copy link

judexes commented May 21, 2022

Thanks a bunch

@rubenqba
Copy link

I can't make it work on mac. In my case the trial period is already expired. I run the python script and manually edit the editor-macos.js file and nothing happens.

@nediazc
Copy link

nediazc commented Jun 22, 2022

Not working for the last version 4.5.3 in mac

the message here does not disappear:

image

and about Balsamiq still in 30 days

image

@HoussemNasri
Copy link
Author

@nediazc Thanks for reporting this! They must have modified the trial handling mechanism. I'll have a look at the updated version and make the necessary changes to the readme and script.

@nabiladnan18
Copy link

Amazing!

@stiggy87
Copy link

stiggy87 commented Jul 1, 2022

@nediazc Thanks for reporting this! They must have modified the trial handling mechanism. I'll have a look at the updated version and make the necessary changes to the readme and script.

Looks like the value should keep the decimal.

"DefaultSelectionColorRGBA":1916130510.3766797

When I did that, it worked.

@AngeloContreras
Copy link

Working 07/07/22 ❤🤑👌

@kiyara0104
Copy link

Can someone share the crack key for v4.5.4?

@axelcasauran
Copy link

works like a charm in v4.5.5

@eighteentee
Copy link

eighteentee commented Oct 11, 2022

Not working on MacOS - BW 4.6.1. Editing the JS to change the function to return True causes the app to constantly crash on launch. There must be something burried

@eighteentee
Copy link

@eighteentee this is how i fix it

https://appletoolbox.com/app-is-damaged-cannot-be-opened-mac/

sometimes need to reSign https://gist.github.com/rampfox/7bb8d267bca6cb2b47cafdd944c5777a

I don't think it's a code-signing issue; the app doesn't throw up the standard 'This App is Damaged" MacOS dialog box. Rather, it starts to open the BW main loading window and gets stuck in a loop of opening-and-closing until you initiate Activity Monitor to terminate the app by force. I don't think the JS file is the only part of the licensing mechanism...

@ibnux
Copy link

ibnux commented Oct 12, 2022

@eighteentee it works using command on first link
Using xattr -r -d com.apple.quarantine

If it not works, the script edited wrong.

I just use it on the latest Balsamic

@eighteentee
Copy link

eighteentee commented Oct 12, 2022

Simply editing the JS file and changing the function getLicenseValidFromLicenseData(data) to return true no longer works. This is what throws the load-loop. This is on 4.6.1.

Running the script results in:
Screenshot 2022-10-12 at 10 07 52

Banner says 3650 days remaining. App dialog says 29 days remaining.

@cristobalgvera
Copy link

Does anyone find a solution or work-around?

@Alinaswe3
Copy link

Yah it works thanks very much

@cclambayong
Copy link

Thank you for your help!
image

@styu23
Copy link

styu23 commented Nov 6, 2022

Gracias!!!
Me has salvado estamos agradecidos

image

@rawn7702
Copy link

rawn7702 commented Nov 6, 2022

@eighteentee it works using command on first link Using xattr -r -d com.apple.quarantine

If it not works, the script edited wrong.

I just use it on the latest Balsamic

Hi, I just tried this and managed to get the application to work.
But it still shows 30 days. Can you help me?
@HoussemNasri @eighteentee

@eighteentee
Copy link

@eighteentee it works using command on first link Using xattr -r -d com.apple.quarantine
If it not works, the script edited wrong.
I just use it on the latest Balsamic

Hi, I just tried this and managed to get the application to work. But it still shows 30 days. Can you help me? @HoussemNasri @eighteentee

The script doesn’t work on MacOS at all for me - it just alter the banner at the top of the window to reflect whatever number of days you want to be left on the trial, however, the About dialog still counts the days down. If you change the Java function to return True then the app just crashes when you start it.

@rawn7702
Copy link

rawn7702 commented Nov 6, 2022

@eighteentee it works using command on first link Using xattr -r -d com.apple.quarantine
If it not works, the script edited wrong.
I just use it on the latest Balsamic

Hi, I just tried this and managed to get the application to work. But it still shows 30 days. Can you help me? @HoussemNasri @eighteentee

The script doesn’t work on MacOS at all for me - it just alter the banner at the top of the window to reflect whatever number of days you want to be left on the trial, however, the About dialog still counts the days down. If you change the Java function to return True then the app just crashes when you start it.

Same here. I think this is fixed and does not work on macs anymore. I hope @HoussemNasri could fix it.

@andrewcar
Copy link

@eighteentee On 4.6.4, I manually made the change to the getLicenseValidFromLicenseData(data) function on an expired trial and still got the banner saying the trial expired and that I could only view and not make changes, but now I can make changes and export.

So, it seems to have worked.

Thanks, @HoussemNasri

@Mr-Gump
Copy link

Mr-Gump commented Dec 15, 2022

@eighteentee On 4.6.4, I manually made the change to the getLicenseValidFromLicenseData(data) function on an expired trial and still got the banner saying the trial expired and that I could only view and not make changes, but now I can make changes and export.

So, it seems to have worked.

Thanks, @HoussemNasri

Very Great idea!! Following this function I have succeeded!

@markusyarleque
Copy link

Funciona!

  • Versión: 4.6.5
  • Windows 10
  • 15/12/22

Muchas gracias!!!

image

@Artaherzadeh
Copy link

Any idea how to do it on Mac? I'm getting error using the manual way.

@emagiaco
Copy link

emagiaco commented Jan 5, 2023

Any idea how to do it on Mac? I'm getting error using the manual way.

You can download the version 4.6.1 from here and apply the suggested steps. I tried and it works.

If you already installed the version 4.6.4 you may consider to use an app cleaner in order to remove nested files.

@SonyMro
Copy link

SonyMro commented Feb 19, 2023

Funciona en el 2023 lo probé apenas

@vladimir454
Copy link

lol i think this is so good, i just make it happen thank you.

@shaogw
Copy link

shaogw commented Mar 7, 2023

ow to do it on Mac? I'm getting error using the manual way.

Hey there!

I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:

If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.

Change the system time to a date in the future, like 10 years from now.

Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.

Change the system date back to the correct date and reopen the software.

You'll notice that the software now says "Expires in 3683 days".

Hope that helps!

@DacostaDesarrollo
Copy link

Thank you Very Much

@fil344
Copy link

fil344 commented Apr 3, 2023

Your hint works like a charm 😀 Thanks
Bildschirmfoto 2023-04-03 um 18 58 33

@soultingo
Copy link

Your hint works like a charm 😀 Thanks
Bildschirmfoto 2023-04-03 um 18 58 33

Hi fil344,
Which MacBook do you use? Which Balsamiq version do you use? And which method do you use?

@fil344
Copy link

fil344 commented Apr 6, 2023

I have used shaogw's method with uninstallation on my MBP Pro 16" with newest OS and also on my Hackintosh with Monterey 12.6

@stoneotaku
Copy link

MBP M2. Should deeply uninstall this app, using appcleaner ,then edit 'editor-macos.js'. it really works

@chenqingze
Copy link

ow to do it on Mac? I'm getting error using the manual way.

Hey there!

I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:

If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.

Change the system time to a date in the future, like 10 years from now.

Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.

Change the system date back to the correct date and reopen the software.

You'll notice that the software now says "Expires in 3683 days".

Hope that helps!

Thank you Very Much , bro!
it works for me now ,Balsamiq Wireframes for Desktop Version 4.7.2 ,but i don't know whether or not it still work after macos restart.

@chenqingze
Copy link

ow to do it on Mac? I'm getting error using the manual way.

Hey there!
I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:
If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.
Change the system time to a date in the future, like 10 years from now.
Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.
Change the system date back to the correct date and reopen the software.
You'll notice that the software now says "Expires in 3683 days".
Hope that helps!

Thank you Very Much , bro! it works for me now ,Balsamiq Wireframes for Desktop Version 4.7.2 ,but i don't know whether or not it still work after macos restart.

Screenshot 2023-05-07 at 14 20 09

i've tested it ,it still work after macos restarted

@morbidream
Copy link

Thanks a lot <333

@rubenqba
Copy link

Awesome!! Works like a charm!!

CleanShot 2023-05-13 at 18 58 39

@mattal92
Copy link

mattal92 commented May 14, 2023

Hi, i am novice. Please how to enter the code on macOs. I don't understand when tutorial said
"1. Open this file in your text editor"
Is it TERMINAL or just TEXTEDIT ?

Thanks

@HoussemNasri
Copy link
Author

TextEdit is fine. However, it's possible to edit text files in the terminal too.

@mattal92
Copy link

It's making me crazy, I don't suceeded in. Could you screenshot or made a tuto with pics ?

Thanks !

@HoussemNasri
Copy link
Author

Right now, I only have access to a Windows and Linux PC so it's not possible to take screenshots or do a video tutorial on MacOS. However, you are welcome to provide more details about what you mean by "don't succeed in" so I can help you better 😇

@mattal92
Copy link

Capture d’écran 2023-05-15 à 21 32 50

Hi Is it this ?

@HoussemNasri
Copy link
Author

That's a function call, not the function definition. What you need is to look for is the function name with an opening curly braces, like this function getLicenseValidFromLicenseData(data) {. You can paste the code in a Javascript code formatter to make it easier to read.

@mattal92
Copy link

Thank you HoussemNasri,
sorry really it is just impossible for me to make it.

Someone on macOs could made a pic tuto here to help me ? @rubenqba @chenqingze ? maybe...

Thank you guys

@arvelie
Copy link

arvelie commented May 30, 2023

ow to do it on Mac? I'm getting error using the manual way.

Hey there!

I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:

If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.

Change the system time to a date in the future, like 10 years from now.

Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.

Change the system date back to the correct date and reopen the software.

You'll notice that the software now says "Expires in 3683 days".

Hope that helps!

This works on Mac Ventura MBP M2 3.3.1 (a) with Balsamiq Version 4.7.2

@arvelie
Copy link

arvelie commented May 30, 2023

Screenshot 2023-05-30 at 4 37 25 PM

Screenshot 2023-05-30 at 4 37 12 PM

Thank you! Added 20years on my time :)

@Apurva01021999
Copy link

Doesn't work.

@ZhangChengX
Copy link

Screenshot 2023-06-04 at 3 50 27 PM

Lifetime trial.

@raulicomr
Copy link

raulicomr commented Jun 23, 2023

Hi all,

For macOS (and tested on version 4.7.2) the following steps can be done:

  1. Deploy the app file via dmg file.
  2. Open a terminal and create a file run_balsamiq.sh with the following content:
#! /bin/sh
sudo systemsetup -setusingnetworktime off
# Set date format, example: March 06, 2022, 10:00 am would be 0306100022
sudo date 0306100022
/Applications/Balsamiq\ Wireframes.app/Contents/MacOS/Balsamiq\ Wireframes
sudo systemsetup -setusingnetworktime on
  1. Save the file and give it execution permission:
$ chmod +x run_balsamiq.sh
  1. launch the script to use the app and enter the root password to change the system date:
$ sudo ./run_balsamiq.sh
  1. Enjoy Balsamiq app.

Important: It is necessary to close the app with the right button on its icon in the dock so that it is completely closed and the system date is restored.

@cpamungkas
Copy link

image
working..

@solartes
Copy link

ow to do it on Mac? I'm getting error using the manual way.

Hey there!

I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:

If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.

Change the system time to a date in the future, like 10 years from now.

Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.

Change the system date back to the correct date and reopen the software.

You'll notice that the software now says "Expires in 3683 days".

Hope that helps!

Genius!!! <3

image

@tifinag
Copy link

tifinag commented Aug 29, 2023

On my macos, there is no function getLicenseValidFromLicenseData(data)
Version 4.7.3
Just use this
https://gist.github.com/HoussemNasri/c09e55e0e5f451aa10f8621a6680ba28?permalink_comment_id=4494170#gistcomment-4494170

@mrlutton
Copy link

mrlutton commented Sep 4, 2023

Python script does not work for me but editing the RGBA value in LocalSettings.json did!

@arvelie
Copy link

arvelie commented Sep 4, 2023

Mine is still working but I recently discovered Whimsical for personal use. for those whos having problems with this, try it.

Whimsical

@tieutantan
Copy link

BalsamiqForever.py is working...

@darioesposito
Copy link

Hi,

i have this error:

IMPORTANT! please make sure to close Balsamiq before proceeding or the script won't have any effect
How many years of trial do you want :) 1
OS : macOS
Debug Mode: False
/Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js
Traceback (most recent call last):
File "/Users/darioesposito/Downloads/c09e55e0e5f451aa10f8621a6680ba28-b16f52b9481a49c58f23aaf2b1ae9ca2e897c5d2/BalsamiqForever.py", line 115, in
handleMacos(years * 365)
File "/Users/darioesposito/Downloads/c09e55e0e5f451aa10f8621a6680ba28-b16f52b9481a49c58f23aaf2b1ae9ca2e897c5d2/BalsamiqForever.py", line 82, in handleMacos
while not lines[index].strip():
~~~~~^^^^^^^
IndexError: list index out of range

can someone help? thanks

@m0FhR
Copy link

m0FhR commented Sep 21, 2023

ow to do it on Mac? I'm getting error using the manual way.

Hey there!

I've found a way to extend the trial period for Balsamiq Wireframe on Mac. Here's what you need to do:

If you've already installed the software, use "App Cleaner & Uninstaller" to completely uninstall it. You could also use other uninstall software, just make sure it can clean all files generated by Balsamiq Wireframe.

Change the system time to a date in the future, like 10 years from now.

Install the latest version of Balsamiq Wireframe again and open it once. The remaining trial time will show as 30 days.

Change the system date back to the correct date and reopen the software.

You'll notice that the software now says "Expires in 3683 days".

Hope that helps!


Amazing it works!!!!

@wehwahyu
Copy link

Wow, Works like a charm!!!

Uploading image.png…

@fokklz
Copy link

fokklz commented Nov 22, 2023

Thank you bro

@RobinRuf
Copy link

Godlike - Thanks!

@mahgoe
Copy link

mahgoe commented Nov 22, 2023

Thank you for your effort Houssem

@darioesposito
Copy link

Hi,

i have this error:

IMPORTANT! please make sure to close Balsamiq before proceeding or the script won't have any effect
How many years of trial do you want :) 1
OS : macOS
Debug Mode: False
/Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js
Traceback (most recent call last):
File "/Users/darioesposito/Downloads/c09e55e0e5f451aa10f8621a6680ba28-b16f52b9481a49c58f23aaf2b1ae9ca2e897c5d2/BalsamiqForever.py", line 115, in
handleMacos(years * 365)
File "/Users/darioesposito/Downloads/c09e55e0e5f451aa10f8621a6680ba28-b16f52b9481a49c58f23aaf2b1ae9ca2e897c5d2/BalsamiqForever.py", line 82, in handleMacos
while not lines[index].strip():

IndexError: list index out of range

can someone help? thanks

@HoussemNasri
Copy link
Author

@darioesposito The script works only on Windows, for MacOS follow the manual editing section.

@darioesposito
Copy link

Thank you @HoussemNasri but if i modify Editor-macos.js and then save try to open balsamiq it's says to me the software is broken. Any help? thank you

@HoussemNasri
Copy link
Author

HoussemNasri commented Nov 22, 2023

Hmmm, there is a chance that manual editing doesn't work anymore on recent versions of Blasamiq, I don't have a Mac to confirm. This comment appears to have found an alternative solution.

@darioesposito
Copy link

Thank you!

@ahmadtc
Copy link

ahmadtc commented Jan 31, 2024

Hi, I have figured out how to increase trial time manually on MacOS after none of these steps worked for me. (Tested on version 4.7.4)

Here's how I got it to work:

  1. Open this file in your text editor /Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js.

  2. Search for this function function getLicenseValidFromLicenseData(data).

  3. Replace function body by return true.

  4. Under that function, look for function called function getTrialDaysLeftFromNativeData(nativeData).

  5. Go to the statement let trialDaysLeft = Math.ceil(msecUntilExpiry / (1000 * 3600 * 24)); // to secs-hours-days.

  6. Replace 1000 with 10.

  7. Save File.

  8. Restart Balsamiq.

Screenshot 2024-01-31 at 1 59 29 PM

@wingsryder
Copy link

@ahmadtc
bal
This doesn't work for me, Even if this is showing big number of days, but when you check it via "About Balsm...." you can see still exact correct day. Check what showing to me

@Issam2204
Copy link

Hi, I have figured out how to increase trial time manually on MacOS after none of these steps worked for me. (Tested on version 4.7.4)

Here's how I got it to work:

  1. Open this file in your text editor /Applications/Balsamiq Wireframes.app/Contents/Resources/editor-macos.js.
  2. Search for this function function getLicenseValidFromLicenseData(data).
  3. Replace function body by return true.
  4. Under that function, look for function called function getTrialDaysLeftFromNativeData(nativeData).
  5. Go to the statement let trialDaysLeft = Math.ceil(msecUntilExpiry / (1000 * 3600 * 24)); // to secs-hours-days.
  6. Replace 1000 with 10.
  7. Save File.
  8. Restart Balsamiq.

Screenshot 2024-01-31 at 1 59 29 PM

Thanks a lot! This worked for me :)

@rs8dms
Copy link

rs8dms commented Apr 8, 2024

gracias papu!

@HobNoxious
Copy link

Thank you! I manually updated the JSON file on Windows, using a new value returned by epochconverter.com.
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment