跳到主要内容

劝退指南

注意

开始之前, 请详细阅读本篇劝退指南, 很有可能这个仓库并不适合你

本仓库旨在帮助 Unity 开发者更好的处理多渠道问题时, 提供更好的解题思路, 避免一些常见的错误

  • 不会涉及如何使用 xxx SDK
    • 请移步对应的官方文档
  • 虽然会提供思路和代码, 但是仍然需要你有一些 Native 相关知识
    • Android Studio 相关内容 (gradle, java 等)
    • iOS Xcode 相关内容 (object-c, c++ 或 swfit 等)
    • 推荐了解 self host Unity Package Manager 如何架设
  • 你仍然需要对自己项目使用到 SDK 进行封装
    • 本仓库无法统一所有 SDK 接入的标准, 因此你仍需 hard work
  • 作者以从公司 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 无法完成编译

渠道引用
国内AC->1.0
海外BC->2.0

虽然可以自行拆包, 二次封装, 终归不是一个好的方案, 不过好在对于 iOS 平台来说, 一个渠道对应一个 Xcode 工程, 一般都是可接受的

信息

涉及到 xcode 如何 copy target 相关的 ruby 代码也会一并放出

但如果你有更好的办法可以解决 pod 引用冲突的问题, 欢迎友善交流或者 pr