我有一个现有的iOS应用程序,并希望添加一大块代码,我一直在开发另一个项目,以方便测试.新的块基本上处理将图像保存到各种共享服务等.因为共享代码需要大量的测试和未来的更新,我想知道将代码块合并到我现有的应用程序中的最佳方法是什么.
我不知道它应该是静态库,动态库还是框架,老实说,我不确定区别是什么,或者我应该如何去做它并在Xcode中设置它.
我所知道的是,我需要/想要为共享代码保留单独的测试和更新应用程序,并让主应用程序使用它.
如果你还不能说,我不是一个git wiz.我只是一个简单的单人开发人员.
任何帮助或方向将不胜感激.谢谢!
我的Cartfile有很多库.当我这样做时,carthage update它会遍历所有库.这可能需要很长时间.
有没有办法用carthage更新一个库?像这样的东西?(这不起作用)
carthage update "evgenyneu/moa"
Run Code Online (Sandbox Code Playgroud) 我正在尝试为iOS应用程序制作动态框架.感谢新版本的Xcode(6),我们可以在创建新项目时选择Cocoa Touch Framework,不再需要添加聚合目标,运行脚本等等.构建框架时我没有问题.但是当我尝试在iOS应用程序中使用它时,我遇到了一些架构问题.
ld: warning: ignoring file /Library/Frameworks/MyFramework.framework/MyFramework, file was built for x86_64 which is not the architecture being linked (arm64): /Library/Frameworks/MyFramework.framework/MyFramework
Undefined symbols for architecture arm64:
"_OBJC_CLASS_$_MyFrameworkWebService", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ld: warning: ignoring file /Library/Frameworks/MyFramework.framework/MyFramework, file was built for x86_64 which is not the architecture being linked (armv7): /Library/Frameworks/MyFramework.framework/MyFramework
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_MyFrameworkWebService", referenced …Run Code Online (Sandbox Code Playgroud) 我有遗留代码依赖于指针,32-bit并希望xCodeBuild用来构建代码command line.由于某种原因,这不起作用.这是我使用的命令:
xcodebuild -configuration Debug -arch i386
-workspace MyProject.xcworkspace -scheme MyLib
Run Code Online (Sandbox Code Playgroud)
这是我得到的输出
[BEROR]No architectures to compile for
(ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=i386).
Run Code Online (Sandbox Code Playgroud)
显然,它试图建立x86_64的代码,并惨遭失败,因为我只启用i386从VALID_ARCHSXcode中的项目设置.
有没有办法让它理解我不想要一个64-bit图书馆?
使用 Carthage 在 Xcode 项目中添加依赖项的最快方法是什么?
稍后如何添加或编辑依赖项。
我正在尝试为.xcframework我正在使用的一些第三方库创建一个文件。按照https://appspector.com/blog/xcframeworks的说明,我
framework文件:# Archive for device
xcodebuild archive -scheme TestFramework -destination="iOS" -archivePath /tmp/xcf/ios.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphoneos SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
# Archive for simulator
xcodebuild archive -scheme TestFramework -destination="iOS Simulator" -archivePath /tmp/xcf/iossimulator.xcarchive -derivedDataPath /tmp/iphoneos -sdk iphonesimulator SKIP_INSTALL=NO BUILD_LIBRARIES_FOR_DISTRIBUTION=YES
Run Code Online (Sandbox Code Playgroud)
在这一点上,我已经得到了两个带有.swiftmodule文件的框架;一切看起来都不错。框架不附带.swiftinterface文件,但我认为没关系,因为这些是 objc 项目。然后我
frameworks组合成一个xcframework文件:# Build xcframework with two archives
xcodebuild -create-xcframework -framework /tmp/xcf/ios.xcarchive/Products/Library/Frameworks/TestFramework.framework -framework /tmp/xcf/iossimulator.xcarchive/Products/Library/Frameworks/TestFramework.framework -output /tmp/xcf/TestFramework.xcframework
Run Code Online (Sandbox Code Playgroud)
在这里,xcodebuild不会失败,但会发出一个奇怪的错误:
No 'swiftinterface' files found …Run Code Online (Sandbox Code Playgroud) carthage ×2
frameworks ×2
ios ×2
xcode ×2
xcodebuild ×2
cocoa ×1
command-line ×1
dependencies ×1
ios8 ×1
macos ×1
xcode4 ×1
xcode6 ×1