Skip to content
This repository has been archived by the owner on Oct 21, 2023. It is now read-only.

uappkit/uapp-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

已通过 uapp add ios 创建工程

代码发布位置: https://gitee.com/uappkit/platform

此工程将存档,不再维护,未来将移除。

uapp iOS 离线工程

iOS 的工程化一直都不太方便,通常都是用的 CocoaPods,但不适合DCloud 离线SDK 的发布形式。经过我们在产品中的不断实践,最终选择了 XCodeGen。

工程目录结构

.
├── Main
│   ├── App-Prefix.pch
│   ├── AppDelegate.h
│   ├── AppDelegate.m
│   ├── Pandora
│   ├── Resources
│   ├── ViewController.h
│   ├── ViewController.m
│   └── main.m
├── README.md
├── SDKs  # gitignore, 存放官方发布离线打包的SDK,或其他依赖的SDK, Libs等
│   ├── DouyinPlugin  # 参照示例,第三方插件
│   ├── FFMpegPlugin  # 参照示例,定制插件
│   ├── README.md
│   ├── SDK -> $HOME/.uappsdk/ios/SDK  # 软连接: ln -sf $HOME/.uappsdk/ios/SDK SDK
│   └── ijkplayer -> $HOME/.uappsdk/ios/ijkplayer
├── config
│   ├── base.yml
│   ├── custom.yml
│   ├── uapp_dev.yml
│   └── uapp_release.yml
├── manifest.json  # 指向 HBuilderX 工程里 manifest.json 的软连接
├── out            # gitignore, `uapp publish debug` 生成打包基座,并同步给 HBuilderX
│   └── uapp_debug.xcarchive
├── project.yml
└── uapp.xcodeproj

下载 ios 离线工程模板

git clone https://github.com/uappkit/uapp-ios.git

# 创建 SDK 软连接
cd uapp-ios
ln -sf $HOME/.uappsdk/ios/SDK SDKs/SDK

XcodeGen

xcodegen 是用来生成 xcode 工程文件的,使用 xcodegen 便于维护,自动化集成。

通过 brew 安装

brew install xcodegen

通过 Make 安装

git clone https://github.com/yonaskolb/XcodeGen.git
cd XcodeGen
make install

uapp 工程配置通过 xcodegen 来维护,配置文件结构如下:

.
├── project.yml # xcodegen 配置文件入口
└── config
   ├── base.yml # 基础配置,不建议修改
   ├── custom.yml # 自定义配置,可以添加修改
   ├── uapp_dev.yml # 用于 uapp-dev 开发阶段的配置
   └── uapp_release.yml # 用于 uapp-release 正式发布的配置

重点说明

不要直接修改工程文件,第一次使用,或者修改 xcodegen 配置后,一定要执行:

xcodegen

会重新生成 xcode 的工程文件 uapp.xcodeproj。如果一定要修改工程文件,那就记住不要再使用 xcodegen 命令了,否则工程文件的修改都会被覆盖掉。

命令行可通过 open uapp.xcodeproj 打开 xcode 工程。

SDK更新注意事项

apple IAP 内购出错:

  • SDK/Bundles/PandoraApi.bundle/feature.plist, Payment 添加 appleiap: PGPlatbyIAP

苹果登录 Sign In with Apple

1、获取到 team_id, client_id, key_id 填入到 jwt/config.json 中,如下:

{
    "team_id": "3DSM494K6L",
    "client_id": "com.code0xff.uapp.login",
    "key_id": "3C7FMSZC8Z"
}

2、登录苹果开发者账号,创建并下载签名文件, 改名为jwt/key.txt。

3、运行 uapp info 命令查看 JWT Token

详细教程可参考: http://help.jwt.code0xff.com

如何引入子工程

工程内包含其他子工程的,可以参照 IJKMediaPlayer 配置

projectReferences dependencies 官方用 target:

    - target: IJKMediaPlayer/IJKMediaFrameworkWithSSL
      embed: true

但这么用会出现一个 BUG, 当 targets 为多个时, 比如这里的 uapp-dev / uapp-release 两个时会出现 bug,修改 xcode 工程时会丢失这个引用。

看这里也有人反馈过,但貌似都没解决:yonaskolb/XcodeGen#933

经过摸索, 可以通过配置 framework + implicit: true 解决, 如下:

    - framework: IJKMediaFrameworkWithSSL.framework
      implicit: true
      embed: true

License

The Apache License 2. Please see License File for more information.

Releases

No releases published

Packages

No packages published