网站首页  |   业界社区  |  电信社区  |  技术社区   |  极客社区  |  游戏社区  |  生活社区   |   科技博客  |   同事录
TechWeb-技术社区


标题: [求助] 搭建iphone开发环境
yimadai
TW金牌会员
Rank: 6Rank: 6



UID 138204
精华 19
积分 1027
帖子 512
阅读权限 70
注册 2008-7-23
状态 离线
发表于 2008-8-19 15:10 资料 短消息 加为好友 添加 yimadai 为MSN好友 通过MSN和 yimadai 交谈
搭建iphone开发环境

17 Apr
"w4q+~%|7L2k-N+O&a
$I Q0l;^+{-q+ZTechWeb-技术社区网上搭建iPhone开放开发环境的文章已经不少了。本文参考了不少资料,详细说明如何成功在Leopard中搭建一个完整的开发环境并整合XCode进行iPhone源生程序的开发。5W6q7{:q0w,P:U
#Q8},`(X$z8c
在XCode中整合toolchain开发环境和苹果官方的iPhone SDK并不冲突,你可以在同一个XCode中既建立toolchain的开发工程,也可以建立官方的iPhone SDK工程。tech.techweb.com.cn.H5z(_,L%v/Y2y

6H2p8m2a K!X(z/t(s'gTechWeb-技术社区本文在Leopard 10.5.2,XCode 3.1 Beta 3(随iPhone SDK Beta3提供),iPhone OS 1.1.4测试通过。
,|(q%f/G0[!k#P/i1f0Q2P$I
/c0i7?#K;~$B0a0C*j&i0U/C-`2J2B1M$z"@!}$\5]$F
)B.l-|;?*Z4g1f
准备工作请确认操作系统为Leopard 10.5.2。.y6\,p;|(M H,Q2v.H
请确认XCode已经安装。最好安装最新的官方XCode 3.1 Beta。:s9W,s#C"T$Y
手中最好是有iPhone或者iPod Touch, 已经jailbreak。
)b)u6L#H9G#T M5U获取toolchain源码TechWeb-技术社区2b-X(~'l't%q(A*d0?
打开一个terminal窗口,随便建立一个目录
3C A9K:S3e;z9JTechWeb-技术社区5l3u E"\ w,{7F:l
  • mkdir iphoneenvtech.techweb.com.cn;s6I#c)o%d"C6@3n
  • cd iphoneenv
    5[6Z)]6e&],Z2`程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
1^+r#f4N)u*F1k
后面的操作都在这个目录中进行,只需复制下文文字框中的内容,贴到terminal窗口执行即可。(Q$[(`3r7w+I&N%P;N*I

8f-[%z0y*x%i*w'B*O1o$z获取源码
9U&^,j&|2w!U$[-ZTechWeb-技术社区
  • svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-svn -r 42498
    /S3k2a-j*_-U2@,k
  • pushd llvm-svn
    .m%s2`%K0e$b4t1N,]
  • ./configure –enable-optimizedtech.techweb.com.cn"{0B6M&B!J2B!H5z4s
  • make ENABLE_OPTIMIZED=1TechWeb-技术社区3l*M;B+u8h,o
  • sudo make install(j.},I)S2h)n3} ]
  • LLVMOBJDIR=`pwd`)j0i7H8g+l:q
  • popd
    +A/n&a-G0Q程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛

5s$A*N*_ e#vtech.techweb.com.cn
9`:e*N7F7f7A.OTechWeb-技术社区获取iphone-dev SVN代码库tech.techweb.com.cn7X9].J#|2K0u(C
tech.techweb.com.cn:y'b!h2f+z+R
5Z'z)@4L8k
建立一个保存toolchain的目录。
1e/],l:|%I$b"s0@(I;^tech.techweb.com.cn
  • sudo mkdir /usr/local/arm-apple-darwin
    -W!i0[0} E)G0H4c
%U%`0u.x,E.Z)s

#J+H$h$m:g-P;P&|编译odcctools3K8?6D&e,c'y0J%~7I+_
  • mkdir -p build/odcctools
    H1B2e;{+V6d%S!B1g8K
  • pushd build/odcctools7_&D5U'r)U"z1S
  • ../../odcctools/configure –target=arm-apple-darwin –disable-ld64
    (U5O1I"t%O-I$]!s(^/y"J
  • export INCPRIVEXT="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"/d5s$N'h"a4u5o0v
  • maketech.techweb.com.cn)|8B3g(q8V4o)V+I8N.[4^
  • sudo make install
    ;\0o*Z#L:r8k/s5A$gtech.techweb.com.cn
  • popd
    7g5u6T g'f&d A

't8\-[1L:U8z6z.K:l
9S,|-K9h!Y6D m%Itech.techweb.com.cn获取iPhone中的框架和头文件tech.techweb.com.cn#L-} m)z3P9D)K7K
获取这个iPhone的镜像有很多办法,这里介绍几种:/I5{#[2K7t;[(}#r
TechWeb-技术社区)N%M%c$p.s%P F4c;v%M
最省事的办法(如果手头没有iPhone或是没有wi-fi):-f!I C0w:~/\"E1t

&f1x&M2@*@0_:u在google搜索iphone_image,找到了就直接下载,解压缩。)T(A4[-m:x2r

3V&a8S'R:d)m4B&^(|(aTechWeb-技术社区程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛3x1u(l!x5\5F5[#r!d
麻烦点的办法(手头有jailbreak并安装了installer的iPhone或者iPod Touch):tech.techweb.com.cn4J+`6k.Y5t,X*V:b+M

+\.}3T O6Y:K:i3{tech.techweb.com.cn如果你家里或者单位有wi-fi,而且iPhone已经连上w-ifi,直接在iPhone的Installer里找到BSD Subsystem和OpenSSH并安装,然后用scp把iPhone里面从根目录开始的所有子目录的所有的文件拷贝出来。tech.techweb.com.cn%\:S'b&{/L1c4S&v3j

5U&K/O'w:~:\%L*v)l Q或者在installer里安装AFPd,然后用Finder打开afp://你的iphone的ip地址,用户名用root, 密码用alpine,把里面的所有文件直接拽出来。tech.techweb.com.cn$C7F&R7i-C#L

3E6r.`*g(D详细方法不介绍了,相信你一定能搞定。
6C']&h.F$h+D6^TechWeb-技术社区3O4W4Q1A3?"N3~2q
复制镜像/Y0c"A$i7s1B.K!]4@
假设你把这个镜像里的所有文件都放在/iphone_image目录,那么执行下面操作(不要离开terminal的当前目录):
(~.G3~*`/I0q,X5a1T程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛9R0x$c(b$Q3s1p
  • sudo mkdir /usr/local/share/iphone-filesystem
    ,{5v,q;s4B6v)r6I
  • sudo cp -Rp /iphone_image/* /usr/local/share/iphone-filesystem/
    /o5Y"S-A+F;{TechWeb-技术社区
"H(_ }1p3a.h#f!u
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛)a%E1l'w1\+^;M$_%J
设置$HEAVENLY的环境变量
&J'O&h2o,vtech.techweb.com.cn
  • HEAVENLY=/usr/local/share/iphone-filesystem程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛$E9o#M6G2b$B.].A6z&j J;?
TechWeb-技术社区;i*P*b8x-R#b(t)g*H
程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛)_4U&y8R2h(N5C4l
  • pushd include7d)s'L)E-z'a8j+G4j&b7Y `
  • ./configure –with-macosx-sdk=/Developer/SDKs/MacOSX10.4u.sdkTechWeb-技术社区*};A(y+O/E!?
  • sudo bash install-headers.sh程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛7J%_-_*c$V5Q,X
  • popd
    5C m6X8C0m5i
'@)c8w6o;z7W
!]%A8h&A8^8v5K
安装csu8B&s6e.k*{(B/D0[ p
  • mkdir -p build/csu
    $K7e+K,U x5g0F2n H5uTechWeb-技术社区
  • pushd build/csu"}*c#r/{6y;G
  • ../../csu/configure –host=arm-apple-darwin
    "j;W0D;U0i1r8i4z程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
  • sudo make installtech.techweb.com.cn&W/]'u*m-L+}:x'q#d0j
  • popd;r5p"g%l$F%A

(b6P9D%~9X*x7~程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛6R8C#J9N$_'}
configure和make LLVM-GCC
:E0d/@5K7|-b,K4o"k
  • mv llvm-gcc-4.0-iphone/configure llvm-gcc-4.0-iphone/configure.old
    1p6_,W H0V,W(B,M*Otech.techweb.com.cn
  • sed 's/^FLAGS_FOR_TARGET=$/FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}/g' llvm-gcc-4.0-iphone/configure.old > llvm-gcc-4.0-iphone/configure4w$d2X6q9`'[9r5o'_
  • sudo ln -s /usr/local/arm-apple-darwin/lib/crt1.o \/usr/local/arm-apple-darwin/lib/crt1.10.5.o
    *g1c/C7z.W"F4w*S'D/s#d(Y程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
  • mkdir -p build/llvm-gcc-4.0-iphone
    %G$i1C*M1K0o(g3ttech.techweb.com.cn
  • pushd build/llvm-gcc-4.0-iphone
    *o#I;l:q0|2g4w;M k
  • export FLAGS_FOR_TARGET="-mmacosx-version-min=10.1"TechWeb-技术社区*j!g t3m6c&c
  • sh ../../llvm-gcc-4.0-iphone/configure –enable-llvm=`llvm-config –obj-root` \+c;b ?1H3o.b"Z)Z8i0u
  • –enable-languages=c,c++,objc,obj-c++ –target=arm-apple-darwin –enable-sjlj-exceptions \tech.techweb.com.cn.S6I.I6X:T
  • –with-heavenly=$HEAVENLY –with-as=/usr/local/bin/arm-apple-darwin-as \
    p:v5Z#k6p2D*}!j
  • –with-ld=/usr/local/bin/arm-apple-darwin-ldtech.techweb.com.cn+d)?3C'q8e+J2U*I ?7E
  • make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svn TechWeb-技术社区(E%F#N/S9O(q1q:`2T
  • sudo make installTechWeb-技术社区.Z2E3y*|'Z
  • popd*m)f6E%V#`9Q1z$F
  • popdtech.techweb.com.cn-d#M*L.Y)r

)J&Z8^9n4o'` \-^"}
9}2Z"X+v+@'?)?8aTechWeb-技术社区这样,专门用来编译iPhone的toolchain gcc就编译完了,文件位置在:
#k:q*X%Z4w-U']
o:]5?3t/I G'h程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛
  • /usr/local/bin/arm-apple-darwin-gcc程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛0R*L8{%W/M*Y$w4N
&t4T&B:v(a:D1y/a
整合XCode
6Y&g1u+K;]9S;Z9R接下来,整合XCode:
*y8a$Q.d,b;btech.techweb.com.cn1m0{'W3f1|)B'@0i
下载XCode模板。/[/k"j"y#M)u-L"F2X#U

$M4s!o/G d!R!~;o G#A解压缩,把
"{-c7|#i6G!G4b7]
  • iPhone UIKit Skeleton Application+W,s(A'a'y F m i)f6@7H
1k4Q:B1p2D)X#`&z0y
这个文件夹复制到5c.r)a*t/Y
  • /Developer/Library/XCode/Project Templates/Application/
    *e-[5o'@1Wtech.techweb.com.cn

y:`4p"Q*j,q2`1F8`
0o;i$^+|1Q5A&Q,B(A'A好了,打开XCode,新建一个项目,你会发现列表里已经出现了
%\1N(a0D"~,MiPhone UIKit Skeleton Application&E"X3L(U.E-k3h
这样一个模板(不在iPhone OS分类里而是在Mac OS X分类)tech.techweb.com.cn1c6z+\'Q r0{-E,A
直接创建项目,取个名字, 直接编译,成功。
%P;\*X#U-^+c9^:S!^TechWeb-技术社区tech.techweb.com.cn$s:i3h#L1L"Z*p2{5A
建议你使用本文的方法编译toolchain,而不是直接下载别人编译好的安装包,这样问题会少很多。 R(g7C7{9I*S-R)F

#h$I%b.V2b4v @$u程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛如果你下载了其他地方的例子,可能需要修改Makefile才可以编译成功。尤其是google code的iPhone代码。
-n6?(_0n7o.T*t$k
a/Y#|&b3A4v,k比如:
;V(N$_ C U4p%J/u
']%D(^.u4y/v你需要把tech.techweb.com.cn$^%f$R;_1P/~#G
  • CC=/usr/local/arm-apple-darwin/bin/gcc E%M7V;{&f5F2{

;P D-S4F"E&J!["o(JTechWeb-技术社区改成:
$Q5n9x:W0[/S)s,U6q
  • CC=/usr/local/bin/arm-apple-darwin-gcc -v程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛+q,\&w:a"k!?%g

#N,|.R r4X!v8g5xTechWeb-技术社区
&l.t8n%X,[%P#N6A5O6D
  • CC=/usr/local/arm-apple-darwin/bin/g++
    1j#g Z7X:^6L.e2YTechWeb-技术社区
2Q2K&a0V:Y+W
改成:tech.techweb.com.cn(z'W5Z,b3~2I;z r
  • CXX=/usr/local/bin/arm-apple-darwin-g++
    'm"{6p7s h0s7?#Q7X8H;J
TechWeb-技术社区:X"R$F"^9}%a2L"f

G$u6_3G*Q(r&A }tech.techweb.com.cn把LDFLAGS里的程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛 z5@:U2])O/~,y
  • -Wl,-syslibroot,/usr/local/arm-apple-darwin/heavenlyTechWeb-技术社区0M'S)B8O X.r+g't

8X5s5|.k#C!V)P I3@程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛直接删掉。
,R$p,p2A(e1Q3A"m程序开发,操作系统,服务器,源码下载,Linux,Unix,BSD,PHP,Apach,asp,下载,源码,黑客,安全,技术社区,技术论坛"U3f&H w*i*t/N4E
好了,这样,你的开发环境就搭建完了。

引用 回复 顶部
查看积分策略说明快速回复主题
选项 标题 Smilies
禁用 URL 识别
禁用 Smilies
禁用 Discuz!代码
使用匿名发帖
使用个人签名
接收新回复邮件通知
内容





当前时区 GMT+8, 现在时间是 2008-11-23 05:09
京ICP证060517号

本论坛支付平台由支付宝提供
携手打造安全诚信的交易社区 Powered by Discuz! 5.5.0 © 2001-2008 Comsenz Inc.
Processed in 0.057119 second(s), 7 queries

清除 Cookies - 联系我们 - TechWeb.com.cn - Archiver - WAP