为我们的iOS应用程序开发框架的团队正在从Cocoapods迁移到Carthage。
在Cocoapods下,我可以将依赖关系设置为"开发窗口"。例如,我没有让主应用程序下载特定版本的xyzzy
依赖项,而是将xyzzy
设置为开发窗格并将其指向我已签出的本地目录{{1来自它的Git回购。当我在主应用程序的项目中工作时,我对xyzzy
文件所做的任何编辑都将在该目录中进行。这让我可以立即构建和测试更改,当我准备好检查它们时,Git会在xyzzy
项目的目录中找到它们。
在迦太基之下,我还没有办法做到这一点。我看到http://allocinit.io/ios/debugging-carthage-dependencies/解释了如何创建符号链接以便我可以看到依赖源文件以使调试更容易,但我对它们进行的任何编辑都在主应用程序的xyzzy
目录下
如何在迦太基下设置等效的开发舱?
答案 0 :(得分:4)
我相信迦太基 还有类似“开发豆荚”的东西。
但您可以按照以下步骤模拟“开发窗格”:
<强>步骤:强>
Build Phases -> Run Script -> Input Files
中删除)General
标签,在Linked Frameworks and Libraries
下添加框架(它将从.xcoproj中添加一个)carthage bootstrap
。就是这样。
之后,您将能够在同一工作区中运行项目并更新框架代码。
答案 1 :(得分:0)
对于我来说,这与Xcode 8.3.3和Carthage 0.24.0一样适用于开发pod:
rm -rf Carthage
Cartfile
carthage update --use-submodules
(生成.gitmodules
并将克隆回复到Carthage/Checkouts
)carthage update --cache-builds
结尾的行(如果存在)。Carthage/Checkouts
App现在应该使用本地lib构建。确保您的.gitignore
有Carthage/{Build,Checkouts}
和.gitmodules
。
答案 2 :(得分:0)
此答案是对here引入的解决方案的成功实现的总结。
更清洁的解决方案是using local paths for dependencies in Cartfile。
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.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