开发我们的iOS应用框架,队员们都从的CocoaPods迦太基迁移。
在的CocoaPods,我就可以建立依赖关系“发展豆荚”。例如,而不是主要的应用程序下载xyzzy
依赖的特定版本,我就可以建立xyzzy
作为开发吊舱和它指向的地方,我已经从它的git回购签出xyzzy
我的本地目录。当我在主应用程序的项目时,任何编辑我该怎么做才能xyzzy
的文件将在该目录中进行。这让我马上构建和测试修改,当我正准备在检查他们,GIT中会发现他们在xyzzy
项目的目录。
在迦太基我还没有找到一种方法来做到这一点。我看到http://allocinit.io/ios/debugging-carthage-dependencies/,说明如何创建符号链接,这样我可以看到的依赖源文件,使调试容易,但我对他们作出任何修改的主要应用程序的Carthage/Builds
目录下。
如何建立发展豆荚迦太基下的相同呢?
我相信迦太基没有类似“发展豆荚”的东西呢。
但是,你可以模拟“发展豆荚”只是按照下列步骤:
脚步:
Build Phases -> Run Script -> Input Files
也将其删除)General
要运行,加下Linked Frameworks and Libraries
框架目标的标签(它会采取一个从.xcoproj加)carthage bootstrap
要在本地增加。而已。
之后,你就可以运行你的项目,并在同一个工作区更新框架的代码。
这个工程一样好,我发展豆荚,作为Xcode的8.3.3和迦太基0.24.0的:
rm -rf Carthage
Cartfile
适当的分支或标记carthage update --use-submodules
(生成.gitmodules
和克隆回购成Carthage/Checkouts
)carthage update --cache-builds
如果存在结束线。Carthage/Checkouts
添加的lib应用程序现在应该建立与当地库。请确保您有.gitignore
和Carthage/{Build,Checkouts}
.gitmodules
。
这个答案是成功实施的解决方案出台here的摘要。
一个清洁的解决方案是using local paths for dependencies in Cartfile。
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.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).framework
到Xcode > 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