如果你的项目用到cocopod 第三方库。使用xcodebulid 估计会出现
ld: library not found for -lPods
以下 是我的解决办法
xcodebuild -workspace 项目根目录/项目名.xcworkspace \
-scheme 项目名 \
ONLY_ACTIVE_ARCH=NO \
TARGETED_DEVICE_FAMILY=1 \
DEPLOYMENT_LOCATION=YES
重新运行命令。哈。成功了。
以下是我找到的解决方案
上面问题解决了。
运行命令 bulid 成功提示 可是 release 的app 却在~/Library/Developer/ugly_path/ 。。
如果能指定路径就好了
哈解决。。命令后添加参数
CONFIGURATION_BUILD_DIR ='指定路径',当前用户要有权限。如没有可以修改权限chomd 777 '指定路径'
如果每次都要自己输入命令 来打包 太麻烦了。何不把命令写成shell 用到时 拖到终端执行下 就ok 。岂不美哉
xcode 新建。shell 文件
#!/bin/sh# ipa-build.sh# 使用# 把该文保存 ,修改权限chmod +x 你的shell文件名# 把文件拖到 终端 。# 参数 # 1,你要打包工程的根目录 2,你要输出的ipa文件目录(你当前用户要有权限) 3,指定的ipa 文件名 参数用空格隔开 # eg:~
# ~/Desktop/ipa-build.sh ~/Documents/workSpace/project ~/Desktop/project projectName
#!/bin/bash#参数判断if [ $# != 3 ] && [ $# != 2 ]&& [ $# != 1 ];thenecho "Number of params error! Need three params!"echo "1.path of project(necessary) 2.path of ipa dictionary(necessary) 3.name of ipa file(necessary)"exitelif [ ! -d $1 ];thenecho "Params Error!! The 1 param must be a project root dictionary."exitelif [ ! -d $2 ];thenecho "Params Error!! The 2 param must be a ipa dictionary."exitfi#工程绝对路径cd $1project_path=$(pwd)#build文件夹路径build_path=${project_path}/build#工程配置文件路径project_name=$(ls | grep xcodeproj | awk -F.xcodeproj '{print $1}')project_infoplist_path=${project_path}/${project_name}/${project_name}-Info.plist#取版本号bundleShortVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" ${project_infoplist_path})#取build值bundleVersion=$(/usr/libexec/PlistBuddy -c "print CFBundleVersion" ${project_infoplist_path})#取bundle Identifier前缀bundlePrefix=$(/usr/libexec/PlistBuddy -c "print CFBundleIdentifier" `find . -name "*-Info.plist"` | awk -F$ '{print $1}')cd $project_path#清理工程xcodebuild clean || exit#删除bulid目录if [ -d ${build_path} ];thenrm -rf ${build_path}fi#编译工程xcodebuild -configuration Release -workspace ${project_path}/${project_name}.xcworkspace \-scheme ${project_name} \ONLY_ACTIVE_ARCH=NO \TARGETED_DEVICE_FAMILY=1 \DEPLOYMENT_LOCATION=YES CONFIGURATION_BUILD_DIR=${project_path}/build/Release-iphoneos || exit#IPA名称if [ $# = 3 ];thenipa_name=$3fiif [ -d ./ipa-build ];thenrm -rf ipa-buildfi#打包cd $build_pathmkdir -p ipa-build/Payloadcp -r ./Release-iphoneos/*.app ./ipa-build/Payload/cd ipa-buildzip -r ${ipa_name}.ipa *cp -r ./${ipa_name}.ipa $2rm -rf Payload#删除bulid目录if [ -d ${build_path} ];thenrm -rf ${build_path}fi
受以下文章启发
有关xcodebulid