在macOS Big Sur(11.4)编译Hummer

最近在macOS Big Sur(11.4)编译`Hummer`

Android版本编译:

//代码版本 2021-07-12

$ git clone https://github.com/didi/Hummer.git

$ cd Hummer

$ cd android

$ bash gradlew clean build 

# Android Studio 打开当前目录下的项目即可

如果报错如下:

* What went wrong:
A problem occurred configuring project ':hummer-core'.
> ABIs [arm64-v8a] are not supported for platform. Supported ABIs are [armeabi-v7a, x86].

参考 ABIs [arm64-v8a] are not supported for platform. Supported ABIs are [armeabi-v7a, x86].

如果运行测试用例时报错如下:

2021-07-12 10:32:56.704 11116-11116/com.didi.hummer.demo E/log: error java.lang.ClassNotFoundException: Didn't find class "com.facebook.jni.HybridData$Destructor" on path: DexPathList[[dex file "/data/data/com.didi.hummer.demo/code_cache/.overlay/base.apk/classes2.dex", zip file "/data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/base.apk"],nativeLibraryDirectories=[/data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/lib/x86, /data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
2021-07-12 10:32:56.705 11116-11116/com.didi.hummer.demo A/idi.hummer.dem: java_vm_ext.cc:577] JNI DETECTED ERROR IN APPLICATION: JNI NewGlobalRef called with pending exception java.lang.ClassNotFoundException: Didn't find class "com.facebook.jni.HybridData$Destructor" on path: DexPathList[[dex file "/data/data/com.didi.hummer.demo/code_cache/.overlay/base.apk/classes2.dex", zip file "/data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/base.apk"],nativeLibraryDirectories=[/data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/lib/x86, /data/app/~~ayUY1JA739Wo5kLM7hjUuQ==/com.didi.hummer.demo-7LKAxXsQNZuXWiS7L2dZwg==/base.apk!/lib/x86, /system/lib, /system_ext/lib]]
    java_vm_ext.cc:577] (Throwable with no stack trace)
    java_vm_ext.cc:577] 
    java_vm_ext.cc:577]     in call to NewGlobalRef
    java_vm_ext.cc:577]     from java.lang.String java.lang.Runtime.nativeLoad(java.lang.String, java.lang.ClassLoader, java.lang.Class)

解决方案为在项目中增加:

implementation 'com.facebook.fbjni:fbjni:0.0.2'

IOS版本编译:

//代码版本 2021-07-12

$ git clone https://github.com/didi/Hummer.git

$ cd Hummer

$ cd iOS

$ sudo gem install cocoapods

$ pod install

# 使用 XCode 12.5.1 打开当前目录下的 Example.xcworkspace

参考链接


WordPress绑定多个域名,多个域名可同时独立访问

在未修改wp-config.php之前WordPress博客默认是不能实现多个域名独立访问的,即使我们绑定了多个域名,访问时也会自动跳转到安装站点时默认的域名,就连同一个域名带www和不带www都是自动跳转到默认域名。(这一点的不便之处深有体会,我找了几天才找到这个解决办法)

那如果我们需要WordPress绑定多个域名,并且都能度独立访问怎么办?

要想实现WordPress绑定多个域名,并且都能度独立访问也不难。我们只需修改wp-config.php文件即可,在站点根目录找到“wp-config.php”文件,然后根据自己需要添加下面任意一段代码即可。

一、实现任意域名访问

说明:在wp-config.php文件中加下面代码,就能实现绑定解析的域名都能正常访问博客,而且不会串联到其他域名。

define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']); 
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

二、限制特定域名访问

也可以只指定某些域名可以访问。注意把`$domain = array('linqingmaoer.cn', 'www.linqingmaoer.cn');`括号内的域名改成你自己需要绑定的域名。这样就可以设置成你添加的这几个域名能正常访问。而其他未添加的域名则无法访问。

$domain = array('linqingmaoer.cn', 'www.linqingmaoer.cn');
if(in_array($_SERVER['HTTP_HOST'], $domain)) {
    define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
    define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
}

2. 在完成上面的工作以后,你的网站已经可以实现多域名访问了,但是还是有一个问题,那就是静态资源,在wordpress上传的图片插入文章里面,地址是固定的,修改域名以后,并不会修改图片的域名,所以还需要修改静态文件地址,使用以下代码可以解决:

define( 'WP_CONTENT_URL', '/wp-content');

把这段代码加入上面的代码下面即可。

注意上述代码需要添加在

/** Sets up WordPress vars and included files. */
require_once(ABSPATH . 'wp-settings.php');

的前面。

注意,上述配置之后,可能会出现跨域相互访问问题,需要配置跨域访问属性,如下:
指定多个域名(http://client1.xxx.comhttp://client2.xxx.com等)跨域访问,则只需在server.php文件头部添加如下代码:

$origin = isset($_SERVER['HTTP_ORIGIN'])? $_SERVER['HTTP_ORIGIN'] : '';  
  
$allow_origin = array(  
    'http://client1.xxx.com',  
    'http://client2.xxx.com'  
);  
  
if(in_array($origin, $allow_origin)) {  
    header('Access-Control-Allow-Origin:'.$origin);       
}

参考链接