Metadata-Version: 2.1
Name: OKAppleAPI
Version: 1.2.7
Summary: OK App Store Connect API
Home-page: https://github.com/shede333/OKAppleAPI
Author: shede333
Author-email: 333wshw@163.com
License: UNKNOWN
Keywords: ios ok apple appstore app store connect api appstoreconnectapi
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: ~=3.7
Description-Content-Type: text/markdown
Requires-Dist: PyJWT (~=2.0)
Requires-Dist: PyMobileProvision (~=1.4)
Requires-Dist: requests (~=2.20)

# OK App Store Connect API

仅支持 >=Python3.7

Apple官方API文档：<https://developer.apple.com/documentation/appstoreconnectapi>

同时，也借鉴了 [appstoreconnect库](https://pypi.org/project/appstoreconnect/) 的设计；

## 安装

```shell
pip3 install OKAppleAPI
```

## 功能

profile，即mobileprovision文件；  
device，即设备（iPhone、iPad等），包括设备的name、UDID信息；

* 获取profile列表；
* 删除一个profile；
* 创建一个profile；
* 获取bundleId列表；
* 获取Certificate证书信息列表；
* 获取device列表；
* 注册一个新device

## 使用

```python

from okappleapi.apple_api_agent import APIAgent, TokenManager
from okappleapi.models import *
from pathlib import Path

# key参数 支持key文件内容，或者key文件路径（即*.p8文件路径）
token_manager = TokenManager(issuer_id='xxx', key_id='xxx', key='xxx')
# TokenManager.from_json(key_path)  # 读取配置文件来创建对象

agent = APIAgent(token_manager)

# 获取certificates列表
cer_list = agent.list_certificates()
for tmp_cer in cer_list:
    print(f'{tmp_cer.id}, {tmp_cer.attributes.__dict__}')

# 获取bundle_id列表
bundle_id_list = agent.list_bundle_id()
for tmp_id in bundle_id_list:
    print(f'{tmp_id.id}, {tmp_id.attributes}')

# 获取device设备列表
device_list = agent.list_devices()
for tmp_device in device_list:
    print(tmp_device.__dict__)

# 获取profile列表
profile_list = agent.list_profiles()
for index, tmp_profile in enumerate(profile_list, start=1):
    print(f"profile: {index}. {tmp_profile.id}, {tmp_profile.attributes.name}")

# 创建profile
attrs = ProfileCreateReqAttrs('test_hello')
result = agent.create_a_profile(attrs, bundle_id=bundle_id_list[0], devices=device_list, certificates=cer_list)
print(f'create profile: {result.id}, {result.attributes.name}')

# 删除刚创建的profile
agent.delete_a_profile(result.id)

# 添加一个iOS新设备
device_name = 'xxx'
device_udid = 'xxx'
result = agent.register_a_device(DeviceCreateReqAttrs(device_name, device_udid))
print(result)


# 更新一个profile
from okappleapi.ok_agent import OKProfileManager

profile_name = 'test_hello'
bundle_id_str = 'com.oksw.hellotest'
ok_agent = OKProfileManager.from_token_manager(token_manager)
ok_agent.update_profile(profile_name, bundle_id_str=bundle_id_str)


```

## 待完成

1. 处理所有时间的时区问题；

