{"id":19139900,"url":"https://github.com/arcblock/arcblock-ios-sdk","last_synced_at":"2025-10-25T12:20:47.739Z","repository":{"id":34718975,"uuid":"132065146","full_name":"ArcBlock/arcblock-ios-sdk","owner":"ArcBlock","description":"Used to integrate iOS apps with ArcBlock Platform.","archived":false,"fork":false,"pushed_at":"2025-01-21T09:10:34.000Z","size":197527,"stargazers_count":5,"open_issues_count":3,"forks_count":2,"subscribers_count":24,"default_branch":"master","last_synced_at":"2025-05-06T23:15:28.686Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ArcBlock.png","metadata":{"files":{"readme":"README.CN.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-04T00:41:43.000Z","updated_at":"2025-01-21T09:10:37.000Z","dependencies_parsed_at":"2024-05-06T09:40:30.712Z","dependency_job_id":"5675a755-b233-421d-8107-3e15590042c7","html_url":"https://github.com/ArcBlock/arcblock-ios-sdk","commit_stats":null,"previous_names":[],"tags_count":104,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcBlock%2Farcblock-ios-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcBlock%2Farcblock-ios-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcBlock%2Farcblock-ios-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ArcBlock%2Farcblock-ios-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ArcBlock","download_url":"https://codeload.github.com/ArcBlock/arcblock-ios-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252782835,"owners_count":21803410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T07:15:37.265Z","updated_at":"2025-10-16T22:26:16.045Z","avatar_url":"https://github.com/ArcBlock.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ArcBlock iOS SDK\n\n[![Build Status](https://travis-ci.com/ArcBlock/arcblock-ios-sdk.svg?token=qqAgewfANpc6odwwyKWa\u0026branch=master)](https://travis-ci.com/ArcBlock/arcblock-ios-sdk)\n[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)\n\u003c!-- [![Version](https://img.shields.io/cocoapods/v/ArcBlockSDK.svg?style=flat)](http://cocoapods.org/pods/ArcBlockSDK)\n[![License](https://img.shields.io/cocoapods/l/ArcBlockSDK.svg?style=flat)](http://cocoapods.org/pods/ArcBlockSDK)\n[![Platform](https://img.shields.io/cocoapods/p/ArcBlockSDK.svg?style=flat)](http://cocoapods.org/pods/ArcBlockSDK) --\u003e\n\n欢迎使用ArcBlock iOS SDK。它将会帮助你轻松顺利地将你的iOS应用接入ArcBlock平台。此SDK基于[Apollo](https://github.com/apollographql/apollo-ios)项目开发。\n\n## 开发环境要求\n* iOS 11或以上版本\n* XCode 9或以上版本\n\n## 安装\n\n### CocoaPods\n您可以通过[CocoaPods](http://cocoapods.org)安装ArcBlock iOS SDK，添加以下代码到您的`Podfile`：\n\n```ruby\npod 'ArcBlockSDK', :git =\u003e 'https://github.com/ArcBlock/arcblock-ios-sdk.git'\npod 'Apollo', :git =\u003e 'https://github.com/ArcBlock/apollo-ios.git'\n```\n\n再运行`pod install`即可。\n\n### XCode文件模板(可选)\n\nArcBlockSDK还提供了一系列Xcode文件模板。您可以使用它们来快速创建一些可运行的代码。安装这些模板只需要运行以下命令即可：\n\n``` bash\nwget http://ios-docs.arcblock.io/Templates.tar.gz; \\\ntar -xvf Templates.tar.gz --strip-components=1 --directory ~/Library/Developer/Xcode/Templates/File\\ Templates/; \\\nrm Templates.tar.gz\n```\n\n## 使用说明\n\n如果您想快速入门，请阅读我们的[快速入门文档](https://github.com/ArcBlock/arcblock-ios-sdk/blob/master/QuickStart.CN.md)。这篇文档将会为您介绍最简单的连接到ArcBlock平台的方法。\n\n如果您希望更灵活地使用我们的SDK，我们也准备了一些底层部件的相关使用说明。您可以阅读[数据绑定](https://github.com/ArcBlock/arcblock-ios-sdk/blob/master/DataBinding.CN.md), [客户端](https://github.com/ArcBlock/arcblock-ios-sdk/blob/master/Client.CN.md)文档查看相关使用说明。另外也可以查看我们的[类参考](http://ios-docs.arcblock.io/)\n\n## 常见问题\n\n### Q：我可以用这个SDK做什么？\n\n此SDK将帮助您接入ArcBlck的OCAP服务。您可以在OCAP服务的[文档](https://ocap.arcblock.io/docs)中查看它提供的功能和接口，并可以在[OCAP Playground](https://ocap.arcblock.io/docs)中探索和调试。\n\n### Q：我必须在OCAP Playground中编写GraphQL语句吗？\n\nOCAP service提供基于GraphQL接口，所以您需要编写GraphQL语句来和OCAP service通信。您可以使用任何一个编辑器来编写，但OCAP Playground提供了一些辅助功能来提高您的编写效率，减少错误。此外，您需要在Playbook中生成项目所需的Swift代码，而Playground中的语句可以非常轻松地被转换到Playbook中。\n\n### Q：我必须要在Playbook中生成Swift代码吗？\n\n是的，生成出的Swift代码是您的GraphQL语句的包装类。使用这些包装类可以确保在运行时的类型安全。此设计沿用自此SDK的基础[Apollo]((https://github.com/apollographql/apollo-ios))项目。与Apollo的设计不同之处在于，您不需要自己在本地运行生成代码的命令，因为这个步骤已经被整合到Playbook中了。当您在Playbook中整理好需要用的语句之后，直接可以在其中生成Swift代码。\n\n### Q：我收到报错：\"Code Generation Error: Apollo does not support anonymous operations\" error when generating codes. 这是为什么？\n\n这表示您需要给您的语句起一个名字。例如，以下是一个匿名的语句：\n```graphql\n{\n  richestAccounts {\n    data {\n      address\n      balance\n    }\n  }\n}\n\n```\n而以下是一个命名的语句：\n```graphql\nquery RichestAccounts {\n  richestAccounts {\n    data {\n      address\n      balance\n    }\n  }\n}\n```\n\n我们要求所有语句都是命名语句，否则无法生成Swift代码。\n\n### Q：我必须安装Xcode文件模板吗？\n\n不，这一步是可选的。文件模板可以让您更快地创建一个ViewController或View，并让他们和我们的SDK一起工作。这些模板都是基于一些ViewController或View的基类的，如ABSDKTableViewController，您可以不使用模板而是手动创建一个子类，以达到同样的效果。\n\n### Q：我不想继承那些UI基类，他们耦合度太高太不灵活了，我想自己写，需要怎么做？\n\n完全没有问题。那些UI基类是为了让大家快速入门而设计的，如果您已经有了一定的了解，您可以自己设计实现UI，而只使用SDK提供的部件来处理数据，详情请参考[数据绑定](https://github.com/ArcBlock/arcblock-ios-sdk/blob/master/DataBinding.CN.md)相关文档。\n\n### Q：SDK支持什么类型的GraphQL操作？\n\n目前，我们支持查询和订阅，更改操作将在稍后支持。详情请参考[OCAP service文档](https://ocap.arcblock.io/docs)。\n\n## License\n\nArcBlockSDK在MIT许可下可用。有关详细信息，请参阅LICENSE文件。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcblock%2Farcblock-ios-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farcblock%2Farcblock-ios-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farcblock%2Farcblock-ios-sdk/lists"}