Skip to content
forked from qiniu/objc-sdk

Qiniu Resource (Cloud) Storage Objective-C SDK for Mac/iOS

License

Notifications You must be signed in to change notification settings

YangSen-qn/objc-sdk

This branch is 36 commits ahead of, 1 commit behind qiniu/objc-sdk:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

eafaf9c · Oct 25, 2024
May 27, 2024
Oct 25, 2024
Apr 21, 2021
May 27, 2024
May 12, 2016
Oct 25, 2024
May 27, 2024
Aug 13, 2020
May 18, 2020
Apr 21, 2016
Aug 10, 2022
Nov 7, 2016
Jun 24, 2024
Dec 30, 2016
Jul 4, 2016
Aug 14, 2023
Aug 16, 2023
Jun 24, 2024
Jun 24, 2024
Nov 7, 2016
Nov 7, 2016
May 12, 2016

Repository files navigation

Qiniu Resource Storage SDK for Objective-C

@qiniu on weibo Software License Build Status Badge w/ Version GitHub release codecov Platform

安装

通过 CocoaPods

pod "Qiniu", "~> 8.8.0" 

通过 Swift Package Manager (Xcode 11+)

App 对接:
File -> Swift Packages -> Add Package Dependency,输入库链接,选择相应版本即可
库链接: https://github.com/qiniu/objc-sdk

库对接:
let package = Package(
    dependencies: [
        .package(url: "https://github.com/qiniu/objc-sdk", from: "8.8.0")
    ],
    // ...
)

运行环境

Qiniu SDK 版本 最低 iOS版本 最低 OS X 版本 Notes
8.8.x iOS 9 OS X 10.15 Xcode 最低版本 11
8.7.x iOS 9 OS X 10.15 Xcode 最低版本 11
8.6.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.5.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.4.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.3.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.2.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.1.x iOS 7 OS X 10.15 Xcode 最低版本 11
8.0.x iOS 7 OS X 10.15 Xcode 最低版本 11
7.5.x iOS 7 OS X 10.9 Xcode 最低版本 6.
7.4.x iOS 7 OS X 10.9 Xcode 最低版本 6.
7.3.x iOS 7 OS X 10.9 Xcode 最低版本 6.
7.2.x iOS 7 OS X 10.9 Xcode 最低版本 6.
7.1.x / AFNetworking-3.x iOS 7 OS X 10.9 Xcode 最低版本 6.
7.0.x / AFNetworking-2.x iOS 6 OS X 10.8 Xcode 最低版本 5.
7.x / AFNetworking-1.x iOS 5 OS X 10.7 Xcode 最低版本 5.
6.x iOS 6 None Xcode 最低版本 5.

使用方法

简单上传

#import <QiniuSDK.h>
...
    NSString *token = @"从服务端SDK获取";
    QNUploadManager *upManager = [[QNUploadManager alloc] init];
    NSData *data = [@"Hello, World!" dataUsingEncoding : NSUTF8StringEncoding];
    [upManager putData:data key:@"hello" token:token
        complete: ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
        NSLog(@"%@", info);
        NSLog(@"%@", resp);
    } option:[QNUploadOption defaultOptions]];
...

如使用最新版的sdk,默认自动判断上传空间。如需要指定上传区域,可以按如下方式上传:

#import <QiniuSDK.h>
...
    QNConfiguration *config = [QNConfiguration build:^(QNConfigurationBuilder *builder) {
        builder.useHttps = YES;// 是否使用https
        builder.zone = [[QNAutoZone alloc] init];// 根据 bucket 自动查询区域
        // builder.zone = [QNFixedZone createWithRegionId:@"z0"];// 指定华东区域
        // builder.zone = [QNFixedZone createWithRegionId:@"z1"];// 指定华北区域
        // builder.zone = [QNFixedZone createWithRegionId:@"z2"];// 指定华南区域
        // builder.zone = [QNFixedZone createWithRegionId:@"na0"];// 指定北美区域
        // builder.zone = [QNFixedZone createWithRegionId:@"as0"];// 指定东南亚区域
    }];
    
    QNUploadManager *upManager = [[QNUploadManager alloc] initWithConfiguration:config];
    QNUploadOption *option = [[QNUploadOption alloc] initWithProgressHandler:^(NSString *key, float percent) {
        NSLog(@"progress %f", percent);
    }];
    
    NSData *data = [@"Hello, World!" dataUsingEncoding:NSUTF8StringEncoding];
    NSString *token = @"从服务端SDK获取";
    [upManager putData:data key:@"hello" token:token complete: ^(QNResponseInfo *info, NSString *key, NSDictionary *resp) {
        NSLog(@"%@", info);
        NSLog(@"%@", resp);
    } option:option];
...

建议 QNUploadManager 创建一次重复使用, 或者使用单例方式创建.

测试

所有测试

$ xcodebuild test -workspace QiniuSDK.xcworkspace -scheme QiniuSDK_Mac -configuration Release -destination 'platform=macOS,arch=x86_64'

指定测试

可以在单元测试上修改, 熟悉 SDK

$ xcodebuild test -workspace QiniuSDK.xcworkspace -scheme QiniuSDK_Mac -configuration Release -destination 'platform=macOS,arch=x86_64' -only-testing:"QiniuSDK_MacTests/QNResumeUploadTest/test5M"

示例代码

  • 完整的demo 见 QiniuDemo 目录下的代码
  • 具体细节的一些配置 可参考 QiniuSDKTests 下面的一些单元测试,以及源代码

常见问题

  • 如果碰到 crc 链接错误, 请把 libz.dylib 加入到项目中去
  • 如果碰到 res_9_ninit 链接错误, 请把 libresolv.dylib 加入到项目中去
  • 如果需要支持 iOS 5 或者支持 RestKit, 请用 AFNetworking 1.x 分支的版本
  • 如果碰到其他编译错误, 请参考 CocoaPods 的 troubleshooting
  • iOS 9+ 强制使用https,需要在project build info 添加NSAppTransportSecurity类型Dictionary。在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES。 具体操作可参见 http://blog.csdn.net/guoer9973/article/details/48622823
  • 上传返回错误码理解,status code 注释

代码贡献

详情参考 代码提交指南.

贡献记录

联系我们

  • 如果需要帮助, 请提交工单 (在 portal 右侧点击咨询和建议提交工单, 或者直接向 [email protected] 发送邮件)
  • 如果有什么问题, 可以到问答社区提问, 问答社区
  • 更详细的文档, 见 官方文档站
  • 如果发现了 bug, 欢迎提交 issue
  • 如果有功能需求, 欢迎提交 issue
  • 如果要提交代码, 欢迎提交 pull request
  • 欢迎关注我们的 微信 && 微博, 及时获取动态信息

代码许可

The MIT License (MIT). 详情见 License 文件.

About

Qiniu Resource (Cloud) Storage Objective-C SDK for Mac/iOS

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 99.1%
  • Other 0.9%