首先,我司也算是做 SaaS 的,所以除了通用平台 App 外,还有很多客户定制需求。比如改改 App Icon / App Name 什么的都是常见的定制需求。
当然也需要改包名 applicationId,然后就要修改微信等第三方工具的 AppKey / AppSecret 之类。
然而这些都可以通过一个配置文件解决,Jenkins 直接可以搞定。
但是!微信!!就是 TMD 巨坑!!!
如果你想要分享结果回调,或者需要微信登录功能,你就必须在指定包名路径 (applicationId) 下新建 wxapi 目录,并在该目录下新建 WXEntryActivity 类,详见微信 Android 接入指南官方文档。
问题就在这里了,每次 Jenkins 搞完,还得手动去修改定制代码里的 WXEntryActivity 包路径。
本库就是为了解决这个问题而实现的。
我参考了 ButterKnife 的实现方式,查阅了很多 AbstractProcessor 的教程,还有一系列其他类似实现,最终折腾出来这个库。
可能是姿势不对,相关资料并不好找,本库折腾出来也算是不容易。
// 1.添加jitpack仓库
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
// 2.添加项目依赖(last-version替换为最新版本号)
dependencies {
implementation 'com.github.ParfoisMeng.WXCallbackFix:annotation:last-version'
kapt 'com.github.ParfoisMeng:WXCallbackFix:last-version'
}
- 代码
// 1. 依然需要你先按微信的要求,在通用的包名路径下新建 wxapi 目录,并在该目录下新建 WXEntryActivity
// 此段示例代码使用的是 Umeng, 所以继承的是 WXCallbackActivity
// 2. 在 WXEntryActivity 上添加注解 @WXCallbackFix("包名路径"),示例如下:
@WXCallbackFix(BuildConfig.APPLICATION_ID + ".wxapi")
public class WXEntryActivity extends WXCallbackActivity {
}
// 3. Build -> ReBuild Project
// 等待 Build 完成,对应 Module 的 build/generated/source/kapt 路径下将生成新的符合指定包名路径的 WXEntryActivity.
- 添加判断条件,如果已有,就不再创建 - 1.0.1
- 初版发布 - 1.0.0
- 暂无
劳烦各位大佬给个Star让我出去好装B行嘛!
已使用996 License,为程序员发声,为自己发声。