parent
1c2cf31288
commit
d6ba6773ce
@ -0,0 +1,62 @@ |
||||
################################################################################ |
||||
# |
||||
# Copyright 2015 Realm Inc. |
||||
# |
||||
# Licensed under the Apache License, Version 2.0 (the "License"); |
||||
# you may not use this file except in compliance with the License. |
||||
# You may obtain a copy of the License at |
||||
# |
||||
# http://www.apache.org/licenses/LICENSE-2.0 |
||||
# |
||||
# Unless required by applicable law or agreed to in writing, software |
||||
# distributed under the License is distributed on an "AS IS" BASIS, |
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
# See the License for the specific language governing permissions and |
||||
# limitations under the License. |
||||
# |
||||
################################################################################ |
||||
|
||||
# This script strips all non-valid architectures from dynamic libraries in |
||||
# the application's `Frameworks` directory. |
||||
# |
||||
# The following environment variables are required: |
||||
# |
||||
# BUILT_PRODUCTS_DIR |
||||
# FRAMEWORKS_FOLDER_PATH |
||||
# VALID_ARCHS |
||||
# EXPANDED_CODE_SIGN_IDENTITY |
||||
|
||||
|
||||
# Signs a framework with the provided identity |
||||
code_sign() { |
||||
# Use the current code_sign_identitiy |
||||
echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" |
||||
echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1" |
||||
/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" |
||||
} |
||||
|
||||
echo "Stripping frameworks" |
||||
cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" |
||||
|
||||
for file in $(find . -type f -perm +111); do |
||||
# Skip non-dynamic libraries |
||||
if ! [[ "$(file "$file")" == *"dynamically linked shared library"* ]]; then |
||||
continue |
||||
fi |
||||
# Get architectures for current file |
||||
archs="$(lipo -info "${file}" | rev | cut -d ':' -f1 | rev)" |
||||
stripped="" |
||||
for arch in $archs; do |
||||
if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then |
||||
# Strip non-valid architectures in-place |
||||
lipo -remove "$arch" -output "$file" "$file" || exit 1 |
||||
stripped="$stripped $arch" |
||||
fi |
||||
done |
||||
if [[ "$stripped" != "" ]]; then |
||||
echo "Stripped $file of architectures:$stripped" |
||||
if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then |
||||
code_sign "${file}" |
||||
fi |
||||
fi |
||||
done |
Loading…
Reference in new issue