我想将文件自动添加到从头开始创建的 Xcode 项目(通过另一个 IDE)作为构建后步骤。我们的项目设置为调用一个 applescript,该 applescript 在项目中进行适当的文件引用,但每次尝试将文件引用添加到项目都会失败。
核心问题似乎是这个错误:
Xcode 出现错误:工作区文档“project.xcworkspace”的项目“TestProject”的 Xcode 3 组 ID“D82DCFB50E8000A5005D6AD8”的文件引用 id“DCDCC17E13819A8E004B4E75”不理解添加消息。
在这一行:
add fileRef to first target of testProject
其中 fileRef 是设置为新创建的文件引用的变量,testProject 是设置为包含 fileRef 的项目的变量。
这是代码:
on run argv
-- Get the folder containing items to be added to the project
tell application "Finder"
set thisScript to path to me
set projectFolder to get folder of thisScript as string
set sourceFolder to projectFolder & "FilesToAdd:"
end tell
-- Get all the files that will be added to Xcode
tell application "System Events"
set filesToAddList to the name of every disk item of (sourceFolder as alias)
end tell
tell application "Xcode"
-- Open the project using posix-style paths
open ((POSIX path of projectFolder) & "TestProject.xcodeproj")
-- Give Xcode some time to open the project before we start giving it commands
delay 1
set testProject to project "TestProject"
tell testProject
set sourceGroup to group "Sources"
tell sourceGroup
-- Iterate over all files in the list
repeat with i in filesToAddList
set fileName to (contents of i)
-- Get the file path using Unix-style pathing, since that is the kind that Xcode needs
set filePath to (POSIX path of sourceFolder) & fileName
-- Don't add duplicate file references
if filePath is not in path of file references in sourceGroup then
-- Add a new file reference to the project
set fileRef to make new file reference with properties {name:fileName, full path:filePath, path type:absolute, path:filePath, file encoding:macos roman}
-- Add the file reference to the build target
add fileRef to first target of testProject
end if
end repeat
end tell -- end group tell
end tell -- end project tell
end tell -- end app tell
end run
我查找了向目标添加文件的其他示例,这似乎是最干净、简洁的方法,并且它似乎在过去对其他人有效。是否有不同的方式将文件引用添加到目标?
作为参考,我正在运行 OSX 10.6.7 和 Xcode 4.0.2。
所以我向苹果公司发送了关于这个问题的电子邮件,结果证明这是一个错误。我已经提交了错误报告,希望这个问题能尽快得到解决。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)