繁体   English   中英

从iOS App生成Xcode项目

[英]Generate Xcode Project from iOS App

有没有一种方法可以创建可生成Xcode项目的应用程序,开发人员可以在Xcode中运行该项目。 有点像代码生成器。 我正在尝试在网上寻找答案,但无济于事。 我也不知道从哪里开始。 基本上,该应用程序将生成Xcode兼容代码,开发人员可以使用这些代码打开Xcode。

AppStore中提供了一个提供相同功能的示例应用程序是iOS接口。 链接: https//itunes.apple.com/en/app/interface/id360543182?mt = 8

另一个示例是应用程序创建者Dapp: https ://itunes.apple.com/au/app/dapp-app-creator-make-learn/id370888555?mt = 8

从他们的应用说明中:

Xcode导出,将您的模型转化为实时代码我们免费的基于云的Xcode导出服务将使您只需单击一下即可将整个项目转换为Xcode项目。

Dapp为您创建了完整的Xcode项目-包括代码,图像,视频和Xcode故事板!

更新:我当时正在考虑在应用程序中包含示例Xcode项目模板文件的zip文件,该文件将生成将由模板项目使用的代码,在模板项目中编辑或添加它们,然后通过iTunes压缩并导出到Documents文件夹文件共享。

您发布其链接的应用程序仅用于创建模型。 不会生成代码。

无法制作将生成代码的应用程序,您以后可以以某种方式将其导入xcode并运行它。

  1. 打开Xcode,创建一个新项目,选择“单一视图应用程序”(或最适合您生成的内容),然后单击“创建”。

  2. 转到创建此项目的目录,将其压缩并包含在要进行生成的App的项目中。

  3. 当需要生成代码时,步骤1是创建工作目录并将项目解压缩到该目录。

  4. 生成类等,然后将其放入AppDelegate.h和从“单视图应用程序”模板为您生成的其他文件所在的目录中。

  5. 打开xcodeproj包,在根目录下将有一个名为project.pbxproj的文件,将其读入内存

  6. 修改project.pbxproj以包括生成的代码文件,将有一个名为PBXFileReference的部分可以执行此操作。

这是我方便的项目中的示例PBXFileReference部分:

    /* Begin PBXFileReference section */
        DB6C03BA1B148F56007554E7 /* UIAlertController.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UIAlertController.app; sourceTree = BUILT_PRODUCTS_DIR; };
        DB6C03BE1B148F56007554E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
        DB6C03BF1B148F56007554E7 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
        DB6C03C11B148F56007554E7 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
        DB6C03C21B148F56007554E7 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
        DB6C03C41B148F56007554E7 /* ViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ViewController.h; sourceTree = "<group>"; };
        DB6C03C51B148F56007554E7 /* ViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ViewController.m; sourceTree = "<group>"; };
        DB6C03C81B148F56007554E7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
        DB6C03CA1B148F56007554E7 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
        DB6C03CD1B148F56007554E7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
        DB6C03D31B148F56007554E7 /* UIAlertControllerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UIAlertControllerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
        DB6C03D81B148F56007554E7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
        DB6C03D91B148F56007554E7 /* UIAlertControllerTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIAlertControllerTests.m; sourceTree = "<group>"; };
/* End PBXFileReference section */
  1. 将您的更改写入project.pbxproj(我想根据您要实现的复杂性,可能不仅仅是PBXFileReference)。

  2. 将项目的工作目录内容压缩,然后通过电子邮件或UIDocumentInteractionController将其发送给用户。

这是有关pbxproj文件的好文章: http ://danwright.info/blog/2010/10/xcode-pbxproject-files/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM