作者donkeychen (Bad_To_The_Bone)
看板MacDev
标题Re: [问题] 请问xcode 4.5.2 怎麽让run的输出在专案
时间Thu Dec 6 02:22:33 2012
※ 引述《uranusjr (←这人是超级笨蛋)》之铭言:
: ※ 引述《donkeychen (Bad_To_The_Bone)》之铭言:
: : 之後Products 里面的hello就变黑了
: : 但是这个执行档位於
: : /User/xxxx/Library/Developer/Xcode/DerivedData/hello-一串字/Build/
: : Products/Debug/hello
: : 我希望他能够产生
: : /User/xxxx/Document/hello
: : 目录内
: 剩下的全删
: Xcode 4 开始是用 Scheme 的方式管理编译选项
: 可以按左上角 Run 和 Stop 右边你的专案名称来查看
: 不过一般应该是很少在改, 除非有特殊需求
: 预设的 Scheme 如果你直接按 Run 是使用 debug mode
: 既然是除错模式, 所以 Xcode 就把它隐藏起来不让你看到, 因为它也不想你乱动
您好
我这几天自己try了一下
把我看到的写一下 不知道有没有误会 还请大家多指点
-----------------------------------------------------
.xcodeproj是 [专案]
好像在建专案的时候就有一个[target]
我看了一下 目前看到target有几种
˙aggregate target
˙legacy target
˙native target
这种建起来好像就会建立对应的目录+group+基本的code
(bundle dylib app 这种有product的"好像"就属於这种)
一个[专案]里面可以有多个[target]
-----------------------------------------------------
然後每个[project]有多个[configuration]
在 project->info(中间那栏上面)->Configuration 可以选择
建新的[project]就会有Debug 跟Release 两个configuration
如果有add .xcconfig档到project里面就可以选择要用哪种
可以设定整个专案共用的.xcconfig设定
也可以专案中个别的[target]用不同的.xcconfig设定
-----------------------------------------------------
您说的run stop 右边 我看到的是 my mac 64-bit/32-bit两种可以选
这个我也不知道编译有什麽差异(我没找到)
https://developer.apple.com/library/mac/#documentation/Darwin/Reference/
ManPages/man1/xcodebuild.1.html
我参考这边
如果是在bash下下指令 (下面指令是一整行)
/usr/bin/xcodebuild
-project xxx.xcodeproject
-target xxx
-configuration <=== 这边可以接configuration
build
好像就可以build了
(也就是指定[project]的[target]+[configuration]就足够)
-----------------------------------------------------
後来有到Product选单->edit scheme 里面有
build
run
test
profile
analyze
archive
好像是可以设定一些action
˙build (1 target)
pre-action 没东西
build (打勾) parallelize build / find implicit dependencies都勾选
下面有target
应该是选择build以後要build哪个
post-action也没东西
˙run hello (我的project名称)
debug
(这应该就是您说的预设scheme是跑debug)
这个scheme 有
info
argument
options
diagnostics 四个选项
˙test
debug
有
info
argument
˙profile
relese
有
info
argument
options
˙analyze
debug
只能选要debug或者release
˙archive
release
可选debug/release
archive name 好像被锁死 就是我的project name hello
至於下面的managet schemes 我点了看不懂
上面的设定应该是xcode左上那个按钮下去的动作
或者是从product选单选取的
--------------------------------------------
我不太了解预设的debug 与 release的差异
因为预设[Configuration]都是no configuration set
我找了一下project/target可以设定的选项
除了目录以外(build settings->build location)
build options -> debug information format
debug是dwarf
release是dwarf with dsym的
上网查了一下dsym好像是debug用的
这有点搞迷糊了
不是应该debug才需要这种dsym吗?
: 不过如果想知道放在哪里, 可以从 Organizer -> Projects 的 Derived Data 查看
: 如果你想要取得程式的成品, 则应该用选单的 Product -> Archive
: 这会带出 Organizer 视窗, 里面包含你专案的打包纪录
: 你可以选择你想要的打包(通常就是选最新的), 然後按 Distribute
: 这会带出一个 sheet 询问你希望使用何种散布方式
请问这意思是说 不管在project的target的building setting里面
的build location不管设定在哪
他都会会到/usr/xxx/Library/Developer/Xcode
里面的某个目录里面
然後要取得得用Product -> archive的方式
而不是自己去目录里面拿出来吗?
因为我有看到我的hello world 的binary档在上面的目录
不知道理解对不对
我是还在研究而已
: 如果你打算把程式放到 Mac App Store, 就可以在这里直接选了之後上传
: (事实上 iOS 程式的送审流程也差不多)
: 不过你现在需要的是第三个选项:Export as
: 选择之後在後面的选单可以选要如何汇出
: 其中第三个就是汇出一个单一的 .app package
: 按 Next 之後就会开始进行 release build, 结束後会问你要不要签署你的程式
: 除非你知道你在干什麽, 不然就是选 Don't Resign
: (如果你没有付费加入 Mac Developer Program 通常也没其他东西可以选就是了)
: 接着就会问你要把 package 输出到哪里——接下来应该不用我教了吧
: 苹果很明显就是希望你不要常做这个流程
: 照他们的设计, 你平常在测试时就是应该用 Xcode 来编译 -> 执行
: 这样其实就开发除错的角度而言好处多多, 即使你不用 debugger
: 只有到你真的完成一阶段的开发, 要散布的时候, 才用上面的步骤打包
: ===
: Edit:
: 如果你开发的不是 Cocoa 专案, 则按下 Distribute 时看到的选项可能会不一样
: 例如 Foundation 专案就要选 Save Built Products
: 而且预设产出的是一个有阶层的目录, 就差没有帮你 tar 好XD
: 不过基本概念是一样的啦, 选项也没几个都选选看就大概会了
感谢 我如果之後有需要散布在来试後面的东西^^
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.169.182.8
※ 编辑: donkeychen 来自: 118.169.182.8 (12/06 02:23)
※ 编辑: donkeychen 来自: 211.72.248.50 (12/06 09:30)
※ 编辑: donkeychen 来自: 211.72.248.50 (12/06 10:15)