APP-IOS接入微信登录

2020-11-16 · xiejiahe

基于Flutter。

由于笔者不是专业的APP开发,在这方面较弱,在接入微信登录遇到不少坑,基本都是配置问题,在这里记录下过程。


xcode: 12.0.1 mac: 10.15.5

IOS接入微信登录必须具备以下几点(缺一不可):

  • Universal Links (微信用于拉取APP)
  • 一个域名,必须支持Https
  • 微信第三方开放平台

1、新建一个文件名叫 apple-app-site-association 没有任何后缀, 并写入以下配置

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "1UPF2ET6AP.com.example.app.scp",
                "paths": [ "/help/*" ]
            }
        ]
    }
}

需要修改 appIDpaths

  • appID由 teamId.Bundle ID组成, teamId 在APPLE开发者中心可以找到
  • paths (help是域名下的目录可以任意修改,后面必须带通配符,因为微信会随机在后面带字符串)

2、将文件放在域名根目录下。

打开你的域名比如 https://www.example.com/apple-app-site-association 如果文件被下载说明这步没问题。

3、使用 safari 浏览器打开 https://www.example.com/help/123 前面修改为你的域名,help 是前面在 paths 指定的, 123是乱写的随机字符串,打开后如果出现类似下面说明正常:

4、打开微信开放平台,找到IOS配置,下面必须全部都要配置

5、打开APPLE开发者中心,找到 Associated Domains 这个选项将它开启。

XCODE配置

1、使用 XCODE 打开 Runner.xcodeproj 文件。

如图配置 Domains, applinks 前缀是固定的,后面就前面配置的 Universal Links

2、配置 LSApplicationQueriesSchemes。

这个干嘛用的呢,主要是添加微信的 scheme 到白名单上去,这一步少不了,如果不添加没有办法知道微信是否已安装(尽管已安装了)。

找到 info.plist 文件, 将下面这一块内容添加到 dict 节点的末位,如下:

<key>LSApplicationQueriesSchemes</key>
<array>
  <string>wechat</string>
  <string>weixin</string>
  <string>weixinULAPI</string>
</array>

如果不知道这个文件在哪里,直接在当前工程下搜索这个文件, 一定有。

总结

接入这微信登录费了不少心思,少一步就要找各种问题进行排除,太蛋疼,还好终于搞定了,祝后面的小老弟们一切顺利哈。

参考

Flutter
原创文章,转载请注明出处。