@@ -50,36 +50,84 @@ function signExecutableInsideJar() {
50
50
done
51
51
}
52
52
53
- # sign libjansi.jnilib inside kotlin-compiler-embeddable.jar
54
- for f in ` find ${dir} /${destination_folder_name} /SpringToolSuite4.app -type f | grep -E " .*/kotlin-compiler-embeddable.*\.jar$" `
55
- do
56
- echo " Looking for 'libjansi.jnilib' files inside ${f} to sign..."
57
- f_name=" $( basename -- $f ) "
58
- extracted_jar_dir=extracted_${f_name}
59
- rm -rf $extracted_jar_dir
60
- mkdir $extracted_jar_dir
61
- echo " Extracting archive ${f} "
62
- unzip -q $f -d ./${extracted_jar_dir}
63
- for jnilib_file in ` find $extracted_jar_dir -type f | grep -E " .*/libjansi\.jnilib$" `
53
+ function signExecutableInsideJar2() {
54
+ for f in ` find $1 -type f | grep -E $2 `
55
+ do
56
+ echo " Looking for '$3 ' files inside ${f} to sign..."
57
+ f_name=" $( basename -- $f ) "
58
+ extracted_jar_dir=extracted_${f_name}
59
+ rm -rf $extracted_jar_dir
60
+ mkdir $extracted_jar_dir
61
+ echo " Extracting archive ${f} "
62
+ unzip -q $f -d ./${extracted_jar_dir}
63
+ for jnilib_file in ` find $extracted_jar_dir -type f | grep -E " $4 " `
64
+ do
65
+ echo " Signing binary file: ${jnilib_file} "
66
+ codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " $jnilib_file
67
+ done
68
+ cd $extracted_jar_dir
69
+ zip -r -u ../$f .
70
+ cd ..
71
+ rm -rf $extracted_jar_dir
72
+
73
+ echo " Signing binary file: ${f} "
74
+ codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " $f
75
+ done
76
+ }
77
+
78
+ function signExecutableInsideNestedJar() {
79
+ for f in ` find $1 -type f | grep -E $2 `
64
80
do
65
- echo " Signing binary file: ${jnilib_file} "
66
- codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " $jnilib_file
81
+ echo " Looking for '$3 ' files inside ${f} to sign..."
82
+ f_name=" $( basename -- $f ) "
83
+ extracted_jar_dir=extracted_${f_name}
84
+ rm -rf $extracted_jar_dir
85
+ mkdir $extracted_jar_dir
86
+ echo " Extracting archive ${f} "
87
+ unzip -q $f -d ./${extracted_jar_dir}
88
+ signExecutableInsideJar2 $extracted_jar_dir $3 $4 $5
89
+ zip -r -u ../$f .
90
+ cd ..
91
+ rm -rf $extracted_jar_dir
92
+ echo " Signing binary file: ${f} "
93
+ codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " $f
67
94
done
68
- cd $extracted_jar_dir
69
- zip -r -u ../$f .
70
- cd ..
71
- rm -rf $extracted_jar_dir
95
+ }
72
96
73
- echo " Signing binary file: ${f} "
74
- codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " $f
75
- done
97
+ # sign libjansi.jnilib inside kotlin-compiler-embeddable.jar
98
+ signExecutableInsideJar2 {dir}/${destination_folder_name} /SpringToolSuite4.app " .*/kotlin-compiler-embeddable.*\.jar$" " libjansi.jnilib" " .*/libjansi\.jnilib$"
99
+ # for f in `find ${dir}/${destination_folder_name}/SpringToolSuite4.app -type f | grep -E ".*/kotlin-compiler-embeddable.*\.jar$"`
100
+ # do
101
+ # echo "Looking for 'libjansi.jnilib' files inside ${f} to sign..."
102
+ # f_name="$(basename -- $f)"
103
+ # extracted_jar_dir=extracted_${f_name}
104
+ # rm -rf $extracted_jar_dir
105
+ # mkdir $extracted_jar_dir
106
+ # echo "Extracting archive ${f}"
107
+ # unzip -q $f -d ./${extracted_jar_dir}
108
+ # for jnilib_file in `find $extracted_jar_dir -type f | grep -E ".*/libjansi\.jnilib$"`
109
+ # do
110
+ # echo "Signing binary file: ${jnilib_file}"
111
+ # codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $jnilib_file
112
+ # done
113
+ # cd $extracted_jar_dir
114
+ # zip -r -u ../$f .
115
+ # cd ..
116
+ # rm -rf $extracted_jar_dir
117
+ #
118
+ # echo "Signing binary file: ${f}"
119
+ # codesign --verbose --deep --force --timestamp --entitlements "${entitlements}" --options=runtime --keychain "${KEYCHAIN}" -s "${MACOS_CERTIFICATE_ID}" $f
120
+ # done
76
121
77
122
# sign libsnappyjava.jnilib and libsnappyjava.dylib inside snappy-java.jar
78
- signExecutableInsideJar " .*/snappy-java.*\.jar$" " libsnappyjava.jnilib" " .*/libsnappyjava\.(jni|dy)lib$"
123
+ signExecutableInsideJar2 {dir}/ ${destination_folder_name} /SpringToolSuite4.app " .*/snappy-java.*\.jar$" " libsnappyjava.jnilib" " .*/libsnappyjava\.(jni|dy)lib$"
79
124
80
125
# sign libjnidispatch.jnilib inside jna.jar
81
126
signExecutableInsideJar " .*/jna-\d+.*\.jar$" " libjnidispatch.jnilib.jnilib" " .*/libjnidispatch\.jnilib$"
82
127
128
+ # sign libjnidispatch.jnilib inside jna.jar which is inside org.springframework.ide.eclipse.docker.client.jar bundle
129
+ signExecutableInsideNestedJar {dir}/${destination_folder_name} /SpringToolSuite4.app " .*/org.springframework.ide.eclipse.docker.client.*\.jar$" " org.springframework.ide.eclipse.docker.client.jar" " libjnidispatch.jnilib.jnilib" " .*/libjnidispatch\.jnilib$"
130
+
83
131
# Sign the app
84
132
ls -la ${dir} /${destination_folder_name} /SpringToolSuite4.app/
85
133
codesign --verbose --deep --force --timestamp --entitlements " ${entitlements} " --options=runtime --keychain " ${KEYCHAIN} " -s " ${MACOS_CERTIFICATE_ID} " ${dir} /${destination_folder_name} /SpringToolSuite4.app
0 commit comments