繁体   English   中英

两个Xcode项目,相同的目标

[英]Two Xcode projects, same target

我正在开发iOS应用程序的版本2。 自从我用Swift重写它以来,我开始了一个新的Xcode项目。 即使目标名称相同,我在设备或模拟器上还是得到了两个不同的应用程序,因此它们不会共享数据和首选项等。

是否可以使两个不同的项目共享相同的目标? 还是应该用蛮力替换原始项目文件夹中的所有内容(三次备份后:)?

不,不可能。 更好地更新原始项目。

我花了几天时间,尝试了很多方法来使它正常工作,并概述了我所采取的步骤。 希望这对其他人也有用。

背景:为了学习Swift并使我的应用程序现代化,我决定使用Swift的所有优点和更新的iOS API完全重新编写它。 我没有像许多教程中所描述的那样将一个类从Objective C缓慢地转换为Swift,而是从头开始。 因此,我创建了一个与目标名称相同的新项目,添加了一些基本功能,并在模拟器上运行了该项目。 令我惊讶的是,也许没有,我创建了一个新应用程序,所以我有两个应用程序,一个是用Objective C编写的,另一个是用Swift编写的。 由于我的应用使用核心数据,因此它们必须相同,否则用户在升级时会丢失所有数据。 因此,经过大量的试验和错误,我终于能够使它起作用,这是我使用的步骤:

免责声明:使用风险自负-确保备份,以便您始终可以还原。

  1. 确保两个项目都启用了git。
  2. 为两个项目进行备份。 如果您要与Dropbox或类似的东西同步,请关闭它。
  3. 在ObjC项目存储库中,创建一个“ Swift”分支。
  4. 在Xcode中,将所有源文件从Swift项目导入到ObjC项目(在Swift分支上)。 为了简化内务处理,我建议将所有内容保留在Xcode中的不同组中。
  5. 在ObjC项目(Swift分支)的“ Build Phases”下,删除所有与ObjC相关的源文件和链接的框架。
  6. 生成并运行。
  7. 您可能会遇到一些与项目相关的错误,需要进行修复。 例如,在我的案例中,Xcode找不到info.plist文件,因此我必须删除构建脚本。 因人而异。
  8. 在git上提交更改(仍在Swift分支上)。
  9. 在Swift和ObjC分支之间切换,并确保在模拟器上确实只有一个构建,并且它们共享数据(或项目中特定的任何数据)。

如果要具有两个不同的项目,则为可选:

  1. 切换到Swift分支并退出Xcode。
  2. 复制整个项目文件夹并将其命名为MyApp_Swift,但不要重命名目标文件和pbxproj文件。
  3. 打开原始项目,然后切换回ObjC分支,运行并测试。
  4. 打开复制的项目,然后切换到Swift分支,运行并测试。
  5. 从新的Swift项目中删除(删除)所有与ObjC相关的文件,运行并测试。
  6. 退出Xcode,然后将.git文件夹从原始Swift项目文件夹移动到新的Swift项目文件夹。 我在航站楼做到了。
  7. 打开新的Swift项目,运行并测试。 如果一切正常,请提交更改。
  8. 切换回原始项目的ObjC分支,运行并测试。 如果一切正常,则可以在git中删除Swift分支。
  9. 您现在应该有两个不同的项目,都在模拟器上使用相同的应用程序。

暂无
暂无

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

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