diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4c61f597..1f750eac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Changelog
 
+## 7.12.0 (2023-12-11)
+* 对象存储,支持归档直读存储
+* 对象存储,批量操作支持自动查询 rs 服务域名
+
 ## 7.11.0 (2023-09-05)
 * 支持代理
 
diff --git a/src/Qiniu/Config.php b/src/Qiniu/Config.php
index e506f8b5..75dfc949 100644
--- a/src/Qiniu/Config.php
+++ b/src/Qiniu/Config.php
@@ -4,7 +4,7 @@
 
 final class Config
 {
-    const SDK_VER = '7.11.0';
+    const SDK_VER = '7.12.0';
 
     const BLOCK_SIZE = 4194304; //4*1024*1024 分块上传块大小,该参数为接口规格,不能修改
 
diff --git a/tests/Qiniu/Tests/BucketTest.php b/tests/Qiniu/Tests/BucketTest.php
index 220d2f29..04676986 100755
--- a/tests/Qiniu/Tests/BucketTest.php
+++ b/tests/Qiniu/Tests/BucketTest.php
@@ -193,7 +193,7 @@ public function testBucketLifecycleRule()
         $this->assertEquals(self::$bucketLifeRulePrefix, $rule["prefix"]);
         $this->assertEquals(80, $rule["delete_after_days"]);
         $this->assertEquals(70, $rule["to_line_after_days"]);
-        //$this->assertEquals(71, $rule["to_archive_ir_after_days"]);
+        $this->assertEquals(71, $rule["to_archive_ir_after_days"]);
         $this->assertEquals(72, $rule["to_archive_after_days"]);
         $this->assertEquals(74, $rule["to_deep_archive_after_days"]);
 
@@ -226,7 +226,7 @@ public function testBucketLifecycleRule()
         $this->assertEquals('update-' . self::$bucketLifeRulePrefix, $rule["prefix"]);
         $this->assertEquals(90, $rule["delete_after_days"]);
         $this->assertEquals(75, $rule["to_line_after_days"]);
-        //$this->assertEquals(78, $rule["to_archive_ir_after_days"]);
+        $this->assertEquals(78, $rule["to_archive_ir_after_days"]);
         $this->assertEquals(80, $rule["to_archive_after_days"]);
         $this->assertEquals(85, $rule["to_deep_archive_after_days"]);
 
@@ -561,7 +561,7 @@ public function testSetObjectLifecycle()
         list($ret, $error) = self::$bucketManager->stat(self::$bucketName, $key);
         $this->assertNull($error);
         $this->assertNotNull($ret['transitionToIA']);
-        //$this->assertNotNull($ret['transitionToArchiveIR']);
+        $this->assertNotNull($ret['transitionToArchiveIR']);
         $this->assertNotNull($ret['transitionToARCHIVE']);
         $this->assertNotNull($ret['transitionToDeepArchive']);
         $this->assertNotNull($ret['expiration']);
@@ -594,7 +594,7 @@ public function testSetObjectLifecycleWithCond()
         list($ret, $error) = self::$bucketManager->stat(self::$bucketName, $key);
         $this->assertNull($error);
         $this->assertNotNull($ret['transitionToIA']);
-        //$this->assertNotNull($ret['transitionToArchiveIR']);
+        $this->assertNotNull($ret['transitionToArchiveIR']);
         $this->assertNotNull($ret['transitionToARCHIVE']);
         $this->assertNotNull($ret['transitionToDeepArchive']);
         $this->assertNotNull($ret['expiration']);