2013-06-21 55 views
1

我设法让静态库工作,它的一切正常。现在我已经进入适当的图书馆了,我想创建Im有问题。我使用cocoapods导入其他文件,并创建一个工作区。现在我编译的脚本不再有效,我的假设是因为我现在在框架中工作。我一直在Google上搜寻几个小时试图获得答案,但所有我发现的事情只涉及到将一个项目变成一个库 我的问题是: 1)是否可以将工作区组合到一个单一的库中? 2)我应该尝试创建一个框架吗? 3)它只是我的脚本不正确吗?从工作区创建静态库

XCODEBUILD_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin 
XCODEBUILD=$XCODEBUILD_PATH/xcodebuild 
$XCODEBUILD -project T5Pusher.xcodeproj -target "T5Pusher" -sdk "iphoneos" -  configuration "Release" clean build 
$XCODEBUILD -project T5Pusher.xcodeproj -target "T5Pusher" -sdk "iphonesimulator" - configuration "Release" clean build 
lipo -create -output "build/libT5Pusher.a" "build/Release-iphoneos/libT5Pusher.a" "build/Release-iphonesimulator/libT5Pusher.a" 

也试过这种

XCODEBUILD_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin 
XCODEBUILD=$XCODEBUILD_PATH/xcodebuild 
$XCODEBUILD -workspace T5Pusher.xcworkspace -scheme "T5Pusher" -sdk "iphoneos" -  configuration "Release" clean build 
$XCODEBUILD -workspace T5Pusher.xcworkspace -scheme "T5Pusher" -sdk "iphonesimulator" - configuration "Release" clean build 
lipo -create -output "build/libT5Pusher.a" "build/Release-iphoneos/libT5Pusher.a" "build/Release-iphonesimulator/libT5Pusher.a" 

我得到的错误是

** BUILD FAILED ** 


The following build commands failed: 
Libtool build/PusherTest.build/Release-iphoneos/PusherTest.build/Objects- normal/armv7/libPusherTest.a normal armv7 
Libtool build/PusherTest.build/Release-iphoneos/PusherTest.build/Objects-normal/armv7s/libPusherTest.a normal armv7s 
(2 failures) 
lipo: can't open input file: build/Release-iphoneos/libPusherTest.a (No such file or directory) 
Showing first 200 notices only 

和第二,构建成功,但库(.a)中从来没有因此它创建的文件不能合并它们

+0

它以什么方式不起作用?有错误吗? – hooleyhoop

+0

更新错误 – walsh06

回答

0

我找到了解决方案。您必须使用以下命令:

pod install --no-integrate 

安装吊舱时。这不会创建一个工作区,并允许使用脚本

XCODEBUILD_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin 
XCODEBUILD=$XCODEBUILD_PATH/xcodebuild 
$XCODEBUILD -project T5Pusher.xcodeproj -target "T5Pusher" -sdk "iphoneos" -  configuration "Release" clean build 
$XCODEBUILD -project T5Pusher.xcodeproj -target "T5Pusher" -sdk "iphonesimulator" - configuration "Release" clean build 
lipo -create -output "build/libT5Pusher.a" "build/Release-iphoneos/libT5Pusher.a" "build/Release-iphonesimulator/libT5Pusher.a" 

然后设置为豆荚配置文件:

依序前往项目编辑 - >信息 - >配置

- 设置使用pods.xconfig文件进行调试和发布的目标

0

我自己也遇到同样的问题,并且发现如果我指定了输出目录,然后告诉lipo看看那里,那么它仍然可以让我使用工作区。在Xcode 5中可能会有所不同,但是当我将它用作自定义构建阶段时,它可以在没有指定输出目录的情况下工作,我只需将lipo指向$ {BUILD_DIR}即可找到生成的文件。

$XCODEBUILD -project T5Pusher.xcodeproj \ 
-target "T5Pusher" \ 
-sdk "iphoneos" \ 
-configuration "Release" 
OBJROOT=${env_variable_to_some_directory}/Obj.root \ 
SYMROOT=${env_variable_to_some_directory}/Sym.root \ 
DSTROOT=${env_variable_to_some_directory}/Dst.root \ 
clean build