xcode rb-appscript

¿Cómo agrego archivos a objetivos en Xcode usando rb-appscript?



(2)

Estoy tratando de agregar automáticamente archivos a mi proyecto Xcode usando rb-appscript. No tengo mucha experiencia con Ruby o Applescript, pero dos personas parecen haber hecho este trabajo por ellos:

https://github.com/gonzoua/xcs/blob/master/xcs.thor

Agregar automáticamente los archivos de origen generados a un proyecto de xcode

Lamentablemente ninguno de estos funciona para mí. Puedo hacer que agreguen archivos a grupos, pero agregar archivos a destinos se rompe Aquí está el código más simple que no funciona para mí:

require ''rubygems'' require ''appscript'' project_path = ''Users:me:Projects:xcode:project:src:AppScaffold.xcodeproj'' project_name = ''AppScaffold'' group_name = ''Classes'' file_name = ''ApplicationDelegate.m'' target_name = ''AppScaffold'' def lookup(sequence, name) sequence.get.each { |item| if item.name.get == name return item end } raise Exception.new("Couldn''t find name ''" + name + "'' in sequence " + sequence.inspect) end app = Appscript.app(''Xcode'') app.open(project_path) project = lookup(app.projects, project_name) target = lookup(project.targets, target_name) group = lookup(project.root_group.item_references, group_name) file = lookup(group.item_references, file_name) file.add({:to => target}) # I also tried this: # app.add(file, {:to => target})

Esto falla con este mensaje:

/Library/Ruby/Gems/1.8/gems/rb-appscript-0.6.1/lib/appscript.rb:542:in `_send_command'': CommandError (Appscript::CommandError) OSERROR: -1708 MESSAGE: Application could not handle this command. COMMAND: app("/Developer/Applications/Xcode.app").workspace_documents["project.xcworkspace"].projects["AppScaffold"].root_group.Xcode_3_groups.ID("080E96DDFE201D6D7F000001").Xcode_3_file_references.ID("1D3623250D0F684500981E51").add({:to=>app("/Developer/Applications/Xcode.app").workspace_documents["project.xcworkspace"].projects["AppScaffold"].targets.ID("1D6058900D05DD3D006BFB54")}) from /Library/Ruby/Gems/1.8/gems/rb-appscript-0.6.1/lib/appscript.rb:642:in `method_missing'' from add_to_target.rb:28

Tenga en cuenta que estoy usando Xcode 4, pero mi proyecto parece tener "Xcode_3_references". Este es también el caso de los proyectos que creo desde cero; No estoy seguro de por qué.

De todos modos, no estoy seguro de qué hacer con este mensaje de error o dónde encontrar documentación sobre esto. (Miré el diccionario de Xcode, pero no tenía mucho que decir sobre "agregar"). Cualquier consejo sería genial. No estoy casado con rb-appscript, solo quiero agregar archivos a mi proyecto mediante programación.


No estoy 100% seguro de lo que estás tratando de hacer y si estás compilando para Mac o iOS. Por lo tanto no estoy seguro si puedo ser de mucha ayuda. Si simplemente está tratando de agregar archivos a su proyecto con el fin de agruparlos en lugar de compilarlos en la compilación, no necesita codificar esto. En su lugar, haga clic en su proyecto en la parte superior de la lista de archivos en el panel de la izquierda, luego en la ventana principal, haga clic en su paquete de destino. Esto debería darle una pantalla con las opciones ''resumen - información - configuración de compilación - fases de compilación - reglas de compilación'' en la parte superior. Haga clic en las fases de compilación y luego elija copiar los recursos del paquete de la lista a continuación. Luego haga clic en el signo + en la parte inferior de esta lista y seleccione el archivo que desea copiar al paquete durante la compilación.

Dicho esto, si el archivo tiene que agregarse programáticamente, necesitaría un usuario más avanzado que yo para responder su pregunta. Sin embargo, al pensarlo, creo que depende del tipo de archivo, de dónde lo obtengas y de los permisos necesarios para hacerlo en el iPhone. Si estás construyendo para el OSX, entonces estoy en aguas desconocidas y este consejo probablemente no sea tan útil.


Por lo tanto, un problema con Xcode desde que se mudó a la AppStore es que las versiones anteriores se dejaron intactas y no se eliminaron, sin mencionar que los binarios son todos diferentes (llvm vs cc). No era el mismo problema que tienes, pero me encontré con complicaciones al usar los compiladores de línea de comandos para cosas como homebrew, y encontré este comando:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Consulte: http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man1/xcode-select.1.html

No estoy seguro aquí, pero es posible que esto "reorientará" el sistema de compilación con el que está trabajando para hacer referencia al xcode actual y no a la versión anterior, que puede tener el resultado deseado.