本来这篇文┞仿还有很多内容想写,篇幅限制,就先如许吧。比来产生了很多不高兴的事,这里提示本身一句:吃一堑,长一智。
后面有时光了,会介绍一些编译期黑科技:
- 写入额外的编译信息
- 函数的调用过程和运行时找到函数在二进制文件中的的地址
- ……
附录
主动编译打包脚本
- export LC_ALL=zh_CN.GB2312;
- export LANG=zh_CN.GB2312
- buildConfig="Release" //这里是build模式
- projectName=`find . -name *.xcodeproj | awk -F "[/.]" '{print $(NF-1)}'`
- projectDir=`pwd`
- wwwIPADir=~/Desktop/$projectName-IPA
- isWorkSpace=true
- echo "~~~~~~~~~~~~~~~~~~~开端编译~~~~~~~~~~~~~~~~~~~"
- if [ -d "$wwwIPADir" ]; then
- echo $wwwIPADir
- echo "文件目次存在"
- else
- echo "文件目次不存在"
- mkdir -pv $wwwIPADir
- echo "创建${wwwIPADir}目次成功"
- fi
- cd $projectDir
- rm -rf ./build
- buildAppToDir=$projectDir/build
- infoPlist="$projectName/Info.plist"
- bundleVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
- bundleIdentifier=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $infoPlist`
- bundleBuildVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $infoPlist`
- if $isWorkSpace ; then #是否用CocoaPod
- echo "开端编译workspace...."
- xcodebuild -workspace $projectName.xcworkspace -scheme $projectName -configuration $buildConfig clean build SYMROOT=$buildAppToDir
- else
- echo "开端编译target...."
- xcodebuild -target $projectName -configuration $buildConfig clean build SYMROOT=$buildAppToDir
- fi
- if test $? -eq 0
- then
- echo "~~~~~~~~~~~~~~~~~~~编译成功~~~~~~~~~~~~~~~~~~~"
- else
- echo "~~~~~~~~~~~~~~~~~~~编译掉败~~~~~~~~~~~~~~~~~~~"
- exit 1
- fi
- ipaName=`echo $projectName | tr "[:upper:]" "[:lower:]"` #将项目名转小写
- findFolderName=`find . -name "$buildConfig-*" -type d |xargs basename` #查找目次
- appDir=$buildAppToDir/$findFolderName/ #app地点路径
- echo "开端打包$projectName.app成$projectName.ipa....."
- xcrun -sdk iphoneos PackageApplication -v $appDir/$projectName.app -o $appDir/$ipaName.ipa
- if [ -f "$appDir/$ipaName.ipa" ]
- then
- echo "打包$ipaName.ipa成功."
- else
推荐阅读
早期进修 Node.js 的时刻 (2011-2012),有挺多是大年夜 PHP 转过来的,当时有部分人对于 Node.js 编辑完代码须要重启一下表示麻烦(PHP不须要这个过程),于是社区里的同伙就开端倡导应用 >>>详细阅读
本文标题:iOS编译过程的原理和应用
地址:http://www.17bianji.com/lsqh/34703.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示