什么是迦太基下“发展豆荚相当于”?

问题描述 投票:9回答:3

开发我们的iOS应用框架,队员们都从的CocoaPods迦太基迁移。

在的CocoaPods,我就可以建立依赖关系“发展豆荚”。例如,而不是主要的应用程序下载xyzzy依赖的特定版本,我就可以建立xyzzy作为开发吊舱和它指向的地方,我已经从它的git回购签出xyzzy我的本地目录。当我在主应用程序的项目时,任何编辑我该怎么做才能xyzzy的文件将在该目录中进行。这让我马上构建和测试修改,当我正准备在检查他们,GIT中会发现他们在xyzzy项目的目录。

在迦太基我还没有找到一种方法来做到这一点。我看到http://allocinit.io/ios/debugging-carthage-dependencies/,说明如何创建符号链接,这样我可以看到的依赖源文件,使调试容易,但我对他们作出任何修改的主要应用程序的Carthage/Builds目录下。

如何建立发展豆荚迦太基下的相同呢?

ios cocoapods carthage
3个回答
4
投票

我相信迦太基没有类似“发展豆荚”的东西呢。

但是,你可以模拟“发展豆荚”只是按照下列步骤:

脚步:

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

而已。

之后,你就可以运行你的项目,并在同一个工作区更新框架的代码。


0
投票

这个工程一样好,我发展豆荚,作为Xcode的8.3.3和迦太基0.24.0的:

  1. 在应用程序路径,rm -rf Carthage
  2. 点在Cartfile适当的分支或标记
  3. carthage update --use-submodules(生成.gitmodules和克隆回购成Carthage/Checkouts
  4. 在项目下的Xcode - >构建阶段 - >运行脚本,注释掉与carthage update --cache-builds如果存在结束线。
  5. 切换到常规选项卡,并从嵌入式二进制文件删除的lib
  6. 右键单击项目,将文件添加到应用...,从Carthage/Checkouts添加的lib
  7. 在项目 - >常规,重新添加库,选择您在上一步中添加的一个。

应用程序现在应该建立与当地库。请确保您有.gitignoreCarthage/{Build,Checkouts} .gitmodules


0
投票

这个答案是成功实施的解决方案出台here的摘要。

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

环境

  • Xcode的10.1
  • MACOS 10.13.6

步骤1.符号链接

1.1更改$(SRCROOT_MAIN)/Carthage/Checkouts/$(DEVELOPING_FRAMEWORK_NAME)目录指向你的开发框架$(SRCROOT_DEVELOPING_FRAMEWORK),其中$(SRCROOT_MAIN)是你的主要应用程序的源根目录的源根目录的符号链接。此更改之前备份现有目录。

该链接可以在你的开发框架版本控制的变化。

在使用语法ln实用,

$ ln -s "$SRCROOT_DEVELOPING_FRAMEWORK" "$SRCROOT_MAIN/Carthage/Checkouts/$DEVELOPING_FRAMEWORK_NAME"

在你的框架指向$(SRCROOT_DEVELOPING_FRAMEWORK)/Carthage/Build目录的符号链接1.2更改$(SRCROOT_MAIN)/Carthage/Build目录。此更改之前备份现有目录。

这种链接可以访问迦太基来自您的开发框架和你的主应用程序构建的所有框架。

在使用语法ln实用,

$ ln -s "$SRCROOT_MAIN/Carthage/Build" "$SRCROOT_DEVELOPING_FRAMEWORK/Carthage/Build"

步骤2.更换框架

2.1 Xcode > YOUR_MAIN_APP > General > Linked Frameworks and Libraries删除你的开发框架(即,一个位于$(SRCROOT_MAIN)/Carthage/Build/iOS)。

2.2添加$(DEVELOPING_FRAMEWORK_NAME).xcodeproj(由$(SRCROOT_MAIN)/Carthage/Checkouts/$(DEVELOPING_FRAMEWORK_NAME)符号链接指向的目录中找到)到您的主应用程序

2.3构建显影框架产品,用于设备和模拟器

2.4添加新的发展框架自动检测Xcode > YOUR_MAIN_APP > General > Linked Frameworks and Libraries通过Xcode中。

2.5通过在$(DEVELOPING_FRAMEWORK_NAME).framework加入$(DEVELOPING_FRAMEWORK_NAME).framework Xcode > YOUR_MAIN_APP > Build Phases > Target Dependencies作为目标依赖性添加。

2.6复制$(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).frameworkXcode > YOUR_MAIN_APP > Build Phases > Run Script of Carthage Embed Framework

参考

Debugging Carthage Dependencies
https://allocinit.io/ios/debugging-carthage-dependencies/

Build Setting Reference
https://developer.apple.com/library/archive/documentation/DeveloperTools/Reference/XcodeBuildSettingRef/1-Build_Setting_Reference/build_setting_ref.html
© www.soinside.com 2019 - 2024. All rights reserved.