劝退指南
注意
开始之前, 请详细阅读本篇劝退指南, 很有可能这个仓库并不适合你
本仓库旨在帮助 Unity 开发者更好的处理多渠道问题时, 提供更好的解题思路, 避免一些常见的错误
- 不会涉及如何使用
xxx
SDK- 请移步对应的官方文档
- 虽然会提供思路和代码, 但是仍然需要你有一些 Native 相关知识
- Android Studio 相关内容
(gradle, java 等)
- iOS Xcode 相关内容
(object-c, c++ 或 swfit 等)
- 推荐了解 self host Unity Package Manager 如何架设
- Android Studio 相关内容
- 你仍然需要对自己项目使用到 SDK 进行封装
- 本仓库无法统一所有 SDK 接入的标准, 因此你仍需
hard work
- 本仓库无法统一所有 SDK 接入的标准, 因此你仍需
- 作者以从公司 N 个项目, 如何复用代码的角度作为出发点
- 因此, 如果你无法自行区分这里的设计, 本仓库可能不适合你
- 涉及到 iOS Native 事件回调 C# 的相关内容, 要求项目必须使用
IL2Cpp
- 如果你的项目没有使用
IL2Cpp
, 请自行解决
- 如果你的项目没有使用
一些遗憾
目前整体用下来, Andorid 方面的多渠道问题, 可以解决的相对完美一些, 一个 Android Studio 工程, 可以生成 N 个渠道的 apk/aab
但是, 在 iOS 上, 由于 pod 本身的技术限制, 导致无法做到类似 Android 那样, 直接生成 N 个渠道的 ipa
注意
iOS 不像 Android 会有那么多渠道, 但是仍然会有 国内/海外
的区分
iOS 这里主要需要解决 Target 复制, 多份 info.plist 配置问题, 但很遗憾, 在碰到下面 pod 引用关系时, 就会造成 xcode 无法完成编译
渠道 | 包 | 引用 |
---|---|---|
国内 | A | C->1.0 |
海外 | B | C->2.0 |
虽然可以自行拆包, 二次封装, 终归不是一个好的方案, 不过好在对于 iOS 平台来说, 一个渠道对应一个 Xcode 工程, 一般都是可接受的
信息
涉及到 xcode 如何 copy target 相关的 ruby
代码也会一并放出
但如果你有更好的办法可以解决 pod 引用冲突的问题, 欢迎友善交流或者 pr