- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我已经开始使用 AWSMobileHub,我只是在完成集成步骤,但它似乎不能很好地与我打算在项目中使用的 cocoapods 配合使用。
我已经按照集成步骤添加了我从 aws 下载的框架 + 帮助程序代码。
我已经像这样将它们添加为嵌入式框架
编译并运行良好
然后我使用 pod init 将 cocoapods 添加到项目中,使用以下内容编辑 podfile 并创建工作区。
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'
use_frameworks!
target 'ProjectName' do
project 'ProjectName'
pod 'Fabric'
pod 'Crashlytics'
end
接着是 pod install,它添加了我添加到 podfile 的所有框架。
但现在当我编译时出现以下错误。
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_AWSS3PreSignedURLBuilder", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
"_OBJC_CLASS_$_AWSS3ListObjectsOutput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
"_OBJC_CLASS_$_AWSS3GetPreSignedURLRequest", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
"_OBJC_CLASS_$_AWSS3", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
(maybe you meant: _OBJC_CLASS_$_AWSS3ContentProvider)
"_OBJC_CLASS_$_FBSDKLoginManager", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSLambdaInvoker", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSCloudLogic.o)
"_OBJC_CLASS_$_AWSSNSGetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKApplicationDelegate", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSSubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_GIDSignIn", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSGoogleSignInProvider.o)
"_OBJC_CLASS_$_AWSSNSSetEndpointAttributesInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKAccessToken", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSSNS", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_FBSDKGraphRequest", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSFacebookSignInProvider.o)
"_OBJC_CLASS_$_AWSS3ListObjectsRequest", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSContentManager.o)
"_OBJC_CLASS_$_AWSSNSCreatePlatformEndpointInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_OBJC_CLASS_$_AWSSNSUnsubscribeInput", referenced from:
objc-class-ref in AWSMobileHubHelper(AWSPushManager.o)
"_AWSSNSErrorDomain", referenced from:
___88-[AWSPushManager interceptApplication:didRegisterForRemoteNotificationsWithDeviceToken:]_block_invoke.237 in AWSMobileHubHelper(AWSPushManager.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
如果我删除嵌入式框架并将它们添加到 podfile 中
pod 'AWSCognitoIdentityProvider'
pod 'AWSCore'
我得到了同样的错误。
这是我用于调试构建的其他链接器标志
//:configuration = Debug
OTHER_LDFLAGS = $(inherited) -l"c++"
-l"sqlite3"
-l"stdc++"
-l"z"
-framework "AVFoundation"
-framework "AWSCognitoIdentityProvider"
-framework "AWSCore"
-framework "AddressBook"
-framework "AssetsLibrary"
-framework "CFNetwork"
-framework "CoreFoundation"
-framework "CoreGraphics"
-framework "CoreLocation"
-framework "CoreMedia"
-framework "CoreMotion"
-framework "CoreText"
-framework "CoreVideo"
-framework "MessageUI"
-framework "QuartzCore"
-framework "SafariServices"
-framework "Security"
-framework "StoreKit"
-framework "SystemConfiguration"
-framework "UIKit"
//:completeSettings = none
编辑:看起来它允许一些框架添加 cocoapods 很好
当框架要求将 -ObjC 添加到其他链接器标志时,问题似乎出现了
OTHER_LDFLAGS = $(inherited) -ObjC -l"z" -framework "AFNetworking" -framework "AWSCognitoIdentityProvider" -framework "AWSCore" -framework "Bolts" -framework "CFNetwork" -framework "CoreGraphics" -framework "FBSDKCoreKit" -framework "FBSDKLoginKit" -framework "PureLayout" -framework "QuartzCore" -framework "Reveal"
以上是在pod.debug.xcconfig文件中
当我添加以下内容时,aws 编译正常
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'PureLayout'
pod 'AFNetworking', '3.1.0'
举例
但是如果我添加以下内容,它会添加 -ObjC 并导致所有错误
pod 'Reveal-iOS-SDK', :configurations => ['Debug']
有什么想法可以让这些框架协同工作吗?
如果我尝试将 reveal 作为 pod 文件添加到 AWSMobileHub“MySampleApp”附带的示例应用程序中,也会发生同样的情况
编辑 2:当我删除包含 AWSMobileHubHelper.framework 的 AMazonAws 文件夹并仅使用从 cocoapods 添加的 aws 文件进行编译时,它工作正常。添加 AmazonAws 文件夹时似乎会出现此问题。
最佳答案
我通过转到 Pod 文件 pod-projectname.debug.xcconfig 并从 OTHER_LDFLAGS 中删除 -ObjC 解决了上述问题。
我不知道这个标志的作用,我仍在研究它,但至少现在它让我可以编译和运行我的项目。如果有人对此有更多信息,我会洗耳恭听。
编辑 - 好的,请不要这样做。它会导致其他错误。例如,我正在添加一个名为 Intercom 的 pod,它需要 -Objcflags。没有它可以很好地编译,但稍后会在运行时崩溃。
我已将此错误记录到亚马逊,并且我有一名支持工程师正在处理此问题。与此同时,我完全删除了 Helper 框架,我直接使用其他 aws 框架并使用 pods 添加它们。
如果我从亚马逊支持人员那里听到任何有用的信息,我会在这里更新。
关于ios - awsmobilehub 和 cocoapods 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42599354/
有没有办法在 CocoaPod 文件中写入注释?我看了他们的CocoaPods Guide ,但我什么也没看到。 最佳答案 您可以使用 Ruby 注释语法在 Podfile 中添加注释: 内联 #co
我在 Xcode 项目中有多个目标,它们必须依赖于相同的 pod 列表。我可以这样写 Podfile: target :target1 do pod 'pod1' pod 'pod2'
我正在创建一个新的 cocoapod,并希望包含另一个 cocoapod 作为依赖项。 我在 podspec 中添加了必要的行: s.dependency 'Locksmith', '~> 2.0
我执行了我的正常 pod update并收到以下消息: [!] There was an error reading '~/.cocoapods/repos/master/CocoaPods-vers
背景 几年前,我为我正在从事的项目安装了 cocoapods。从那以后我就没有使用过它,现在我需要更新它才能让 Flutter 工作。 系统 操作系统 MacOS Mojave 版本 10.14.3
我想知道用 CocoaPod 包含演示项目的最佳方法是什么。特别是,我希望它成为任何人都可以尝试使用 pod try 的组件。命令。 我看到两个选项: 选项 1:使用 Podfile 在 Exampl
我正在尝试为 firebase 获取一个 pod,但是我在搜索框中输入的任何名称都没有返回任何内容。是网站打不开还是?谢谢 最佳答案 这似乎是许多开发人员不时面临的问题,包括我自己,但是 cocoap
我有一个库的公共(public)分支,该库已存在于 CocoaPods/Specs 中。在 Podfile 中,我可以通过执行以下操作来引用此 fork pod: pod 'CoolLibrary',
pod 命令是否支持列出给定项目中已安装的 CococaPods 的选项? pod list 似乎显示了所有已发布 pod 的列表。我查看了文档,但找不到执行此操作的方法。 最佳答案 如 @DougA
我在 Amazon s3 中存储了一个预编译的框架。 “pod spec lint”失败并出现以下错误。 - ERROR | [iOS] file patterns: The `source_file
我正在用一些资源文件创建我自己的 pod。它基本上是这样定义的: Pod::Spec.new do |s| s.name = 'MyName' s.version = '0.
我正在尝试在我的项目中使用编译到 iOS 的 libFLAC,并使用 CocoaPod 作为依赖项进行安装。 问题是,如果我使用 CocoaPod 0.39 版,工作区创建得很好,但如果我使用 Coc
我在使 CocoaPods 依赖项在 RubyMotion 中工作时遇到了各种问题。首先,如果我添加 dependency 'JSONKit'到我的 Rakefile 然后运行 rake它被 ca
当使用 faSTLane 和 cocoapods 构建我们的 iOS 应用程序时,我注意到 faSTLane 不使用我使用安装的 cocoapods 版本 sudo gem install cocoa
有没有办法在 Podfile 中指定那个 xcconfig文件应该是 #include d 在 Cocoapods 生成的那个? 是否有公开的方法/变量用于附加此 #include还是我需要阅读生成的
在新的 XCode5 中构建我的项目时,我收到以下警告: Pods-App 作为“libPods-App.a”的隐式依赖项被拒绝,因为其架构“i386”不包含所有必需的架构“x86_64” . 最佳答
我已经使用以下命令在 bundle 中安装了 Cocoapods-art: bundle exec gem install cocoapods-art 这是成功消息: Fetching cocoap
在 Xcode 7 中,cocoapods 库的库具有排除代码覆盖率的功能。 但在 Xcode 8 中,该库将包含代码覆盖率。 我是否可以在代码覆盖率中排除该库? 示例:安装 pod 'TPKeybo
我目前正在寻找一个仅支持 Carthage 作为包管理器的库。我希望将其集成的项目已经有一些 CocoaPods 依赖项。有人尝试过同时使用这两个管理器吗? 我觉得这是一个坏主意,但我很想听听实际情况
我刚刚在 Specs Repo 中使用 Pod trunk Push 发布了 Pod 的 Beta 版本。我想知道是否有任何方法可以从规范存储库中删除此版本规范。我没有找到任何通过 pod 命令执行此
我是一名优秀的程序员,十分优秀!