标签: aws-sdk-ios

使用Amazon Cognito开发者身份

我正在关注亚马逊文档,但它不像宣传的那样工作.我也有最新的sdk.self.identity =下面的代码不起作用,因为它是只读的.

@implementation DeveloperAuthenticatedIdentityProvider
/*
 * Use the token method to communicate with your backend to get an
 * identityId and token.
 */

- (AWSTask <NSString*>) token {
    //Write code to call your backend:
    //Pass username/password to backend or some sort of token to authenticate user
    //If successful, from backend call getOpenIdTokenForDeveloperIdentity with logins map 
    //containing "your.provider.name":"enduser.username"
    //Return the identity id and token to client
    //You can use AWSTaskCompletionSource to do this asynchronously

    // Set the identity id and return …
Run Code Online (Sandbox Code Playgroud)

objective-c amazon-web-services ios amazon-cognito aws-sdk-ios

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

将AWS Cognito和aws-ios-sdk v.2.4.16与开发人员身份一起使用

我设置了一组lambda函数来完成我的所有身份验证.我通过api网关从我的应用程序连接,然后最终调用GetOpenIdTokenForDeveloperIdentity().这会通过网关将identityId和token返回给我的设备.

接下来,我按照本网站的说明(针对Objective-C):http: //docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html

因为我有identityId和令牌,所以我从这开始:

DeveloperProvider.h

#import <AWSCore/AWSCore.h>

@interface DeveloperProvider : AWSCognitoCredentialsProviderHelper

@end
Run Code Online (Sandbox Code Playgroud)

DeveloperProvider.m

@implementation DeveloperProvider
/*
 * Use the token method to communicate with your backend to get an
 * identityId and token.
 */

// Below gave me an error and changed to: - (AWSTask <NSString *> *) token
- (AWSTask <NSString*>) token
{
    //Write code to call your backend:
    //Pass username/password to backend or some sort of token to authenticate user
    //If successful, from backend call getOpenIdTokenForDeveloperIdentity …
Run Code Online (Sandbox Code Playgroud)

objective-c amazon-web-services ios amazon-cognito aws-sdk-ios

5
推荐指数
0
解决办法
221
查看次数

AWS iOS SDK Cognito开发人员身份验证(Swift)

我很难弄清楚如何将我的服务器(通过AWS)提供的开发人员凭证返回给我的示例身份提供商.

看来我需要refresh在ExampleIdentityProvider类的方法中同步执行此操作.我正在使用AFNetworking发出请求,但它是异步GET请求.如何在IdentityProvider上为刷新方法同步执行此操作?

以下是Swift:

class ExampleIdentityProvider: AWSAbstractIdentityProvider  {
    var newToken: String!

    override var token: String {
        get {
            return newToken
        }
        set {
            newToken = newValue
        }
    }

    override func getIdentityId() -> BFTask! {
        if self.identityId != nil {
            return BFTask(result: self.identityId)
        }else{
            return BFTask(result: nil).continueWithBlock({ (task) -> AnyObject! in
                if self.identityId == nil {
                    return self.refresh()
                }
                return BFTask(result: self.identityId)
            })
        }
    }

    override func refresh() -> BFTask! {
        return BFTask(result: nil).continueWithBlock({ (task) -> AnyObject! in …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services ios amazon-cognito aws-sdk aws-sdk-ios

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

pod更新导致所有AWS SDK(El Capitan + XCode 7)的"类xxx的重复接口定义"

刚才,我更新了我的AWS SDK pod,我后悔了.当pod正在更新时我第一次看到这个:

dyld:警告,LC_RPATH @executable_path /../../../../../../../ SharedApprameworks in /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/ ../../..//DVTInstrumentsFoundation.framework/Versions/A/DVTInstrumentsFoundation在受限制的程序中被忽略,因为@executable_path dyld:warning,LC_RPATH @executable_path /../ lib in /Applications/Xcode.app/Contents/由于@executable_path,在受限程序中忽略框架/ IDEFoundation.framework/Versions/A /../../../../ Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib

dyld:警告,LC_RPATH @executable_path /../ lib在/Applications/Xcode.app/Contents/Frameworks/IDEFoundation.framework/Versions/A/../../../../Developer/Toolchains/XcodeDefault.由于@executable_path,在受限程序中忽略xctoolchain/usr/lib/libLTO.dylib

dyld:警告,LC_RPATH @executable_path /../框架/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/MacOS/Xcode3Core由于@executable_path而在受限程序中被忽略

然后当我打开我的项目并构建时,我得到了这么多构建失败,抱怨同样的事情XXX类的重复接口定义:

在此输入图像描述

我尝试了很多解决方案,重新安装AWS SDK pod,重新安装cocoapods,将cocoapods降级到0.38.2,将AWS SDK pod降级到2.2.6,但没有任何帮助.如果我在Objective-C桥接头中注释掉导入,我没有这些错误,但Xcode只是抱怨没有找到代码中使用的某些类.但我不认为评论它们是正确的解决方案. 在此输入图像描述

好吧,我搜索了https://github.com/CocoaPods/CocoaPods/issues/4302,它似乎可能是cocoapods的问题?

有人对此有任何想法吗?谢谢.

cocoapods aws-sdk xcode7 osx-elcapitan aws-sdk-ios

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

AWS Amplify / iOS SDK 教程缺少步骤

我正在按照此入门指南使用 AWS Amplify CLI 和适用于 iOS 的 AWS 开发工具包构建 iOS 应用程序。

我之前按照Apple 入门指南中的步骤简单地创建了单视图应用程序的基本框架。

一切顺利:我能够在 Xcode 中构建我的空项目,启动模拟器,看到我的白色空白屏幕,无论是在启动 AWS iOS SDK Swift 教程之前还是之后。

我的问题是,AWS 教程假定的 Swift 知识比我多。所以当它在最后说以下内容时——

从您的应用程序代码中调用 runMutation()、runQuery() 和 subscribe() 方法,例如通过单击按钮或当您的应用程序在 viewDidLoad() 中启动时。

- 该指南基本上跳过了一些步骤。

我已经为本教程创建了所需的 AWS 资源,但我不知道如何调用函数并更新设置的 DynamoDB 表。

假设我可以向 UI 视图添加两个文本字段(一个用于待办事项“名称”,一个用于“描述”)并为它们绑定一个按钮,有人可以帮助我完成剩下的工作吗?

更新 在下面回答。我因提出这个问题而遭到否决,但有人可能会认为入门指南应该是独立的。没什么大不了的;我学习了这两个教程并解决了我的问题,并为那些像我一样困惑的人发布了答案。

amazon-web-services swift aws-amplify aws-sdk-ios

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

AWS 移动开发工具包库会因 Amplify 而消失吗?

目前,我工作的公司在多个 Android 应用程序中使用 AWS 库,AWS 库如下:

com.amazonaws:aws-android-sdk-s3
com.amazonaws:aws-android-sdk-mobile-client
com.amazonaws:aws-android-sdk-auth-userpools
com.amazonaws:aws-android-sdk-auth-core
Run Code Online (Sandbox Code Playgroud)

当我尝试查找这些库的文档时,我只能找到 Xamarin 文档。Android 和 iOS 文档缺失,并且我看到不祥的警告“2021 年 10 月 30 日,AWS Amplify 将取代 AWS Mobile Hub”

目前尚不清楚“AWS Mobile Hub”是否仅包含在线 Mobile Hub 界面,或者是否包含我一直在使用的这些库。

我是否可以无限期地使用 AWS 开发工具包库,或者它们会在 2021 年 10 月 30 日停止运行吗?我找不到任何可以直接回答这个问题的东西。

android amazon-web-services aws-amplify aws-sdk-ios aws-amplify-sdk-android

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

用于创建带结果的AWSTask的Swift 3语法是什么?

在Swift 3之前,我创建带结果的AWSTask的代码是这样的:

let results = ["resultOne", "resultTwo"]
let task = AWSTask(result: results)
Run Code Online (Sandbox Code Playgroud)

但是使用Swift 3,我从Xcode 8收到此错误消息:

无法将'[String]'类型的值转换为预期的参数类型'_?'

还有其他人遇到过这个吗?非常感谢!

aws-sdk swift3 xcode8 aws-sdk-ios

4
推荐指数
1
解决办法
1162
查看次数

即使在删除并重新安装应用程序后,AWS Cognito 也会自动登录

我最近创建了一个带有 Cognito 用户池的 AWS Mobile hub 项目,当我登录时它会记住登录的用户,一旦我删除应用程序(无需登录)并重新安装应用程序,它会自动登录到以前的帐户,如何防止那个问题?

PS - 我使用的是最新的 AWS Mobile Hub iOS SDK

amazon-web-services amazon-cognito aws-sdk aws-cognito aws-sdk-ios

4
推荐指数
1
解决办法
735
查看次数

使用AWS iOS SDKv2将文件上传到存储桶下的子文件夹

我在s3 ios sdk上看到了一个用密钥上传文件的例子.但是,我找不到任何将文件上传到存储桶下的子文件夹的示例.如何指定我要上传到的子文件夹?

AWSS3TransferManagerUploadRequest *uploadRequest = [AWSS3TransferManagerUploadRequest new];
uploadRequest.bucket = yourBucket;
uploadRequest.key = yourKey;
uploadRequest.body = yourDataURL;
uploadRequest.contentLength = [NSNumber numberWithUnsignedLongLong:fileSize];

[[transferManager upload:uploadRequest] continueWithBlock:^id(BFTask *task) {
    // Do something with the response
    return nil;
}];
Run Code Online (Sandbox Code Playgroud)

amazon-s3 aws-sdk-ios

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

具有标识符的后台 URLSession 已存在

我有一个 S3Service,它是一个管理所有 S3 相关上传和下载的单例。当我上传第一个图像时,它工作正常,但如果我尝试连续上传图像,它会给我这个警告,并且完成块永远不会被调用。

具有标识符的后台 URLSessioncom.amazonaws.AWSS3TransferUtility.Identifier.TransferManager已存在。

这就是我上传方法的样子:

if let data = image.jpegData(compressionQuality: 0.5) {
        let transferUtility = AWSS3TransferUtility.s3TransferUtility(forKey: S3Service.TRANSFER_MANAGER_KEY)
        transferUtility.uploadUsingMultiPart(data: data, bucket: EnvironmentUtils.getBucketName(), key: filename, contentType: "image/jpg", expression: nil, completionHandler: { task,error in

            if let error = error {
                print(error.localizedDescription)
            } else {
                print("Image upload success")
            }
        })
}
Run Code Online (Sandbox Code Playgroud)

amazon-s3 nsurlsession swift awss3transferutility aws-sdk-ios

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