Prepare for production release
1
.github/workflows/build.yml
vendored
@ -28,7 +28,6 @@ jobs:
|
|||||||
- name: -- Step 4 -- Install node dependencies
|
- name: -- Step 4 -- Install node dependencies
|
||||||
run: yarn install
|
run: yarn install
|
||||||
- name: -- Step 5 -- Install native dependencies
|
- name: -- Step 5 -- Install native dependencies
|
||||||
if: github.ref != 'refs/heads/main'
|
|
||||||
run: npx pod-install
|
run: npx pod-install
|
||||||
- name: -- Step 6 -- Install ruby dependencies
|
- name: -- Step 6 -- Install ruby dependencies
|
||||||
run: bundle install
|
run: bundle install
|
||||||
|
1
fastlane/.gitignore
vendored
@ -6,4 +6,3 @@
|
|||||||
/README.md
|
/README.md
|
||||||
/report.xml
|
/report.xml
|
||||||
Preview.html
|
Preview.html
|
||||||
screenshots
|
|
17
fastlane/Deliverfile
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
languages(['zh-Hans'])
|
||||||
|
|
||||||
|
name({
|
||||||
|
'default' => "tooot"
|
||||||
|
})
|
||||||
|
keywords({
|
||||||
|
'default' => "Mastodon,tooot,social,decentralized,长毛象,社交,去中心"
|
||||||
|
})
|
||||||
|
privacy_url({
|
||||||
|
'default' => "https://tooot.app/privacy-policy"
|
||||||
|
})
|
||||||
|
support_url({
|
||||||
|
'default' => "https://tooot.app"
|
||||||
|
})
|
||||||
|
|
||||||
|
copyright("#{Time.now.year} ©️ xmflsct")
|
||||||
|
primary_category("SOCIAL_NETWORKING")
|
@ -57,7 +57,7 @@ private_lane :github_release do |options|
|
|||||||
description: "No changelog provided",
|
description: "No changelog provided",
|
||||||
commitish: git_branch,
|
commitish: git_branch,
|
||||||
is_prerelease: options[:prerelease],
|
is_prerelease: options[:prerelease],
|
||||||
upload_assets: ["#{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"]
|
upload_assets: options[:prerelease] ? nil : ["#{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"]
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -69,6 +69,8 @@ end
|
|||||||
desc "Build and deploy iOS app"
|
desc "Build and deploy iOS app"
|
||||||
private_lane :build_ios do
|
private_lane :build_ios do
|
||||||
BUILD_DIRECTORY = "./ios/build"
|
BUILD_DIRECTORY = "./ios/build"
|
||||||
|
IPA_FILE = "#{BUILD_DIRECTORY}/tooot.ipa"
|
||||||
|
DSYM_FILE = "#{BUILD_DIRECTORY}/tooot.app.dSYM.zip"
|
||||||
|
|
||||||
update_expo_ios
|
update_expo_ios
|
||||||
setup_ci
|
setup_ci
|
||||||
@ -77,17 +79,39 @@ private_lane :build_ios do
|
|||||||
when "candidate"
|
when "candidate"
|
||||||
prepare_appstore_ios
|
prepare_appstore_ios
|
||||||
match( type: "appstore", readonly: true )
|
match( type: "appstore", readonly: true )
|
||||||
build_ios_app( export_method: "app-store", include_symbols: true, include_bitcode: true, silent: true )
|
build_ios_app(
|
||||||
|
export_method: "app-store",
|
||||||
|
include_symbols: true,
|
||||||
|
output_directory: BUILD_DIRECTORY,
|
||||||
|
silent: true
|
||||||
|
)
|
||||||
|
sentry_upload_dsym(
|
||||||
|
org_slug: ENV["SENTRY_ORGANIZATION"],
|
||||||
|
project_slug: ENV["SENTRY_PROJECT"],
|
||||||
|
dsym_path: DSYM_FILE
|
||||||
|
)
|
||||||
upload_to_testflight(
|
upload_to_testflight(
|
||||||
|
ipa: IPA_FILE,
|
||||||
demo_account_required: true,
|
demo_account_required: true,
|
||||||
distribute_external: true,
|
distribute_external: true,
|
||||||
groups: "测试用户",
|
groups: "测试用户",
|
||||||
changelog: "Ready for testing"
|
changelog: "感谢帮忙测试 tooot 🙏"
|
||||||
)
|
)
|
||||||
when "release"
|
when "release"
|
||||||
prepare_appstore_ios
|
prepare_appstore_ios
|
||||||
match( type: "appstore", readonly: true )
|
match( type: "appstore", readonly: true )
|
||||||
build_ios_app( export_method: "app-store", include_bitcode: true, silent: true )
|
build_ios_app(
|
||||||
|
export_method: "app-store",
|
||||||
|
include_bitcode: true,
|
||||||
|
output_directory: BUILD_DIRECTORY,
|
||||||
|
silent: true
|
||||||
|
)
|
||||||
|
upload_to_app_store(
|
||||||
|
force: true,
|
||||||
|
ipa: IPA_FILE,
|
||||||
|
submit_for_review: true,
|
||||||
|
automatic_release: false
|
||||||
|
)
|
||||||
else
|
else
|
||||||
if !is_ci
|
if !is_ci
|
||||||
match( type: "development", readonly: true )
|
match( type: "development", readonly: true )
|
||||||
@ -126,6 +150,27 @@ private_lane :build_android do
|
|||||||
skip_upload_images: true,
|
skip_upload_images: true,
|
||||||
skip_upload_screenshots: true
|
skip_upload_screenshots: true
|
||||||
)
|
)
|
||||||
|
when "release"
|
||||||
|
prepare_playstore_android
|
||||||
|
build_android_app(
|
||||||
|
task: 'clean bundle',
|
||||||
|
build_type: 'release',
|
||||||
|
project_dir: "./android",
|
||||||
|
print_command: false,
|
||||||
|
print_command_output: false,
|
||||||
|
properties: {
|
||||||
|
"expoSDK" => VERSIONS[:expo],
|
||||||
|
"releaseChannel" => RELEASE_CHANNEL,
|
||||||
|
"android.injected.signing.store.file" => "#{File.expand_path('..', Dir.pwd)}/android/tooot.jks",
|
||||||
|
"android.injected.signing.store.password" => ENV["ANDROID_KEYSTORE_PASSWORD"],
|
||||||
|
"android.injected.signing.key.alias" => ENV["ANDROID_KEYSTORE_ALIAS"],
|
||||||
|
"android.injected.signing.key.password" => ENV["ANDROID_KEYSTORE_KEY_PASSWORD"],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
upload_to_play_store(
|
||||||
|
track: "production",
|
||||||
|
skip_upload_changelogs: true
|
||||||
|
)
|
||||||
build_android_app(
|
build_android_app(
|
||||||
task: 'assemble',
|
task: 'assemble',
|
||||||
build_type: 'release',
|
build_type: 'release',
|
||||||
@ -142,7 +187,6 @@ private_lane :build_android do
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
sh "mv #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]} #{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"
|
sh "mv #{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]} #{File.expand_path('..', Dir.pwd)}/tooot-#{GITHUB_RELEASE}.apk"
|
||||||
when "release"
|
|
||||||
else
|
else
|
||||||
if !is_ci
|
if !is_ci
|
||||||
build_android_app(
|
build_android_app(
|
||||||
|
1
fastlane/metadata/android/en-US/full_description.txt
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../default/description.txt
|
1
fastlane/metadata/android/en-US/images/phoneScreenshots/0_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/en_US/0_65.png
|
1
fastlane/metadata/android/en-US/images/phoneScreenshots/1_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/en_US/1_65.png
|
1
fastlane/metadata/android/en-US/images/phoneScreenshots/2_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/en_US/2_65.png
|
1
fastlane/metadata/android/en-US/images/phoneScreenshots/3_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/en_US/3_65.png
|
1
fastlane/metadata/android/en-US/short_description.txt
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../default/subtitle.txt
|
1
fastlane/metadata/android/zh-CN/full_description.txt
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../zh-Hans/description.txt
|
BIN
fastlane/metadata/android/zh-CN/images/featureGraphic.png
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
fastlane/metadata/android/zh-CN/images/icon.png
Normal file
After Width: | Height: | Size: 14 KiB |
1
fastlane/metadata/android/zh-CN/images/phoneScreenshots/0_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/zh-Hans/0_65.png
|
1
fastlane/metadata/android/zh-CN/images/phoneScreenshots/1_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/zh-Hans/1_65.png
|
1
fastlane/metadata/android/zh-CN/images/phoneScreenshots/2_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/zh-Hans/2_65.png
|
1
fastlane/metadata/android/zh-CN/images/phoneScreenshots/3_65.png
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../../../../screenshots/zh-Hans/3_65.png
|
1
fastlane/metadata/android/zh-CN/short_description.txt
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../zh-Hans/subtitle.txt
|
1
fastlane/metadata/android/zh-CN/title.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
tooot
|
5
fastlane/metadata/default/description.txt
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
tooot is an open source, simple yet elegant Mastodon mobile client.
|
||||||
|
|
||||||
|
A Mastodon (https://joinmastodon.org/) account is required to use this app.
|
||||||
|
|
||||||
|
If you have suggestions, please reach out to @tooot@xmflsct.com or support@tooot.ap.
|
1
fastlane/metadata/default/release_notes.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
fastlane/metadata/default/subtitle.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Open source Mastodon client
|
10
fastlane/metadata/zh-Hans/description.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
tooot是一个专门为中文用户社区所打造的开源、简洁长毛象客户端。使用此客户端需要已经拥有一个长毛象(https://joinmastodon.org/)账号。
|
||||||
|
|
||||||
|
tooot支持:
|
||||||
|
- 多账号登录
|
||||||
|
- 黑暗或自适应模式
|
||||||
|
- 可调整正文字体大小
|
||||||
|
- 消息推送
|
||||||
|
等功能。
|
||||||
|
|
||||||
|
如有使用建议或意见,请联系@tooot@xmflsct.com或者support@tooot.app。
|
1
fastlane/metadata/zh-Hans/release_notes.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
1
fastlane/metadata/zh-Hans/subtitle.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
开源长毛象客户端
|
BIN
fastlane/screenshots/en_US/0_55.png
Normal file
After Width: | Height: | Size: 560 KiB |
BIN
fastlane/screenshots/en_US/0_65.png
Normal file
After Width: | Height: | Size: 723 KiB |
BIN
fastlane/screenshots/en_US/1_55.png
Normal file
After Width: | Height: | Size: 356 KiB |
BIN
fastlane/screenshots/en_US/1_65.png
Normal file
After Width: | Height: | Size: 462 KiB |
BIN
fastlane/screenshots/en_US/2_55.png
Normal file
After Width: | Height: | Size: 388 KiB |
BIN
fastlane/screenshots/en_US/2_65.png
Normal file
After Width: | Height: | Size: 450 KiB |
BIN
fastlane/screenshots/en_US/3_55.png
Normal file
After Width: | Height: | Size: 385 KiB |
BIN
fastlane/screenshots/en_US/3_65.png
Normal file
After Width: | Height: | Size: 476 KiB |
BIN
fastlane/screenshots/zh-Hans/0_55.png
Normal file
After Width: | Height: | Size: 562 KiB |
BIN
fastlane/screenshots/zh-Hans/0_65.png
Normal file
After Width: | Height: | Size: 723 KiB |
BIN
fastlane/screenshots/zh-Hans/1_55.png
Normal file
After Width: | Height: | Size: 368 KiB |
BIN
fastlane/screenshots/zh-Hans/1_65.png
Normal file
After Width: | Height: | Size: 475 KiB |
BIN
fastlane/screenshots/zh-Hans/2_55.png
Normal file
After Width: | Height: | Size: 393 KiB |
BIN
fastlane/screenshots/zh-Hans/2_65.png
Normal file
After Width: | Height: | Size: 457 KiB |
BIN
fastlane/screenshots/zh-Hans/3_55.png
Normal file
After Width: | Height: | Size: 391 KiB |
BIN
fastlane/screenshots/zh-Hans/3_65.png
Normal file
After Width: | Height: | Size: 481 KiB |
@ -213,11 +213,11 @@ const sharedScreens = (
|
|||||||
}
|
}
|
||||||
}: SharedUsersProp) => ({
|
}: SharedUsersProp) => ({
|
||||||
headerLeft: () => <HeaderLeft onPress={() => navigation.goBack()} />,
|
headerLeft: () => <HeaderLeft onPress={() => navigation.goBack()} />,
|
||||||
headerTitle: t(`sharedUsers:heading.${reference}.${type}`, { count }),
|
headerTitle: t(`shared.users.${reference}.${type}`, { count }),
|
||||||
...(Platform.OS === 'android' && {
|
...(Platform.OS === 'android' && {
|
||||||
headerCenter: () => (
|
headerCenter: () => (
|
||||||
<HeaderCenter
|
<HeaderCenter
|
||||||
content={t(`sharedUsers:heading.${reference}.${type}`, { count })}
|
content={t(`shared.users.${reference}.${type}`, { count })}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|