Giter VIP home page Giter VIP logo

qcloud-sdk-ios's Introduction

腾讯云 存储SDK for iOS

XCTest

前言

您可以在新建项目,配置好SDK或者在已有的项目中集成进SDK,或者先运行下Demo感受下SDK是如何运作的。下载Demo体验请前点击Demo下载地址

使用我们的SDK前,您需要配置好开发环境:

  • Xcode 7 或更新的版本
  • 运行环境为 iOS 8 以上

本仓库中只包含了SDK的代码和docset格式的文档。如果需要更多的信息可以浏览腾讯云官网。具体SDK的文档在对应目录下的REAME.md中。

产品列表

当前仓库内提供的产品有:

  • 基于 COS JSON API 封装的 SDK
  • 基于 COS XML API 封装的 SDK

集成SDK

您可以通过Cocoapods集成、下载源代码或者使用我们打包好的动态库来进行SDK的集成工作。在这里我们推荐您使用Cocoapods的方式来进行集成。在您的podfile中加入需要集成的库即可。
如果需要使用基于XML封装的SDK:

pod 'QCloudCOSXML'

如果需要使用基于V4封装的,重构后的SDK:

pod 'QCloudNewCOSV4'

其他的具体的集成方式进入该SDK所在的文件夹中,查看README可以详见具体库的文档。

接口说明

SDK 包含的 COS 接口说明请查看官网的 iOS 接口文档

文档集成

我们提供了docset格式的文档,在仓库的Documents目录中,或者可以从release中下载。您可以直接使用Dash来打开。也可以将文档集成到Xcode中去。

集成文档到Xcode

您只需要docset格式的文档移动至 ~/Library/Developer/Shared/Documentation/DocSets文件夹中,然后重启Xcode即可将文档安装至Xcode中。安装成功后可以在Xcode的Help-Documentation and API Reference中查看。您也可以使用命令行完成这一过程

 $ cd docset所在路径
 $ mkdir -p ~/Library/Developer/Shared/Documentation/DocSets
 $ mv com.tencent.qcloudcosxml.ios.docset ~/Library/Developer/Shared/Documentation/DocSets

iOS9适配

我们的SDK是运行在HTTP上的。由于iOS9之后苹果引入App Transport Security (ATS)特性,集成SDK的APP需要一些额外的步骤来适配iOS9和以上的系统。

在集成SDK的APP的info.plist中需要添加如下代码:

<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSExceptionDomains</key>
		<dict>
			<key>myqcloud.com</key>
			<dict>
				<key>NSIncludesSubdomains</key>
				<true/>
				<key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>

日志

默认情况下,SDK内部的日志并不会直接输出到控制台中。在Debug等情况下需要查看日志的话,可以设置对应的环境变量开启。开启的具体方式为:在Xcode左上角选择点击当前的target-Edit Scheme-在Enviriments Variables中填入QCloudLogLevel这个环境变量,如果需要输出所有debug信息,那么将值设置为6。

为了方便排查问题以及查看SDK日志,在app启动时会检测剪贴板字符串是否为“##qcloud-cos-log-ispct##”,如果是(不会对字符串本身进行任何操作),则会弹出日志alert,进行日志查看以及上传; 也可以手动关闭此功能

[QCloudLogManager sharedInstance].shouldShowLog = NO;

代码块 Code Snippet

为了提升用户体验和减少出错的概率,对于一些常见的接口我们提供了 XCode 中可以使用的代码块,将这些代码块集成进 XCode 以后,可以直接调用代码块来填充代码,减少重复的工作量。

集成方式: 将 CodeSnippets 文件夹下,所需要的代码块文件(以.codesnippet结尾)复制到以下文件夹中(可以在Finder里按 Command+Shift+G,填入路径跳转)

~/Library/Developer/Xcode/UserData/CodeSnippets

集成后,重启 XCode ,并且输入快捷方式(例如 cos ),即可弹出对应的填充选项,直接填充完成该操作所需的基本代码, 按回车直接填充。

License

Tencent Cloud SDK for iOS and samples are released under the MIT license.

Copyright (c) 2017 腾讯云

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

qcloud-sdk-ios's People

Contributors

15809284891 avatar ericcheungscut avatar konakonall avatar tencentwallet avatar wangbo1185742894 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qcloud-sdk-ios's Issues

M1 环境下报:ld: framework not found QCloudCOSXML 错误

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

QQ_MTA和 QCloudCOSXML pods有冲突

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?
    5.5.9或者5.6.0

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

QQ_MTA和 QCloudCOSXML pods有冲突

[!] The ' xxxx' target has libraries with conflicting names: libmtasdk.a.

同一时间多次上传多个文件时,发生如下问题,造成崩溃

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?
    5.8.3

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

image

为什么会先执行setFinishBlock, setFinishBlock完成之后 过很久才执行setDownProcessBlock

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

云对象存储

  • 您使用的SDK版本好是多少?

5.5.8

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

真机和模拟器都有 9.2.1和12.1 wifi

  • 使用更高版本的SDK是否解决了您的问题?
    没有

  • 这个问题是否和特定的网络环境有关系?

不确定

  • 您集成我们SDK的方式是什么?

cocoapods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

QCloudGetObjectRequest* request = [QCloudGetObjectRequest new];
//设置下载的路径 URL,如果设置了,文件将会被下载到指定路径中
request.downloadingURL = [NSURL URLWithString:QCloudTempFilePathWithExtension(@"downding")];
request.object = @“您的Object-Key”;
request.bucket = @"test-123456789";
[request setDownProcessBlock:^(int64_t bytesDownload, int64_t totalBytesDownload, int64_t totalBytesExpectedToDownload) {
//下载过程中的进度
}];

[request setFinishBlock:^(id outputObject, NSError *error) {
//additional actions after finishing
}];

[[QCloudCOSXMLService defaultCOSXML] GetObject:request];

为什么会先执行setFinishBlock, setFinishBlock完成之后 过很久才执行setDownProcessBlock

共同使用 FCUUID 库是发生链接冲突

当我在应用中引入 FCUUID 一起编译之后,会发生链接冲突报错

duplicate symbol __uuidsOfUserDevicesKey in:
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/FCUUID/libFCUUID.a(FCUUID.o)
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/QCloudCore/libQCloudCore.a(QCloudFCUUID.o)
duplicate symbol __uuidForInstallationKey in:
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/FCUUID/libFCUUID.a(FCUUID.o)
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/QCloudCore/libQCloudCore.a(QCloudFCUUID.o)
duplicate symbol __uuidsOfUserDevicesToggleKey in:
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/FCUUID/libFCUUID.a(FCUUID.o)
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/QCloudCore/libQCloudCore.a(QCloudFCUUID.o)
duplicate symbol __uuidForDeviceKey in:
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/FCUUID/libFCUUID.a(FCUUID.o)
    /Users/David/Library/Developer/Xcode/DerivedData/social-module-ios-edzgakqhvypnepfgmkwjgmmrwkdn/Build/Products/Debug-iphoneos/QCloudCore/libQCloudCore.a(QCloudFCUUID.o)
ld: 4 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我看了下源码,似乎是因为部分变量名没有加前缀

@implementation QCloudFCUUID


NSString *const QCloudFCUUIDsOfUserDevicesDidChangeNotification = @"QCloudFCUUIDsOfUserDevicesDidChangeNotification";


NSString *const _uuidForInstallationKey = @"fc_uuidForInstallation";
NSString *const _uuidForDeviceKey = @"fc_uuidForDevice";
NSString *const _uuidsOfUserDevicesKey = @"fc_uuidsOfUserDevices";
NSString *const _uuidsOfUserDevicesToggleKey = @"fc_uuidsOfUserDevicesToggle";

Crash

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    腾讯COS iOS SDK

  • 您使用的SDK版本好是多少?
    QCloudCOSXML(5.7.5)

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    iPhone Xs 13.5.1

  • 使用更高版本的SDK是否解决了您的问题?
    没有

  • 这个问题是否和特定的网络环境有关系?
    没有

  • 您集成我们SDK的方式是什么?
    cocospods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。
    file:QCloudOperationQueue.m
    line:[self->_runningOperationArray addObject:operation];
    crash because operation is nil

编译不过

QCloudCOSXML中
#import <QCLOUDRestNet.h>应统一改为
#import <QCloudCore/QCLOUDRestNet.h>

COS文件上传后,再调用getObjectMetadata,得到的Etag有误

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    COS 云存储
  • 您使用的SDK版本号是多少?
    5.6.23
  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机,wifi
  • 使用更高版本的SDK是否解决了您的问题?
  • 这个问题是否和特定的网络环境有关系?
  • 您集成我们SDK的方式是什么?
    maven
  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。
    文件是通过 spark 直接导入到 cosn://buc-13424123/key1/da/pp1/part-00000-f124f8f4-5b44-4c83-aece-6cd20629860b-c000.snappy.parquet
    获取到的 ETag 为:001a387d4ca31d1952d3409c63503c71-3
    得到的 ETag 位数超过32位,后面的 “-3” 去掉也不是正确的校验值。

创建 COS 服务实例 fenceQueue:requestCreatorWithContinue: 委托不调用

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    COS

  • 您使用的SDK版本好是多少?
    5.8.1

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    Cocoapods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

`func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

    let config = QCloudServiceConfiguration.init();
    config.appID = "test id";
    
    let endpoint = QCloudCOSXMLEndPoint.init();
    //服务地域简称,例如广州地区是 ap-guangzhou
    endpoint.regionName = "ap-hongkong";
    // 使用 HTTPS
    endpoint.useHTTPS = true;
    config.endpoint = endpoint;
    // 密钥提供者为自己
    config.signatureProvider = self;
    
    // 初始化 COS 服务示例
    QCloudCOSXMLService.registerDefaultCOSXML(with: config);
    QCloudCOSTransferMangerService.registerDefaultCOSTransferManger(
        with: config);
    
    // 初始化临时密钥脚手架
    self.credentialFenceQueue = QCloudCredentailFenceQueue.init();
    self.credentialFenceQueue?.delegate = self;
    
    return true
}`

QCloudCredentailFenceQueueDelegate 和 QCloudSignatureProvider2委托的方法,打断点都没有进来。不知道是哪里的问题。

M1 报错:framework not found QCloudCOSXML

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 对象存储

  • 您使用的SDK版本好是多少?

  • 6.1.0

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • Apple M1 Max MacBook Pro,模拟器,iOS 15.5

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 使用 Cocoapods 集成

  • pod 'QCloudCOSXML'

  • 使用精简版也无法解决,报一样的错误信息
    pod 'QCloudCOSXML/Transfer'

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

SignatureDoesNotMatch

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    QCloudCOSXML 图片上传和下载服务

  • 您使用的SDK版本好是多少?
    QCloudCOSXML 5.6.2

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    模拟器,iOS12.2 WIFI

  • 使用更高版本的SDK是否解决了您的问题?
    使用最新版本

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    Pod

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

从JSON API迁移到XML API
使用服务端返回的签名信息Sign,bucket = < bucketName-Appid >, region="ap-shanghai"

  • (void) signatureWithFields:(QCloudSignatureFields*)fileds
    request:(QCloudBizHTTPRequest*)request
    urlRequest:(NSMutableURLRequest*)urlRequst
    compelete:(QCloudHTTPAuthentationContinueBlock)continueBlock{
    QCloudSignature *signature = [QCloudSignature signatureWithMaxExpiration: @"服务端返回的Sign"];
    }
    显示错误信息:
    Error Domain=com.tencent.qcloud.networking Code=403 "(null)" UserInfo={__name=Error, RequestId=NWQ0N2E1MWRfNjE5ZDA4MDlfYWU5Y19iNGRkOTk=, StringToSign=sha1
    1564976412;1564980012
    009ec928a0a91a0cc0c936c7acddc10169a45e33, Code=SignatureDoesNotMatch, TraceId=OGVmYzZiMmQzYjA2OWNhODk0NTRkMTBiOWVmMDAxODc0OWRkZjk0ZDM1NmI1M2E2MTRlY2MzZDhmNmI5MWI1OTQyYWVlY2QwZTk2MDVmZDQ3MmI2Y2I4ZmI5ZmM4ODFjYjdkMDE0YzdiNDU3MThiMzQ3NzBkMmQwZjE1ZWVlZmU=, FormatString=put
    /38905642349559468_1.jpg, Resource=xxxx, Message=The Signature you specified is invalid.}

图片上传报错

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

腾讯云COS,5.4.4, 报 QCloudPutObjectRequest][3336]当前网络环境为1 请求失败Error Domain=NSURLErrorDomain Code=-1003 "未能找到使用指定主机名的服务器。" UserInfo={NSUnderlyingError=0x110fceac0 {Error Domain=kCFErrorDomainCFNetwork Code=-1003 "(null)" UserInfo={_kCFStreamErrorCodeKey=8, _kCFStreamErrorDomainKey=12}}, NSErrorFailingURLStringKey=http://teazhi-1253753824-appid.cos.(null).myqcloud.com/c08660ac012420c8f2fbdcb4c474df4afad8dda22997aba5d8b9b012008e7e05.jpeg, NSErrorFailingURLKey=http://teazhi-1253753824-appid.cos.(null).myqcloud.com/c08660ac012420c8f2fbdcb4c474df4afad8dda22997aba5d8b9b012008e7e05.jpeg, _kCFStreamErrorDomainKey=12, _kCFStreamErrorCodeKey=8, NSLocalizedDescription=未能找到使用指定主机名的服务器。}

SPM 编译问题

由于项目依赖需要改用 SPM 管理,在自建 GitLab上 创建了 SPM,发现 QCloudCOSXML 框架部分文件由于缺少 import 导致无法编译通过。
使用当前最新版本 v6.2.5,发现 NS_ENUM 相关的文件缺少 #import <Foundation/Foundation.h>,涉及文件如下:

  • GenerateSnapshotFormat.h
  • GenerateSnapshotMode.h
  • GenerateSnapshotRotateType.h
  • COSIncludedObjectVersions.h
  • IntelligentTieringStatus.h
  • InventoryStatue.h
  • COSXMLCompressionType.h
  • ExpressionType.h
  • InputFileHeaderInfo.h
  • InputJSONFileType.h
  • OutputQuoteFields.h

以上文件列表取的是代码注释第二行,实际文件有部分已经改名。

另外咨询一下,是否有支持 SPM 的计划?

构建失败

错误:
ld: framework not found QCloudCOSXML clang: error: linker command failed with exit code 1 (use -v to see invocation)

环境:Xcode 11.6,CocoaPods 1.10.1
podfile:pod 'QCloudCOSXML', '~> 5.8.1'

构建失败,提示无法成功链接QCloud相关的库(实际是没有成功生成QCloud相关的库),官方Demo也是构建失败:https://github.com/tencentyun/qcloud-sdk-ios

上传本地文件,暂停后,恢复上传时崩溃,重要!!

Terminating app due to uncaught exception 'com.tencent.qcloud.error', reason: '不支持该路径下的文件续传:/testvideo.mp4'
terminating with uncaught exception of type NSException

查看一下上传逻辑,发现[uploadRequest cancelByProductingResumeData:&error]返回的Data中的body经过相对路径处理:
NSURL *url = (NSURL *)self.body;
QCloudUniversalPath *universalPath = [QCloudUniversalPathFactory universalPathWithURL:url];
self.body = universalPath;

但是恢复上传时
QCloudCOSXMLUploadObjectRequest *resumeRequest = [QCloudCOSXMLUploadObjectRequest requestWithRequestData:self.uploadResumeData];

源码中:
QCloudUniversalPath *path = request.body;
// fileURLWithPath会再次编码,所以需要一次解码
NSString *bodyUrl = QCloudURLDecodeUTF8([path fileURL].absoluteString);
request.body = [NSURL URLWithString:bodyUrl];
直接使用了bodyUrl,并没有将相对路径转成完整路径,导致崩溃

希望尽快解决

iOS16.2及以上系统 [BeaconAsyncSocket closeWithError:] crash

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    智聆语音评测
    pod 'TIWLogger_iOS', '1.0.1.41'

  • 您使用的SDK版本好是多少?
    pod 'QCloudCOSXML', '6.1.9'

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机,iOS16.2及以上系统

  • 使用更高版本的SDK是否解决了您的问题?
    从 6.0.3 升级到6.1.9无解决,且更新说明中没有相关信息

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    pod库

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

#15 Thread
libsystem_platform.dylib
__os_unfair_lock_recursive_abort + 36
libsystem_platform.dylib
__os_unfair_lock_lock_slow + 276
CoreFoundation _CFSocketInvalidate + 128
CFNetwork __CFNetworkErrorGetLocalizedDescription + 295072
CoreFoundation _CFArrayApplyFunction + 68
CFNetwork __CFNetworkErrorGetLocalizedDescription + 183016
CoreFoundation __CFRelease + 356
CoreFoundation _CFSocketInvalidate + 1012
CFNetwork __CFNetworkErrorGetLocalizedDescription + 169104
CoreFoundation __CFStreamClose + 104
**** -[BeaconAsyncSocket closeWithError:] + 260
**** -[BeaconAsyncSocket doReadEOF] + 360
**** ___69-[BeaconAsyncSocket setupReadAndWriteSourcesForNewlyConnectedSocket:]_block_invoke + 88
libdispatch.dylib __dispatch_client_callout + 16
libdispatch.dylib __dispatch_continuation_pop$VARIANT$armv81 + 436
libdispatch.dylib __dispatch_source_invoke$VARIANT$armv81 + 1552
libdispatch.dylib __dispatch_lane_serial_drain$VARIANT$armv81 + 308
libdispatch.dylib __dispatch_lane_invoke$VARIANT$armv81 + 380
libdispatch.dylib __dispatch_workloop_worker_thread + 612
libsystem_pthread.dylib __pthread_wqthread + 284

求指教控制台警告怎么消除

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    对象存储
  • 您使用的SDK版本好是多少?
    pod 安装的最新版 (s.dependency 'QCloudCOSXML/Transfer')
  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机
  • 使用更高版本的SDK是否解决了您的问题?
  • 这个问题是否和特定的网络环境有关系?
    没有
  • 您集成我们SDK的方式是什么?
    在自己的私有pod组件集成
  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

image

有个错别字

QCloudAbstractRequest_FackRequest.h
这个fack应该是fake吧

提示文件找不到

提示如下文件找不到:
#import <QCloudCore/QCloudCore.h>

只能改成以下方式才可以:
#import "QCloudCore.h"

为什么?

self.runOnService = nil

2018-05-25 15:55:23.299285+0800 RoWrite[3656:1418626] *** Assertion failure in -[QCloudGetObjectRequest prepareInvokeURLRequest:error:], /*****/Pods/QCloudCore/QCloudCore/Classes/QCloudClientBase/Request/QCloudBizHTTPRequest.m:108

使用腾讯云SDK下载、上传图片的时候出现;
在断言处崩溃 QCloudBizHTTPRequest中108行 NSAssert(self.runOnService, @"RUN ON SERVICE is nil%@", self.runOnService);这个地方

QCloudAbstractRequest .cxx_destruct crash

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    COS SDK

  • 您使用的SDK版本好是多少?
    QCloudCOSXML 5.8.6

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机, iphone 12.1, iOS 14.6, wifi

  • 使用更高版本的SDK是否解决了您的问题?
    未知

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    cocoapods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

Thread 21 Crashed:
0 libdispatch.dylib 0x00000001bd42c474 0x1bd3f9000 + 210036
1 libdispatch.dylib 0x00000001bd3fb748 0x1bd3f9000 + 10056
2 APP 0x000000010234c188 0x102150000 + 2081160
3 libswiftCore.dylib 0x00000001cb27600c 0x1caf60000 + 3235852
4 APP 0x000000010234c1b8 0x102150000 + 2081208
5 libswiftCore.dylib 0x00000001cb27600c 0x1caf60000 + 3235852
6 libsystem_blocks.dylib 0x00000001bd379a2c 0x1bd379000 + 2604
7 libsystem_blocks.dylib 0x00000001bd379a2c 0x1bd379000 + 2604
8 APP 0000000102eb1b74 -[QCloudAbstractRequest .cxx_destruct] + 14031732 [QCloudAbstractRequest.m : 22]
9 libobjc.A.dylib 0x00000001bd46fc90 0x1bd46b000 + 19600
10 libobjc.A.dylib 0x00000001bd483fcc 0x1bd46b000 + 102348
11 libobjc.A.dylib 0x00000001bd48a8c8 0x1bd46b000 + 129224
12 libobjc.A.dylib 0x00000001bd46fc90 0x1bd46b000 + 19600
13 libobjc.A.dylib 0x00000001bd483fcc 0x1bd46b000 + 102348
14 libobjc.A.dylib 0x00000001bd48a8c8 0x1bd46b000 + 129224
15 libsystem_blocks.dylib 0x00000001bd379a2c 0x1bd379000 + 2604
16 libdispatch.dylib 0x00000001bd3fc33c 0x1bd3f9000 + 13116
17 libdispatch.dylib 0x00000001bd40b6e8 0x1bd3f9000 + 75496
18 libdispatch.dylib 0x00000001bd40bd9c 0x1bd3f9000 + 77212
19 libsystem_pthread.dylib 0x00000001bd4636d8 0x1bd460000 + 14040

libstdc++ was removed from iOS12, XCode10 cant't build it

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

SwiftCompiler Warning

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    对象存储

  • 您使用的SDK版本好是多少?
    5.6.4

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    真机iOS11,xcode10,Swift5

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    pods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

出现超多SwiftCompiler Warning
Pointer is missing a nullability type specifier (_Nonnull, _Nullable, or _Null_unspecified)

因为Swift bridge使用OC的时候,需要OC代码做一些空类型的指定,会使代码更安全,希望能够优化一下这方面的代码。

另外建议提供Swift的demo,只是建议。

[QCloudCOSXMLService PutObject:]: unrecognized selector sent to instance 0x282e5d940

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • oss

  • 您使用的SDK版本好是多少?

  • pod 'QCloudCOSXML', '~> 5.9.9'

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 真机

  • 使用更高版本的SDK是否解决了您的问题?

  • 更新到最新版本仍会因为私有方法引起crash

  • 这个问题是否和特定的网络环境有关系?

  • 没有

  • 您集成我们SDK的方式是什么?

  • cocoapods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

  • other linker flags 已添加 -ObjC

QCloudCOSXMLService.hasService(forKey: "")多次调用返回false,导致注册crash

 crash日志总是输出:'默认的COSXMLService已存在,如有新的配置,请通过 registerCOSXMLWithConfiguration:withKey:重新注册' 


v5.9.4版本-----目前只能是通过新增一个全局变量来保存当前的区域名进行判断控制解决多次初始化crash问题:

具体方案如下:


 /// 保存当前地域名
    private var currentRegionName: String = "___regionxxxx___"

       QCloudCOSXMLService.removeCOSXML(withKey: "regionName")

        /// sdk的api有问题 QCloudCOSXMLService.hasService(forKey: "regionName")
        if currentRegionName == "regionName" {
            QCloudCOSXMLService.registerCOSXML(with: configure, withKey: "regionName")
            QCloudCOSTransferMangerService.registerCOSTransferManger(with: configure, withKey: "regionName")
        } else {
            QCloudCOSXMLService.registerDefaultCOSXML(with: configure)
            QCloudCOSTransferMangerService.registerDefaultCOSTransferManger(with: configure)
        }
        currentRegionName = "regionName"


Apple M1 适配

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

适配升级

  • 您使用的SDK版本好是多少?

5.8.4

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

Apple M1 MacBook Pro

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

Pod

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

在 M1 上,运行即可

core 的 Podspec 中的

  s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
  s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }

虽然可以解决 Intel 上 Xcode 12 模拟器的问题,但是 M1 上 arm 架构的模拟器没有得到实质解决(非 Rosetta 环境)。
希望尽快可以适配。

祝好。

上传过程中MD5校验与本地不一致,返回的etag长度超过32

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    上传文件QCloudCOSXMLUploadObjectRequest
  • 您使用的SDK版本好是多少?
    5.5.8
  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    模拟器,wifi环境
  • 使用更高版本的SDK是否解决了您的问题?
    已经用最高版本了
  • 这个问题是否和特定的网络环境有关系?
  • 您集成我们SDK的方式是什么?
    pod
  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

上传文件,需要分片时,会出现下面的错误。
当前网络环境为2 请求失败Error Domain=com.tencent.qcloud.networking Code=20004 "DataIntegrityError分片:上传过程中MD5校验与本地不一致,请检查本地文件在上传过程中是否发生了变化,建议调用删除接口将COS上的文件删除并重新上传,本地计算的 MD5 值:90d440f5e95ecc71f804749b4425ef67, 返回的 ETag值:8ad46ffa98077830d165a747f742e74f08a02ab3, Request id:NWM2NTRlMDJfZGEyOTVkNjRfNzMzMF85ZjJmNWM=" UserInfo={NSLocalizedDescription=DataIntegrityError分片:上传过程中MD5校验与本地不一致,请检查本地文件在上传过程中是否发生了变化,建议调用删除接口将COS上的文件删除并重新上传,本地计算的 MD5 值:90d440f5e95ecc71f804749b4425ef67, 返回的 ETag值:8ad46ffa98077830d165a747f742e74f08a02ab3, Request

version 6.2.3 'QCloudHttpMetrics.h' file not found

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

Xcode 13打的开发证书包,初始化时uuidsOfUserDevices_iCloudInit崩溃

App一启动就崩溃。Xcode连接真机调试不会崩溃,用开发证书打包安装运行就崩。

崩溃信息如下:

xception Type: EXC_GUARD
Exception Subtype: GUARD_TYPE_USER
Exception Message: namespc 18 reason_code 0x0000000000000002
Exception Codes: 0x6000000000000012, 0x0000000000000002
Exception Note: SIMULATED (this is NOT a crash)
Termination Reason: LIBSYSTEM; [2]

Triggered by Thread: 0

Thread 0 Crashed:
0 libsystem_kernel.dylib 0x1b81b0ae8 os_fault_with_payload + 8
1 libsystem_trace.dylib 0x19b5b71b8 _os_log_impl_flatten_and_send + 7716
2 libsystem_trace.dylib 0x19b5b3b74 _os_log + 148
3 libsystem_trace.dylib 0x19b5bbcb0 _os_log_fault_impl + 24
4 SyncedDefaults 0x1acd7bc90 -[SYDRemotePreferencesSource initWithApplicationID:storeID:shared:additionalSource:containerPath:storeType:].cold.1 + 52
5 SyncedDefaults 0x1acd6e210 -[SYDRemotePreferencesSource initWithApplicationID:storeID:shared:additionalSource:containerPath:storeType:] + 1400
6 Foundation 0x1824b05c8 -[NSUbiquitousKeyValueStore initWithBundleIdentifier:storeIdentifier:additionalStore:storeType:] + 348
7 Foundation 0x18249363c __41+[NSUbiquitousKeyValueStore defaultStore]_block_invoke + 24
8 libdispatch.dylib 0x1808c3670 _dispatch_client_callout + 20
9 libdispatch.dylib 0x1808c4f18 _dispatch_once_callout + 32
10 Foundation 0x18249ae38 +[NSUbiquitousKeyValueStore defaultStore] + 64
11 MyApp 0x103280c9c -[QCloudFCUUID uuidsOfUserDevices_iCloudInit] + 12405916 (QCloudFCUUID.m:0)
12 MyApp 0x1032801d0 -[QCloudFCUUID init] + 12403152 (QCloudFCUUID.m:48)
13 MyApp 0x103280174 __30+[QCloudFCUUID sharedInstance]_block_invoke + 12403060 (QCloudFCUUID.m:31)
14 libdispatch.dylib 0x1808c3670 _dispatch_client_callout + 20
15 libdispatch.dylib 0x1808c4f18 _dispatch_once_callout + 32
16 MyApp 0x103280154 +[QCloudFCUUID sharedInstance] + 12403028 (QCloudFCUUID.m:30)
17 MyApp 0x1032817d8 +[QCloudFCUUID uuidForDevice] + 12408792 (QCloudFCUUID.m:0)

使用cocopods集成QCloudCOSXML,在podfile中开启generate_multiple_pod_projects后,编译失败

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

上传过程中发生crash

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

QCloudCOSXML

  • 您使用的SDK版本好是多少?

5.7.7

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

iPhone 11, iOS 13.7, wifi

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

源码集成

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

上传过程中发生crash:子线程 52 crash,crash log和线程堆栈如下:
SIGABRT
discover > discover(55522,0x16c52b000) malloc: *** error for object 0x2812a8dd0: pointer being freed was not allocated

Can't not diagnosize the reason.

discover 0x105fa8c9c
__53-[QCloudCOSXMLUploadObjectRequest uploadOffsetBodys:]_block_invoke.342 QCloudCOSXMLUploadObjectRequest.m:491

discover 0x106004d08
__34-[QCloudHTTPRequestOperation main]_block_invoke QCloudHTTPRequestOperation.m:63

discover 0x105ff11f0
__41-[QCloudAbstractRequest __notifySuccess:]_block_invoke QCloudAbstractRequest.m:87
Called from: libdispatch

image

下载对象时,开启了断点续传,反复切换前后台,crash

问题定位在 QCloudCOSXMLDownloadObjectRequest.m 文件的 165 行

NSData *info =[NSJSONSerialization dataWithJSONObject:[dic copy] options:NSJSONWritingPrettyPrinted error:&parseError];

dic 的值为 nil, 在152行的时候,值可能就为nil

dic = [[NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil] mutableCopy];

希望尽快修复这个问题,谢谢

腾讯云和腾讯地图sdk引用相同文件冲突

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

duplicate symbol '_qimeiClassMethodRecord' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiUtil.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiUtil.o)
duplicate symbol '_qimeiAddClassOriginMethod' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiUtil.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiUtil.o)
duplicate symbol '_qimeiCheckClassMethodHasReplaced' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiUtil.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiUtil.o)
duplicate symbol '_QimeiCloudSettingKeyConifgVersion' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiCloudSetting.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiCloudSetting.o)
duplicate symbol '_QimeiStorageKeyIdfv' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiStorage.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiStorage.o)
duplicate symbol '_QimeiStorageKeyQimeiJson' in:
/Users/ll/Desktop/llr-ios/Pods/Tencent-MapSDK/sdk/QMapFoundationKit.framework/QMapFoundationKit(QimeiStorage.o)
/Users/ll/Desktop/llr-ios/Pods/QCloudCore/QCloudCore/Classes/BeaconFramework/QimeiSDK.framework/QimeiSDK(QimeiStorage.o)
ld: 6 duplicate symbols for architecture arm64

[__NSArray0 qcloud_modelToJSONData]: unrecognized selector sent to instance

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    万象优图

  • 您使用的SDK版本好是多少?
    最新的5.4.6

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    iPhoneX,iOS 11.3, Wi-Fi

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?
    通过 cocoapods

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

    最新版本cocoapods 使用 use_frameworks! 之后,所有被写到分类里的校验方法报错
    比如地区判断 [NSString matchesRegularExpression]
    找不到该方法

cocoapods 1.7.1 问题

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?

  • 您使用的SDK版本好是多少?

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]

  • 使用更高版本的SDK是否解决了您的问题?

  • 这个问题是否和特定的网络环境有关系?

  • 您集成我们SDK的方式是什么?

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。

问题描述

cocoapod 1.7.0 支持 Multiple Pod Projects,开启这个功能后在 Swift 工程中,编译会报无法找到头文件的错误,具体头文件为:

QualityDataUploader.m
#import "NSError+QCloudNetworking.h"

QCloudCOSXMLService.m
#import "UIDevice+QCloudFCUUID.h"

QCloudCOSXMLUploadObjectRequest.m
#import "QCloudSupervisoryRecord.h"
#import "QCloudUniversalPath.h"
#import "QCloudSandboxPath.h"
#import "QCloudMediaPath.h"
#import "QCloudBundlePath.h"

QCloudCOSTransferMangerService.m
#import "QCloudThreadSafeMutableDictionary.h"

上面所有头文件更改成 <QCloudCore/xxx.h>形式,编译成功!

例子

  • Swift 工程
  • cocoapods 版本 1.7.1
  • Podfile 文件内容
install! 'cocoapods',
    :generate_multiple_pod_projects => true,
    :incremental_installation => true

target 'Demo' do
  # Comment the next line if you don't want to use dynamic frameworks
  use_frameworks!

  # Pods for DesktopDemp
  pod 'QCloudCOSXML'
end

QCloudCOSXML 5.8.9版本[BeaconAsyncSocket cfstreamThread]崩溃

pod 'QCloudCOSXML', '~> 5.8.1',pod安装的是5.8.9版本。

是从5.8.1升级到5.8.9产生崩溃,影响用户非常多,iPad和iPhone用户均有,请处理。

堆栈如下:
Crashed: BeaconAsyncSocket-CFStream
0 libobjc.A.dylib 0x2d20 objc_release + 16
1 Foundation 0x434c4 -[_NSThreadPerformInfo dealloc] + 52
2 Foundation 0x3b67c __NSThreadPerformPerform + 192
3 CoreFoundation 0xb3468 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 24
4 CoreFoundation 0xc3598 __CFRunLoopDoSource0 + 204
5 CoreFoundation 0x5774 __CFRunLoopDoSources0 + 256
6 CoreFoundation 0xae48 __CFRunLoopRun + 768
7 CoreFoundation 0x1e194 CFRunLoopRunSpecific + 572
8 Foundation 0x17eac -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 232
9 MyApp 0x2c1200 +[BeaconAsyncSocket cfstreamThread] + 3868696
10 Foundation 0x64bdc NSThread__start + 792
11 libsystem_pthread.dylib 0x3348 _pthread_start + 116
12 libsystem_pthread.dylib 0x1948 thread_start + 8

overrides method warning!!!

ld: warning: instance method 'modelCustomWillTransformFromDictionary:' in category from /x/QCloudCOSXML(QCloudListAllMyBucketsResult+CustomModelTransfer.o) overrides method from class in /x/QCloudCOSXML.framework/QCloudCOSXML(QCloudListAllMyBucketsResult.o)

QCloudQCloudCOSXMLLoad 的load方法影响App启动

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    云服务

  • 您使用的SDK版本好是多少?
    5.9.3

  • 您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
    iPhone7

  • 使用更高版本的SDK是否解决了您的问题?
    已经是最新版本

  • 这个问题是否和特定的网络环境有关系?
    无关

  • 您集成我们SDK的方式是什么?
    pod集成

  • 如果您有一个完整的重现该问题的步骤或者一个小的例子帮我们重现问题,请贴在下面(同时请您注明详细的网络环境等相关上下文信息,如果有相关的Log也请您附注上)。
    与网络无关

QCloudQCloudCOSXMLLoad 的load方法会影响App的启动,根据我的测试在iPhone7上冷启动大概在主线程中耗时82ms,希望能延后load中初始化方法,或者交给开发者来初始化

BeaconAsyncSocket相关崩溃

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。
您使用的是我们的哪一种服务?
QCloudCOSXML

您使用的SDK版本好是多少?
5.9.9

您当前的设备环境是什么样子的?[真机/模拟器?, 系统版本,网络环境....]
iPhone13,, iOS 15.1.1, wifi  和机型没什么关系,别的机型也有

这个问题是否和特定的网络环境有关系?

您集成我们SDK的方式是什么?
pod

备注:iOS15以下的系统没这个问题

CrashDoctor Diagnosis: Attempted to dereference garbage pointer 0x20.

Thread 31 Crashed:
0 libobjc.A.dylib 0x000000019a0bebf0 objc_release
1 Foundation 0x00000001832233e4 __NSThreadPerformPerform
2 CoreFoundation 0x0000000181a7f020 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION
3 CoreFoundation 0x0000000181a8fce0 __CFRunLoopDoSource0
4 CoreFoundation 0x00000001819ca054 __CFRunLoopDoSources0
5 CoreFoundation 0x00000001819cf7f4 __CFRunLoopRun
6 CoreFoundation 0x00000001819e33b8 CFRunLoopRunSpecific
7 Foundation 0x00000001831fe354 -[NSRunLoop(NSRunLoop) runMode:beforeDate:]
8 FXApp 0x0000000104ae08b4 +[BeaconAsyncSocket cfstreamThread]
9 Foundation 0x000000018324e36c NSThread__start
10 libsystem_pthread.dylib 0x00000001f25e69a4 _pthread_start

QCloudNewCOSV4 和 FCUUID 编译报错

为了帮助我们更好的解决您的问题,请您先回答下面的几个问题。

  • 您使用的是我们的哪一种服务?
    QCloudNewCOSV4

  • 您使用的SDK版本好是多少?
    5.3.2

  • 使用更高版本的SDK是否解决了您的问题?
    我们必须使用v4 不能使用xml。xml没有这个问题。

  • 您集成我们SDK的方式是什么?
    cocoapods

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.