4

我对构建脚本完全陌生,所以如果答案很明显,请原谅我。这是我在终端上的输入:

Joels-MacBook-Air:~ joel$ /Users/joel/Desktop/NameOfApp/build_facebook_ios_sdk_static_lib.sh

这是我得到的输出:

Project Home: /Users/joel/Desktop
Start Universal facebook-ios-sdk SDK Generation
Step 1 : facebook-ios-sdk SDK Build Library for simulator and device architecture
/Users/joel/Desktop/NameOfApp/build_facebook_ios_sdk_static_lib.sh: line 56: cd: /Users/joel/Desktop/src: No such file or directory
Build settings from command line:
SDKROOT = iphonesimulator5.1
SYMROOT = /Users/joel/Desktop/build

xcodebuild: error: The directory /Users/joel/Desktop does not contain an Xcode project.

我认为问题从上面很清楚,但以防万一这里是脚本的代码——如果它不相关,请忽略它:

!/bin/sh
/*
Copyright 2004-present Facebook. All Rights Reserved.


This script will build a static library version of the Facebook iOS SDK.
You may want to use this script if you have a project that has the 
Automatic Reference Counting feature turned on. Once you run this script
you will get a directory under the iOS SDK project home path:
 lib/facebook-ios-sdk
You can drag the facebook-ios-sdk directory into your Xcode project and
copy the contents over or include it as a reference.*/

//Function for handling errors
die() {
echo ""
echo "$*" >&2
exit 1
}

//The Xcode bin path
if [ -d "/Developer/usr/bin" ]; then
//< XCode 4.3.1
XCODEBUILD_PATH=/Developer/usr/bin
else
// >= XCode 4.3.1, or from App store
XCODEBUILD_PATH=/Applications/XCode.app/Contents/Developer/usr/bin
fi
XCODEBUILD=$XCODEBUILD_PATH/xcodebuild
test -x "$XCODEBUILD" || die "Could not find xcodebuild in $XCODEBUILD_PATH"

// Get the script path and set the relative directories used for compilation
cd $(dirname $0)
SCRIPTPATH=`pwd`
cd $SCRIPTPATH/../

//The home directory where the SDK is installed
PROJECT_HOME=`pwd`

echo "Project Home: $PROJECT_HOME"

//The facebook-ios-sdk src directory path
SRCPATH=$PROJECT_HOME/src

//The directory where the target is built
BUILDDIR=$PROJECT_HOME/build

//The directory where the library output will be placed
LIBOUTPUTDIR=$PROJECT_HOME/lib/facebook-ios-sdk

echo "Start Universal facebook-ios-sdk SDK Generation"

echo "Step 1 : facebook-ios-sdk SDK Build Library for simulator and device architecture"

cd $SRCPATH

$XCODEBUILD -target "facebook-ios-sdk" -sdk "iphonesimulator" -configuration "Release" SYMROOT=$BUILDDIR clean build || die "iOS Simulator build failed"
$XCODEBUILD -target "facebook-ios-sdk" -sdk "iphoneos" -configuration "Release" SYMROOT=$BUILDDIR clean build || die "iOS Device build failed"

echo "Step 2 : Remove older SDK Directory"

\rm -rf $LIBOUTPUTDIR

echo "Step 3 : Create new SDK Directory Version"

mkdir -p $LIBOUTPUTDIR

echo "Step 4 : Create combine lib files for various platforms into one"

//combine lib files for various platforms into one
lipo -create $BUILDDIR/Release-iphonesimulator/libfacebook_ios_sdk.a $BUILDDIR/Release-iphoneos/libfacebook_ios_sdk.a -output $LIBOUTPUTDIR/libfacebook_ios_sdk.a || die "Could not create static output library"

echo "Step 5 : Copy headers Needed"
\cp $SRCPATH/*.h $LIBOUTPUTDIR/
\cp $SRCPATH/JSON/*.h $LIBOUTPUTDIR/

echo "Step 6 : Copy other file needed like bundle"
\cp -r $SRCPATH/*.bundle $LIBOUTPUTDIR

echo "Finished Universal facebook-ios-sdk SDK Generation"
echo ""
echo "You can now use the static library that can be found at:"
echo ""
echo $LIBOUTPUTDIR
echo ""
echo "Just drag the facebook-ios-sdk directory into your project to include the Facebook iOS SDK static library"
echo ""
echo ""

exit 0

我的下一步是什么?

感谢您的帮助,伙计们和女孩们。

4

1 回答 1

3

您需要使当前目录成为包含.xcodeproj(特殊)文件夹的目录:

(cd $PROJECT_HOME; xcodebuild -target ...)

xcodebuild应该已经在您的文件中$PATH,因此您可以转储所有设置的东西$XCODEBUILDxcode-select然后,您可以使用( manpage )在 Xcode 安装之间进行选择。

于 2012-08-26T10:58:01.030 回答