相关疑难解决方法(0)

图书馆?静态的?动态?还是框架?项目在另一个项目内

我有一个现有的iOS应用程序,并希望添加一大块代码,我一直在开发另一个项目,以方便测试.新的块基本上处理将图像保存到各种共享服务等.因为共享代码需要大量的测试和未来的更新,我想知道将代码块合并到我现有的应用程序中的最佳方法是什么.

我不知道它应该是静态库,动态库还是框架,老实说,我不确定区别是什么,或者我应该如何去做它并在Xcode中设置它.

我所知道的是,我需要/想要为共享代码保留单独的测试和更新应用程序,并让主应用程序使用它.

如果你还不能说,我不是一个git wiz.我只是一个简单的单人开发人员.

任何帮助或方向将不胜感激.谢谢!

xcode frameworks static-libraries ios

132
推荐指数
2
解决办法
5万
查看次数

如何使用Carthage从Cartfile更新一个库?

我的Cartfile有很多库.当我这样做时,carthage update它会遍历所有库.这可能需要很长时间.

有没有办法用carthage更新一个库?像这样的东西?(这不起作用)

carthage update "evgenyneu/moa"
Run Code Online (Sandbox Code Playgroud)

carthage

72
推荐指数
6
解决办法
3万
查看次数

Xcode 6 iOS创建Cocoa Touch框架 - 架构问题

我正在尝试为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)

cocoa dynamic-library ios-universal-framework xcode6 ios8

49
推荐指数
6
解决办法
5万
查看次数

如何使用xcodebuild构建特定的体系结构?

我有遗留代码依赖于指针,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的代码,并惨遭失败,因为我只启用i386VALID_ARCHSXcode中的项目设置.

有没有办法让它理解我不想要一个64-bit图书馆?

macos command-line xcodebuild xcode4

21
推荐指数
1
解决办法
3万
查看次数

在 Xcode 项目中添加 Carthage 的最快方法

使用 Carthage 在 Xcode 项目中添加依赖项的最快方法是什么?

稍后如何添加或编辑依赖项。

xcode dependencies ios carthage

5
推荐指数
1
解决办法
5042
查看次数

xcframework 不包含内部框架

我正在尝试为.xcframework我正在使用的一些第三方库创建一个文件。按照https://appspector.com/blog/xcframeworks的说明,我

  1. 创建特定于平台的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 项目。然后我

  1. 将各个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)

frameworks xcodebuild

5
推荐指数
1
解决办法
2464
查看次数