diff --git a/Gemfile.lock b/Gemfile.lock index b96b6519..d11b8c6b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -15,8 +15,8 @@ GEM artifactory (3.0.15) atomos (0.1.3) aws-eventstream (1.1.1) - aws-partitions (1.436.0) - aws-sdk-core (3.113.0) + aws-partitions (1.445.0) + aws-sdk-core (3.114.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.239.0) aws-sigv4 (~> 1.1) @@ -24,7 +24,7 @@ GEM aws-sdk-kms (1.43.0) aws-sdk-core (~> 3, >= 3.112.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.93.0) + aws-sdk-s3 (1.93.1) aws-sdk-core (~> 3, >= 3.112.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.1) @@ -74,8 +74,8 @@ GEM commander-fastlane (4.4.6) highline (~> 1.7.2) concurrent-ruby (1.1.8) + connection_pool (2.2.5) declarative (0.0.20) - declarative-option (0.1.0) digest-crc (0.6.3) rake (>= 12.0.0, < 14.0.0) domain_name (0.5.20190701) @@ -85,19 +85,25 @@ GEM escape (0.0.4) ethon (0.12.0) ffi (>= 1.3.0) - excon (0.79.0) - faraday (1.3.0) + excon (0.80.1) + faraday (1.4.0) + faraday-excon (~> 1.0) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) faraday-cookie_jar (0.0.7) faraday (>= 0.8.0) http-cookie (~> 1.0.0) + faraday-excon (1.0.0) + excon (>= 0.27.4) faraday-net_http (1.0.1) + faraday-net_http_persistent (1.0.3) + net-http-persistent (>= 3.1) faraday_middleware (1.0.0) faraday (~> 1.0) fastimage (2.2.3) - fastlane (2.179.0) + fastlane (2.180.1) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) artifactory (~> 3.0) @@ -161,7 +167,7 @@ GEM rexml signet (~> 0.14) webrick - google-apis-iamcredentials_v1 (0.2.0) + google-apis-iamcredentials_v1 (0.3.0) google-apis-core (~> 0.1) google-apis-storage_v1 (0.3.0) google-apis-core (~> 0.1) @@ -179,7 +185,7 @@ GEM google-cloud-core (~> 1.2) googleauth (~> 0.9) mini_mime (~> 1.0) - googleauth (0.16.0) + googleauth (0.16.1) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -197,7 +203,7 @@ GEM jwt (2.2.2) memoist (0.16.2) mini_magick (4.11.0) - mini_mime (1.0.3) + mini_mime (1.1.0) minitest (5.14.4) molinillo (0.6.6) multi_json (1.15.0) @@ -205,17 +211,19 @@ GEM nanaimo (0.3.0) nap (1.1.0) naturally (2.2.1) + net-http-persistent (4.0.1) + connection_pool (~> 2.2) netrc (0.11.0) os (1.1.1) plist (3.6.0) public_suffix (4.0.6) rake (13.0.3) - representable (3.0.4) + representable (3.1.1) declarative (< 0.1.0) - declarative-option (< 0.2.0) + trailblazer-option (>= 0.1.1, < 0.2.0) uber (< 0.2.0) retriable (3.1.2) - rexml (3.2.4) + rexml (3.2.5) rouge (2.0.7) ruby-macho (1.4.0) ruby2_keywords (0.0.4) @@ -234,6 +242,7 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) + trailblazer-option (0.1.1) tty-cursor (0.7.1) tty-screen (0.8.1) tty-spinner (0.9.3) diff --git a/VERSIONING.md b/VERSIONING.md index 389dcb44..c9d788ad 100644 --- a/VERSIONING.md +++ b/VERSIONING.md @@ -21,10 +21,11 @@ ## OTA release channels - * `MAJOR-environment`. Environments include `production`, `staging` and `development`. + * `MAJOR-environment`. Environments include `release`, `candidate` and `development`. ## Major versions mapping to native module versions -| Major version | Native module version | -| :-----------: | :-------------------: | -| `0` | `210201` | \ No newline at end of file +| Major version | Native module version | Expo version | +| :-----------: | :-------------------: | :----------: | +| `0` | `210201` | `40.0.0` | +| `1` | `210317` | `40.0.0` | \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile index 713269dc..a2a11877 100644 --- a/fastlane/Fastfile +++ b/fastlane/Fastfile @@ -1,4 +1,4 @@ -fastlane_version "2.179.0" +fastlane_version "2.180.1" skip_docs ensure_env_vars( @@ -106,7 +106,7 @@ private_lane :build_ios do output_directory: BUILD_DIRECTORY, silent: true ) - upload_to_app_store( ipa: IPA_FILE ) + upload_to_app_store( ipa: IPA_FILE, app_version: VERSION ) else if !is_ci match( type: "development", readonly: true ) diff --git a/fastlane/metadata/zh-Hans/subtitle.txt b/fastlane/metadata/zh-Hans/subtitle.txt index 644b04f2..8b6cf09a 100644 --- a/fastlane/metadata/zh-Hans/subtitle.txt +++ b/fastlane/metadata/zh-Hans/subtitle.txt @@ -1 +1 @@ -开源长毛象客户端 \ No newline at end of file +开源毛象客户端 \ No newline at end of file diff --git a/ios/en.lproj/InfoPlist.strings b/ios/en.lproj/InfoPlist.strings new file mode 100644 index 00000000..1787913e --- /dev/null +++ b/ios/en.lproj/InfoPlist.strings @@ -0,0 +1,11 @@ +/* + InfoPlist.strings + tooot + + Created by Zheng Zhiyuan (SEBD) on 2021-04-16. + +*/ + +"NSCameraUsageDescription" = "Allow tooot to capture photo or video and attach it to your toot"; +"NSPhotoLibraryAddUsageDescription" = "Allow tooot to save an image to your camera roll"; +"NSPhotoLibraryUsageDescription" = "Allow tooot to access your camera roll to attach photos or videos to your toot"; diff --git a/ios/tooot.xcodeproj/project.pbxproj b/ios/tooot.xcodeproj/project.pbxproj index 3b6db793..6c0f8b0b 100644 --- a/ios/tooot.xcodeproj/project.pbxproj +++ b/ios/tooot.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; }; 5E36538325C9B8BD009F93EE /* RootViewColor.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5E36538225C9B8BD009F93EE /* RootViewColor.xcassets */; }; + 5EE088C926297820007E5FEC /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 5EE088CB26297820007E5FEC /* InfoPlist.strings */; }; 5EE44DD62600124E00A9BCED /* File.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EE44DD52600124E00A9BCED /* File.swift */; }; 96905EF65AED1B983A6B3ABC /* libPods-tooot.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tooot.a */; }; BB2F792D24A3F905000567C9 /* Expo.plist in Resources */ = {isa = PBXBuildFile; fileRef = BB2F792C24A3F905000567C9 /* Expo.plist */; }; @@ -30,6 +31,8 @@ 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = tooot/main.m; sourceTree = ""; }; 58EEBF8E8E6FB1BC6CAF49B5 /* libPods-tooot.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-tooot.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 5E36538225C9B8BD009F93EE /* RootViewColor.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = RootViewColor.xcassets; path = tooot/RootViewColor.xcassets; sourceTree = ""; }; + 5EE088CA26297820007E5FEC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; + 5EE088CD2629786B007E5FEC /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; 5EE44DD42600124E00A9BCED /* tooot-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "tooot-Bridging-Header.h"; sourceTree = ""; }; 5EE44DD52600124E00A9BCED /* File.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = File.swift; sourceTree = ""; }; 6C2E3173556A471DD304B334 /* Pods-tooot.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tooot.debug.xcconfig"; path = "Target Support Files/Pods-tooot/Pods-tooot.debug.xcconfig"; sourceTree = ""; }; @@ -67,6 +70,7 @@ AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */, 5E36538225C9B8BD009F93EE /* RootViewColor.xcassets */, B96B72E5384D44A7B240B27E /* GoogleService-Info.plist */, + 5EE088CB26297820007E5FEC /* InfoPlist.strings */, ); name = tooot; sourceTree = ""; @@ -177,6 +181,7 @@ knownRegions = ( en, Base, + "zh-Hans", ); mainGroup = 83CBB9F61A601CBA00E9B192; productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */; @@ -194,6 +199,7 @@ buildActionMask = 2147483647; files = ( 5E36538325C9B8BD009F93EE /* RootViewColor.xcassets in Resources */, + 5EE088C926297820007E5FEC /* InfoPlist.strings in Resources */, BB2F792D24A3F905000567C9 /* Expo.plist in Resources */, 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */, 13B07FBD1A68108700A75B9A /* LaunchScreen.xib in Resources */, @@ -321,6 +327,15 @@ path = tooot; sourceTree = ""; }; + 5EE088CB26297820007E5FEC /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 5EE088CA26297820007E5FEC /* en */, + 5EE088CD2629786B007E5FEC /* zh-Hans */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ diff --git a/ios/tooot/Info.plist b/ios/tooot/Info.plist index eb35c58c..e325df39 100644 --- a/ios/tooot/Info.plist +++ b/ios/tooot/Info.plist @@ -50,16 +50,16 @@ + NSMicrophoneUsageDescription + $(PRODUCT_NAME) DOES NOT need microphone permission. Please reject this request. NSCameraUsageDescription - Give $(PRODUCT_NAME) permission to access your camera + Allow $(PRODUCT_NAME) to capture photo or video and attach it to your toot NSLocationWhenInUseUsageDescription - NSMicrophoneUsageDescription - Give $(PRODUCT_NAME) permission to use your microphone NSPhotoLibraryAddUsageDescription - Give $(PRODUCT_NAME) permission to save photos + Allow $(PRODUCT_NAME) to save an image to your camera roll NSPhotoLibraryUsageDescription - Give $(PRODUCT_NAME) permission to save photos + Allow $(PRODUCT_NAME) to access your camera roll to attach photos or videos to your toot UILaunchStoryboardName SplashScreen UIRequiredDeviceCapabilities diff --git a/ios/zh-Hans.lproj/InfoPlist.strings b/ios/zh-Hans.lproj/InfoPlist.strings new file mode 100644 index 00000000..41bee912 --- /dev/null +++ b/ios/zh-Hans.lproj/InfoPlist.strings @@ -0,0 +1,11 @@ +/* + InfoPlist.strings + tooot + + Created by Zheng Zhiyuan (SEBD) on 2021-04-16. + +*/ + +"NSCameraUsageDescription" = "允许tooot拍摄图片或视频,以添加嘟文附件"; +"NSPhotoLibraryAddUsageDescription" = "允许tooot保存图片至相册"; +"NSPhotoLibraryUsageDescription" = "允许tooot读取相册图片或视频,以添加嘟文附件"; diff --git a/src/screens/Tabs/Me/Settings/Tooot.tsx b/src/screens/Tabs/Me/Settings/Tooot.tsx index af826876..35194f39 100644 --- a/src/screens/Tabs/Me/Settings/Tooot.tsx +++ b/src/screens/Tabs/Me/Settings/Tooot.tsx @@ -43,7 +43,7 @@ const SettingsTooot: React.FC = () => { }} /> {__DEV__ || - ['production', 'development'].some(channel => + ['release', 'development'].some(channel => Updates.releaseChannel?.includes(channel) ) ? ( ) => { - if (Updates.releaseChannel.includes('production')) { + if (Updates.releaseChannel.includes('release')) { state.storeReview.current = state.storeReview.current + action.payload if (state.storeReview.current === state.storeReview.context) { StoreReview.isAvailableAsync().then(() => StoreReview.requestReview())