什么相当于"开发容器"迦太基之下?

时间:2017-07-12 20:38:31

标签: ios cocoapods carthage

为我们的iOS应用程序开发框架的团队正在从Cocoapods迁移到Carthage。

在Cocoapods下,我可以将依赖关系设置为"开发窗口"。例如,我没有让主应用程序下载特定版本的xyzzy依赖项,而是将xyzzy设置为开发窗格并将其指向我已签出的本地目录{{1来自它的Git回购。当我在主应用程序的项目中工作时,我对xyzzy文件所做的任何编辑都将在该目录中进行。这让我可以立即构建和测试更改,当我准备好检查它们时,Git会在xyzzy项目的目录中找到它们。

在迦太基之下,我还没有办法做到这一点。我看到http://allocinit.io/ios/debugging-carthage-dependencies/解释了如何创建符号链接以便我可以看到依赖源文件以使调试更容易,但我对它们进行的任何编辑都在主应用程序的xyzzy目录下

如何在迦太基下设置等效的开发舱?

3 个答案:

答案 0 :(得分:4)

我相信迦太基 还有类似“开发豆荚”的东西。

但您可以按照以下步骤模拟“开发窗格”:

<强>步骤:

  1. 将.xcodeproj添加到工作区
  2. 删除您在步骤1中添加的框架项目中的所有依赖项。(可能您可能需要将其从Build Phases -> Run Script -> Input Files中删除)
  3. 转到要运行的目标的General标签,在Linked Frameworks and Libraries下添加框架(它将从.xcoproj中添加一个)
  4. (可选)您可能需要在要在本地添加的框架回购中运行carthage bootstrap
  5. 就是这样。

    之后,您将能够在同一工作区中运行项目并更新框架代码。

答案 1 :(得分:0)

对于我来说,这与Xcode 8.3.3和Carthage 0.24.0一样适用于开发pod:

  1. 在应用路径中,rm -rf Carthage
  2. 指向Cartfile
  3. 中相应的分支或标记
  4. carthage update --use-submodules(生成.gitmodules并将克隆回复到Carthage/Checkouts
  5. 在项目下的Xcode中 - &gt;构建阶段 - &gt;运行脚本,注释掉以carthage update --cache-builds结尾的行(如果存在)。
  6. 切换到“常规”选项卡并从“嵌入式二进制文件”中删除lib
  7. 右键单击项目,将文件添加到应用程序...,从Carthage/Checkouts
  8. 添加库
  9. 在项目下 - &gt;常规,重新添加库,选择您在上一步中添加的库。
  10. App现在应该使用本地lib构建。确保您的.gitignoreCarthage/{Build,Checkouts}.gitmodules

答案 2 :(得分:0)

此答案是对here引入的解决方案的成功实现的总结。

更清洁的解决方案是using local paths for dependencies in Cartfile

环境

  • Xcode 10.1
  • macOS 10.13.6

步骤1。符号链接

1.1 》将UserId目录更改为指向开发框架$(SRCROOT_MAIN)/Carthage/Checkouts/$(DEVELOPING_FRAMEWORK_NAME)的源根目录的符号链接,其中$(SRCROOT_DEVELOPING_FRAMEWORK)是主框架的源根目录应用程式。进行此更改之前,请备份现有目录。

此链接可在您的开发框架中启用版本控制的更改。

使用$(SRCROOT_MAIN)实用程序时的语法,

ln

1.2 ??将框架中的$ ln -s "$SRCROOT_DEVELOPING_FRAMEWORK" "$SRCROOT_MAIN/Carthage/Checkouts/$DEVELOPING_FRAMEWORK_NAME" 目录更改为指向$(SRCROOT_DEVELOPING_FRAMEWORK)/Carthage/Build目录的符号链接。进行此更改之前,请备份现有目录。

通过此链接,您可以从开发框架和主应用程序访问由迦太基构建的所有框架。

使用$(SRCROOT_MAIN)/Carthage/Build实用程序时的语法,

ln

步骤2。框架替换

2.1 ”删除$ ln -s "$SRCROOT_MAIN/Carthage/Build" "$SRCROOT_DEVELOPING_FRAMEWORK/Carthage/Build" 中的开发框架(即位于Xcode > YOUR_MAIN_APP > General > Linked Frameworks and Libraries中的框架)。

2.2 ”将$(SRCROOT_MAIN)/Carthage/Build/iOS(在$(DEVELOPING_FRAMEWORK_NAME).xcodeproj符号链接指向的目录中)添加到您的主应用程序中

2.3 :为设备和模拟器构建开发框架产品

2.4 ”在$(SRCROOT_MAIN)/Carthage/Checkouts/$(DEVELOPING_FRAMEWORK_NAME)中添加Xcode自动检测到的新开发框架。

2.5 。通过在Xcode > YOUR_MAIN_APP > General > Linked Frameworks and Libraries中添加$(DEVELOPING_FRAMEWORK_NAME).framework,将$(DEVELOPING_FRAMEWORK_NAME).framework添加为目标依赖项。

2.6 ,通过在Xcode > YOUR_MAIN_APP > Build Phases > Target Dependencies中添加新的输入文件$(BUILT_PRODUCTS_DIR)/$(DEVELOPING_FRAMEWORK_NAME).framework和新的输出文件$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/$(DEVELOPING_FRAMEWORK_NAME).framework$(BUILT_PRODUCTS_DIR)/$(DEVELOPING_FRAMEWORK_NAME).framework复制到$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/$(DEVELOPING_FRAMEWORK_NAME).framework

参考

Xcode > YOUR_MAIN_APP > Build Phases > Run Script of Carthage Embed Framework