tunnelblick icon Tunnelblick free software for OpenVPN on macOS We need translators for several languages…

Highlighted Articles
  News
  Installing Tunnelblick
  Uninstalling Tunnelblick
  Setting up Configurations
  Using Tunnelblick
  Getting VPN Service
  Common Problems
  Configuring OpenVPN
  Release Notes
  Thanks
  FAQ

Discussion Group
  Read Before You Post

Rebranding Tunnelblick

Note 1: There is an alternate method of distributing Tunnelblick that allows configurations to be automatically installed when Tunnelblick is installed and updated from your web server but does not require rebranding and uses the standard, digitally-signed Tunnelblick application. See Auto-Install Configurations and Updatable Configurations.

Note 2: There is a discussion here that contains some additional information for rebranding and building Tunnelblick, but note that it is older than this page.

After Tunnelblick 3.3beta21, "Deployed" versions of Tunnelblick must be "rebranded" with a different name. This is done to make sure that different versions of Tunnelblick on one computer do not interfere with each other.

Creating a Deployed Tunnelblick without rebranding (by removing the source code that checks for rebranding) can cause unpredictable behavior, may be less secure, can lead to problems with updating, and can interfere with other installations of Tunnelblick on the same computer. Please don't do it!

To rebrand Tunnelblick you need to be able to build Tunnelblick from the source (see Building from Source). That requires Xcode 3.2.2 running on OS X 10.6.8. Here are step-by-step instructions for rebranding:

First, make sure there are NO SPACES in the path to the source.

Next, edit the source code as follows:

Start Xcode 3.2.2 on Snow Leopard by double-clicking Tunnelblick.xcodeproj.

Click on the disclosure triangle to the left of the "Resources" folder in the left-most column to expand "Resources"

Click on "Info.plist" under "Resources" to select it.

In the right-most column in the document in the right side, change "net.tunnelblick.tunnelblick" to something that doesn't include "net.tunnelblick" — something like "com.YOUR_COMPANY_NAME.NEWPROJECTNAME.deployed-application"

In the right-most column in the document in the right side, change "https://www.tunnelblick.net/appcast.rss" to something that doesn't include "tunnelblick.net". It should be the URL for an "appcast.rss" used by the Sparkle updater module of Tunnelblick to check for available updates. See the Sparkle documentation for details on the contents of "appacast.rss". (If you override this setting with a forced-preference for "updateURL", that URL cannot contain "tunnelblick.net" either.)

Quit Xcode, saving all changes (it is important to quit the PROGRAM completely, not just close all the windows)

Start Xcode 3.2.2 on Snow Leopard by double-clicking Tunnelblick.xcodeproj.

Click on "Tunnelbick" at the top of the list in the left-most column to select it

Project | Rename
(wait for it to fill in the big box; there will be four items to change (for r3000, which is build 4000))

Rename project to: NEWPROJECTNAME
Click "Rename"

(wait for it to finish)
Click "OK"

Close the window

If Xcode says it failed to save NEWPROJECTNAME.xcodeproj, click "Close"

If an alert window pops up, click "Save"

Quit Xcode (it is important to quit the PROGRAM completely, not just close all the windows)

Remove ....../tunnelblick/build/Tunnelblick.build

Double-click NEWPROJECTNAME.xcodeproj.

In left pane, collapse Classes, Other Sources, and Resources, and then select all three.

Edit | Find | Find in Project (opens "Project Find" window)

Find: Tunnelblick
Replace: NEWPROJECTNAME
In Selected Project Items
Textual
Contains
Un-check Ignore case
Click "Find"

(wait, it should find 12,035 occurrences (for r3000, which is build 4000))
Click "Replace"

Do you really want to replace 12,035 (of 12,035)...
Click "Replace"

(wait for it to finish)
Quit Xcode, saving all changes (it is important to quit the PROGRAM completely, not just close all the windows).

When rebranding Tunnelblick build 3957 and higher, also change the bundle identifier globally:

Double-click NEWPROJECTNAME.xcodeproj

In left pane, collapse and highlight Classes, Other Sources, and Resources

Edit | Find | Find in Project (opens "Project Find" window)

Find: net.tunnelblick.tunnelblick
Replace: YOUR_OWN_BUNDLE_IDENTIFIER (such as "com.example.mac-vpn-client")
In Selected Project Items
Textual
Contains
Un-check Ignore case
Click "Find"

(wait, it should get 108 occurrences (for r3000, which is build 4000))
Click "Replace"

Do you really want to replace 108 (of 108)...
Click "Replace"

(wait for it to finish)
Quit Xcode, saving all changes (it is important to quit the PROGRAM completely, not just close all the windows).

Deal with Sparkle update signatures (see Digital Signatures):

  • If you are signing the Sparkle updates, replace ....../tunnelblick/dsa_pub.pem file with your own file.
  • If you are not signing the Sparkle updates, remove the "SUPublicDSAKeyFile" entry from ....../tunnelblick/Info.plist. Finally, if you are not signing the application yourself, after you have built the rebranded application, copy "tun-signed.kext" and "tap-signed.kext" from the latest beta version of Tunnelblick into your application's "Contents/Resources" folder.