111 lines
4.6 KiB
Bash
Executable File
111 lines
4.6 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# Copyright 2010-present Facebook.
|
|
#
|
|
# 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 builds the FacebookSDK.framework that is distributed at
|
|
# https://github.com/facebook/facebook-ios-sdk/downloads/FacebookSDK.framework.zip
|
|
|
|
. ${FB_SDK_SCRIPT:-$(dirname $0)}/common.sh
|
|
test -x "$PACKAGEMAKER" || die 'Could not find PackageMaker in $PATH - install to Applications from https://developer.apple.com/downloads/index.action (Auxiliary Tools for XCode)'
|
|
test -x "$PRODUCTSIGN" || die 'Could not find productsign utility! Reinstall XCode?'
|
|
|
|
FB_SDK_PGK_VERSION=$(sed -n 's/.*FB_IOS_SDK_VERSION_STRING @\"\(.*\)\"/\1/p' ${FB_SDK_SRC}/FacebookSDK.h)
|
|
# In case the hotfix value is zero, we drop the .0
|
|
FB_SDK_NORMALIZED_PGK_VERSION=$(echo ${FB_SDK_PGK_VERSION} | sed 's/^\([0-9]*\.[0-9]*\)\.0/\1/')
|
|
|
|
FB_SDK_UNSIGNED_PKG=$FB_SDK_BUILD/FacebookSDK-${FB_SDK_NORMALIZED_PGK_VERSION}-unsigned.pkg
|
|
FB_SDK_PKG=$FB_SDK_BUILD/FacebookSDK-${FB_SDK_NORMALIZED_PGK_VERSION}.pkg
|
|
|
|
FB_SDK_BUILD_PACKAGE=$FB_SDK_BUILD/package
|
|
FB_SDK_BUILD_PACKAGE_FRAMEWORK_SUBDIR=Documents/FacebookSDK
|
|
FB_SDK_BUILD_PACKAGE_FRAMEWORK=$FB_SDK_BUILD_PACKAGE/$FB_SDK_BUILD_PACKAGE_FRAMEWORK_SUBDIR
|
|
FB_SDK_BUILD_PACKAGE_SAMPLES=$FB_SDK_BUILD_PACKAGE/Documents/FacebookSDK/Samples
|
|
FB_SDK_BUILD_PACKAGE_DOCS=$FB_SDK_BUILD_PACKAGE/Library/Developer/Shared/Documentation/DocSets/$FB_SDK_DOCSET_NAME
|
|
|
|
CODE_SIGN_IDENTITY='Developer ID Installer: Facebook, Inc. (V9WTTPBFK9)'
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Call out to build prerequisites.
|
|
#
|
|
if is_outermost_build; then
|
|
. $FB_SDK_SCRIPT/build_framework.sh -t -c Release
|
|
. $FB_SDK_SCRIPT/build_documentation.sh
|
|
fi
|
|
echo Building Distribution.
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build package directory structure
|
|
#
|
|
progress_message "Building package directory structure."
|
|
\rm -rf $FB_SDK_BUILD_PACKAGE
|
|
mkdir $FB_SDK_BUILD_PACKAGE \
|
|
|| die "Could not create directory $FB_SDK_BUILD_PACKAGE"
|
|
mkdir -p $FB_SDK_BUILD_PACKAGE_FRAMEWORK
|
|
mkdir -p $FB_SDK_BUILD_PACKAGE_SAMPLES
|
|
mkdir -p $FB_SDK_BUILD_PACKAGE_DOCS
|
|
|
|
\cp -R $FB_SDK_FRAMEWORK $FB_SDK_BUILD_PACKAGE_FRAMEWORK \
|
|
|| die "Could not copy $FB_SDK_FRAMEWORK"
|
|
\cp -R $FB_SDK_SAMPLES/ $FB_SDK_BUILD_PACKAGE_SAMPLES \
|
|
|| die "Could not copy $FB_SDK_BUILD_PACKAGE_SAMPLES"
|
|
\cp -R $FB_SDK_FRAMEWORK_DOCS/docset/Contents $FB_SDK_BUILD_PACKAGE_DOCS \
|
|
|| die "Could not copy $$FB_SDK_FRAMEWORK_DOCS/docset/Contents"
|
|
\cp $FB_SDK_ROOT/README $FB_SDK_BUILD_PACKAGE/Documents/FacebookSDK \
|
|
|| die "Could not copy README"
|
|
\cp $FB_SDK_ROOT/LICENSE $FB_SDK_BUILD_PACKAGE/Documents/FacebookSDK \
|
|
|| die "Could not copy LICENSE"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Fixup projects to point to the SDK framework
|
|
#
|
|
for fname in $(find $FB_SDK_BUILD_PACKAGE_SAMPLES -name "project.pbxproj" -print); do \
|
|
sed "s|../../build|../../../../${FB_SDK_BUILD_PACKAGE_FRAMEWORK_SUBDIR}|g" \
|
|
${fname} > ${fname}.tmpfile && mv ${fname}.tmpfile ${fname}; \
|
|
done
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build .pkg from package directory
|
|
#
|
|
progress_message "Building .pkg from package directory."
|
|
\rm -rf $FB_SDK_UNSIGNED_PKG
|
|
$PACKAGEMAKER \
|
|
--doc $FB_SDK_SRC/Package/FacebookSDK.pmdoc \
|
|
--domain user \
|
|
--target 10.5 \
|
|
--version $FB_SDK_VERSION \
|
|
--out $FB_SDK_UNSIGNED_PKG \
|
|
--title 'Facebook SDK 3.8 for iOS' \
|
|
|| die "PackageMaker reported error"
|
|
|
|
progress_message "Signing package."
|
|
\rm -rf $FB_SDK_PKG
|
|
$PRODUCTSIGN -s "$CODE_SIGN_IDENTITY" $FB_SDK_UNSIGNED_PKG $FB_SDK_PKG \
|
|
|| FAILED_TO_SIGN=1
|
|
|
|
if [ "$FAILED_TO_SIGN" == "1" ] ; then
|
|
progress_message "Failed to sign the package. See https://our.intern.facebook.com/intern/wiki/index.php/Platform/Mobile/ContributingToMobileSDKs#Building_the_iOS_Distribution_with_PackageMaker"
|
|
fi
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Done
|
|
#
|
|
progress_message "Successfully built SDK distribution:"
|
|
if [ "$FAILED_TO_SIGN" != "1" ] ; then
|
|
progress_message " Signed : $FB_SDK_PKG"
|
|
fi
|
|
progress_message " Unsigned : $FB_SDK_UNSIGNED_PKG"
|
|
common_success
|