osx: fix signing to make Gatekeeper happy (again)

The approach from 65f3fa8d1 worked for signing on 10.9.4, but not newer
versions. 10.9.5 (and up) want each framework to stand alone.

Now in addition to copying the plist's from Qt for each framework, we put them
in per-version dirs and only symlink to the latest, rather than using symlinks
for any contents.
This commit is contained in:
Cory Fields 2014-09-29 22:03:11 -04:00
parent 4b2b78b9f2
commit af0bd5ee7f

View File

@ -283,8 +283,8 @@ def copyFramework(framework, path, verbose):
if not framework.isDylib(): # Copy resources for real frameworks if not framework.isDylib(): # Copy resources for real frameworks
linkfrom = os.path.join(path, "Contents/Frameworks/", framework.frameworkName, framework.binaryName) linkfrom = os.path.join(path, "Contents","Frameworks", framework.frameworkName, "Versions", "Current")
linkto = os.path.join(framework.binaryPath) linkto = framework.version
if not os.path.exists(linkfrom): if not os.path.exists(linkfrom):
os.symlink(linkto, linkfrom) os.symlink(linkto, linkfrom)
if verbose >= 2: if verbose >= 2:
@ -303,11 +303,6 @@ def copyFramework(framework, path, verbose):
toContentsDir = os.path.join(path, framework.destinationVersionContentsDirectory) toContentsDir = os.path.join(path, framework.destinationVersionContentsDirectory)
shutil.copytree(fromContentsDir, toContentsDir) shutil.copytree(fromContentsDir, toContentsDir)
contentslinkfrom = os.path.join(path, framework.destinationContentsDirectory) contentslinkfrom = os.path.join(path, framework.destinationContentsDirectory)
if not os.path.exists(contentslinkfrom):
contentslinkto = os.path.join("Versions/", framework.version, "Contents")
os.symlink(contentslinkto, contentslinkfrom)
if verbose >= 3:
print "Linked:", contentslinkfrom, "->", contentslinkto
if verbose >= 3: if verbose >= 3:
print "Copied Contents:", fromContentsDir print "Copied Contents:", fromContentsDir
print " to:", toContentsDir print " to:", toContentsDir