├── .gitignore ├── .swift-version ├── Bugtags.bundle ├── BTGCreateTagView-Landscape.nib ├── BTGCreateTagView.nib ├── BTGCreateTagView~ipad.nib ├── BTGSignInViewController.nib ├── BTGSignInViewController~ipad.nib ├── BTGTagTipsView.nib ├── BTGTagTipsView~ipad.nib ├── Bugtags_dsym_autoupload.sh ├── btg_bg_dialog@2x.png ├── btg_bg_tag@2x.png ├── btg_btn_cancel@2x.png ├── btg_btn_cancel_pressed@2x.png ├── btg_btn_confirm@2x.png ├── btg_btn_confirm_pressed@2x.png ├── btg_capture.mp3 ├── btg_icon_account@2x.png ├── btg_icon_arrow@2x.png ├── btg_icon_arrow_left@2x.png ├── btg_icon_arrow_left_selected@2x.png ├── btg_icon_arrow_right@2x.png ├── btg_icon_arrow_right_selected@2x.png ├── btg_icon_arrow_selected@2x.png ├── btg_icon_assistivebutton@2x.png ├── btg_icon_assistivebutton_pressed@2x.png ├── btg_icon_assistivebutton_submit@2x.png ├── btg_icon_assistivebutton_submit_pressed@2x.png ├── btg_icon_avatar_placeholder@2x.png ├── btg_icon_cancel@2x.png ├── btg_icon_cancel_pressed@2x.png ├── btg_icon_captcha@2x.png ├── btg_icon_checkmark@2x.png ├── btg_icon_confirm@2x.png ├── btg_icon_confirm_pressed@2x.png ├── btg_icon_delete@2x.png ├── btg_icon_delete_selected@2x.png ├── btg_icon_exchange@2x.png ├── btg_icon_exchange_pressed@2x.png ├── btg_icon_issue_type_1@2x.png ├── btg_icon_issue_type_2@2x.png ├── btg_icon_password@2x.png ├── btg_icon_priority_0@2x.png ├── btg_icon_priority_0_normal@2x.png ├── btg_icon_priority_0_selected@2x.png ├── btg_icon_priority_1@2x.png ├── btg_icon_priority_1_normal@2x.png ├── btg_icon_priority_1_selected@2x.png ├── btg_icon_priority_2@2x.png ├── btg_icon_priority_2_normal@2x.png ├── btg_icon_priority_2_selected@2x.png ├── btg_icon_priority_3@2x.png ├── btg_icon_priority_3_normal@2x.png ├── btg_icon_priority_3_selected@2x.png ├── btg_icon_quicksignin@2x.png ├── btg_icon_quicksignin_selected@2x.png ├── btg_icon_report@2x.png ├── btg_icon_report_pressed@2x.png ├── btg_icon_tag_pin@2x.png ├── btg_icon_tag_type_1@2x.png ├── btg_icon_tag_type_2@2x.png ├── btg_icon_tips_tag_1@2x.png ├── btg_icon_tips_tag_2@2x.png ├── btg_icon_tips_tag_3@2x.png ├── btg_icon_user@2x.png ├── btg_icon_user_pressed@2x.png ├── btg_line@2x.png ├── btg_line_vertical@2x.png ├── btg_logo@2x.png ├── en.lproj │ └── Localizable.strings ├── zh-Hans.lproj │ └── Localizable.strings └── zh-Hant.lproj │ └── Localizable.strings ├── Bugtags.framework ├── Bugtags ├── Headers └── Versions │ ├── A │ ├── Bugtags │ └── Headers │ │ ├── BTGConstants.h │ │ └── Bugtags.h │ └── Current ├── Bugtags.podspec └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 4.0 2 | -------------------------------------------------------------------------------- /Bugtags.bundle/BTGCreateTagView-Landscape.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGCreateTagView-Landscape.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGCreateTagView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGCreateTagView.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGCreateTagView~ipad.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGCreateTagView~ipad.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGSignInViewController.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGSignInViewController.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGSignInViewController~ipad.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGSignInViewController~ipad.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGTagTipsView.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGTagTipsView.nib -------------------------------------------------------------------------------- /Bugtags.bundle/BTGTagTipsView~ipad.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/BTGTagTipsView~ipad.nib -------------------------------------------------------------------------------- /Bugtags.bundle/Bugtags_dsym_autoupload.sh: -------------------------------------------------------------------------------- 1 | # Copyright 2017 Bugtags. All rights reserved. 2 | # 3 | # Usage: 4 | # * In the project editor, select your target. 5 | # * Click "Build Phases" at the top of the project editor. 6 | # * Click "+" button in the top left corner. 7 | # * Choose "New Run Script Build Phase." 8 | # * Uncomment and paste the following script. 9 | # 10 | # --- INVOCATION SCRIPT BEGIN --- 11 | # # SKIP_DEBUG_BUILDS=1 12 | # # SKIP_SIMULATOR_BUILDS=1 13 | # APP_KEY="" #Fill your own App Key 14 | # APP_SECRET="" #Fill your own App Secret 15 | # SCRIPT_SRC=$(find "$PROJECT_DIR" -name 'Bugtags_dsym_autoupload.sh' | head -1) 16 | # if [ ! "${SCRIPT_SRC}" ]; then 17 | # echo "Bugtags: err: script not found. Make sure that you're including Bugtags.bundle in your project directory" 18 | # exit 1 19 | # fi 20 | # source "${SCRIPT_SRC}" 21 | # --- INVOCATION SCRIPT END --- 22 | 23 | echo "Bugtags: Started uploading dSYM" 24 | 25 | if [ ! "${APP_KEY}" ] || [ ! "${APP_SECRET}" ]; then 26 | echo "Bugtags error: APP_KEY or APP_SECRET is invalid." 27 | exit 0 28 | fi 29 | 30 | # Check for debug builds 31 | if [ "$CONFIGURATION" == "Debug" ] || echo $GCC_PREPROCESSOR_DEFINITIONS | grep -iq DEBUG=1; then 32 | if [ "${SKIP_DEBUG_BUILDS}" ] && [ "${SKIP_DEBUG_BUILDS}" -eq 1 ]; then 33 | echo "Bugtags: Skipping debug build." 34 | exit 0 35 | fi 36 | fi 37 | 38 | # Check for simulator builds 39 | if [ "$EFFECTIVE_PLATFORM_NAME" == "-iphonesimulator" ]; then 40 | if [ "${SKIP_SIMULATOR_BUILDS}" ] && [ "${SKIP_SIMULATOR_BUILDS}" -eq 1 ]; then 41 | echo "Bugtags: Skipping simulator build." 42 | exit 0 43 | fi 44 | fi 45 | 46 | # Check internet connection 47 | if [ ! "`ping -c 1 bugtags.cn`" ]; then 48 | echo "Bugtags error: Cannot reach the Bugtags Cloud." 49 | exit 0 50 | fi 51 | 52 | # Check dSYM file 53 | DSYM_PATH=${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME} 54 | if [ ! -d "$DSYM_PATH" ]; then 55 | echo "Bugtags error: dSYM not found: ${DSYM_PATH}, please check Build Settings -> Debug Information Format, must be set to 'DWARF with dSYM File'." 56 | exit 0 57 | fi 58 | 59 | echo "Bugtags: dSYM file -> ${DSYM_PATH}" 60 | 61 | # Create temp directory if not exists 62 | CURRENT_USER=$(whoami | tr -dc '[:alnum:]\n\r' | tr '[:upper:]' '[:lower:]') 63 | TEMP_ROOT="/tmp/Bugtags-${CURRENT_USER}" 64 | if [ ! -d "${TEMP_ROOT}" ]; then 65 | mkdir "${TEMP_ROOT}" 66 | fi 67 | TEMP_DIRECTORY="${TEMP_ROOT}/$EXECUTABLE_NAME" 68 | if [ ! -d "${TEMP_DIRECTORY}" ]; then 69 | mkdir "${TEMP_DIRECTORY}" 70 | fi 71 | 72 | DSYM_UUIDs_LIST=$(dwarfdump --uuid "${DSYM_PATH}" | cut -d' ' -f2,3) 73 | 74 | # Check if UUIDs exists 75 | DSYM_UUIDs=$(echo "${DSYM_UUIDs_LIST}" | cut -d' ' -f1) 76 | echo "Bugtags: dSYM UUIDs -> ${DSYM_UUIDs}" 77 | DSYM_UUIDs_PATH="${TEMP_DIRECTORY}/UUIDs.dat" 78 | if [ -f "${DSYM_UUIDs_PATH}" ]; then 79 | if grep -Fxq "${DSYM_UUIDs}" "${DSYM_UUIDs_PATH}"; then 80 | echo "Bugtags error: dSYM archive has already been uploaded." 81 | exit 0 82 | fi 83 | fi 84 | 85 | # Create dSYM .zip file 86 | echo "Bugtags: Compressing dSYM file..." 87 | DSYM_PATH_ZIP="${TEMP_DIRECTORY}/$DWARF_DSYM_FILE_NAME.zip" 88 | (/usr/bin/zip --recurse-paths -j -x "*.plist" --quiet "${DSYM_PATH_ZIP}" "${DSYM_PATH}") || exit 0 89 | 90 | echo "Bugtags: dSYM archive -> ${DSYM_PATH_ZIP}" 91 | 92 | # Upload dSYM 93 | echo "Bugtags: Uploading dSYM file..." 94 | ENDPOINT="https://work.bugtags.cn/api/apps/symbols/upload" 95 | PLISTFILE="${INFOPLIST_FILE}" 96 | if [[ "$PLISTFILE" != /* ]]; then 97 | PLISTFILE="${PROJECT_DIR}/${PLISTFILE}" 98 | fi 99 | if [[ -n $MARKETING_VERSION ]]; then 100 | APP_VERSION="$MARKETING_VERSION" 101 | else 102 | APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "${PLISTFILE}") 103 | fi 104 | if [[ -n $CURRENT_PROJECT_VERSION ]]; then 105 | APP_BUILD="$CURRENT_PROJECT_VERSION" 106 | else 107 | APP_BUILD=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${PLISTFILE}") 108 | fi 109 | if [ ! "${APP_VERSION}" ] || [ ! "${APP_BUILD}" ]; then 110 | echo "Bugtags error: APP_VERSION or APP_BUILD is invalid." 111 | exit 0 112 | fi 113 | STATUS=$(curl "${ENDPOINT}" --write-out %{http_code} --silent --output "${TEMP_DIRECTORY}/upload.log" -F "file=@${DSYM_PATH_ZIP};type=application/octet-stream" -F "app_key=${APP_KEY}" -F "secret_key=${APP_SECRET}" -F "version_name=${APP_VERSION}" -F "version_code=${APP_BUILD}" -F "uuids=${DSYM_UUIDs_LIST}") 114 | if [ $STATUS -ne 200 ]; then 115 | echo "Bugtags error: dSYM archive not succesfully uploaded." 116 | echo "Bugtags: deleting temporary dSYM archive..." 117 | /bin/rm -f "${DSYM_PATH_ZIP}" 118 | exit 0 119 | fi 120 | 121 | # Remove temp dSYM archive 122 | echo "Bugtags: deleting temporary dSYM archive..." 123 | /bin/rm -f "${DSYM_PATH_ZIP}" 124 | 125 | # Save UUIDs 126 | echo "${DSYM_UUIDs}" >> "${DSYM_UUIDs_PATH}" 127 | 128 | # Finalize 129 | echo "Bugtags: dSYM upload complete." 130 | if [ "$?" -ne 0 ]; then 131 | echo "Bugtags error: an error was encountered uploading dSYM." 132 | exit 0 133 | fi 134 | -------------------------------------------------------------------------------- /Bugtags.bundle/btg_bg_dialog@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_bg_dialog@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_bg_tag@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_bg_tag@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_btn_cancel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_btn_cancel@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_btn_cancel_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_btn_cancel_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_btn_confirm@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_btn_confirm@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_btn_confirm_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_btn_confirm_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_capture.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_capture.mp3 -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_account@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_account@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow_left@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow_left@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow_left_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow_left_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow_right@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow_right@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow_right_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow_right_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_arrow_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_arrow_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_assistivebutton@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_assistivebutton@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_assistivebutton_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_assistivebutton_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_assistivebutton_submit@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_assistivebutton_submit@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_assistivebutton_submit_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_assistivebutton_submit_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_avatar_placeholder@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_avatar_placeholder@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_cancel@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_cancel@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_cancel_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_cancel_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_captcha@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_captcha@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_checkmark@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_checkmark@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_confirm@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_confirm@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_confirm_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_confirm_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_delete@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_delete@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_delete_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_delete_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_exchange@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_exchange@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_exchange_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_exchange_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_issue_type_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_issue_type_1@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_issue_type_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_issue_type_2@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_password@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_password@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_0@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_0@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_0_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_0_normal@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_0_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_0_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_1@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_1_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_1_normal@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_1_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_1_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_2@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_2_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_2_normal@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_2_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_2_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_3@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_3_normal@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_3_normal@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_priority_3_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_priority_3_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_quicksignin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_quicksignin@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_quicksignin_selected@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_quicksignin_selected@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_report@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_report@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_report_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_report_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tag_pin@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tag_pin@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tag_type_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tag_type_1@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tag_type_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tag_type_2@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tips_tag_1@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tips_tag_1@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tips_tag_2@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tips_tag_2@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_tips_tag_3@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_tips_tag_3@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_user@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_user@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_icon_user_pressed@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_icon_user_pressed@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_line@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_line@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_line_vertical@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_line_vertical@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/btg_logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.bundle/btg_logo@2x.png -------------------------------------------------------------------------------- /Bugtags.bundle/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Bugtags 4 | 5 | Created by Stephen Zhang on 15/6/25. 6 | Copyright (c) 2015年 bugtags.com. All rights reserved. 7 | */ 8 | 9 | "btg_btn_cancel" = "Cancel"; 10 | "btg_btn_ok" = "OK"; 11 | "btg_btn_edit" = "Edit"; 12 | "btg_btn_delete" = "Delete"; 13 | "btg_btn_signin" = "Sign in"; 14 | "btg_btn_signout" = "Sign out"; 15 | "btg_btn_myissues" = "My issues"; 16 | "btg_btn_gotit" = "Got it!"; 17 | 18 | "btg_issue_type_1" = "Bug"; 19 | "btg_issue_type_2" = "Feature"; 20 | 21 | "btg_tag_priority_0" = "Trivial"; 22 | "btg_tag_priority_1" = "Minor"; 23 | "btg_tag_priority_2" = "Major"; 24 | "btg_tag_priority_3" = "Blocker"; 25 | 26 | "btg_info_account" = "Account"; 27 | "btg_info_password" = "Password"; 28 | "btg_info_captcha" = "Captcha"; 29 | "btg_info_tag_info" = "Tag info"; 30 | "btg_info_tag_input_placeholder" = "issue description"; 31 | "btg_info_discard_report" = "Sure to discard?"; 32 | "btg_info_start_trace" = "Sure to restart trace?"; 33 | "btg_info_signin_loading" = "Sign in..."; 34 | "btg_info_signin_failed" = "Account or password error"; 35 | "btg_info_signin_captcha_invalid" = "Invalid captcha"; 36 | "btg_info_network_unavailable" = "Network not available"; 37 | "btg_info_quicksignin" = "Quick Sign In"; 38 | "btg_info_quicksignin_tips" = "Click account below to sign in directly"; 39 | 40 | "btg_info_tips_tag_0" = "Report Bug via tag"; 41 | "btg_info_tips_tag_1" = "Tap screen to add a tag"; 42 | "btg_info_tips_tag_2" = "Tap tag to flip"; 43 | "btg_info_tips_tag_3" = "Longpress tag to edit or delete"; 44 | 45 | "btg_info_tags_empty" = "Add one tag at least"; 46 | "btg_info_tags_add_limit" = "Add three tags at most"; -------------------------------------------------------------------------------- /Bugtags.bundle/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Bugtags 4 | 5 | Created by Stephen Zhang on 15/6/25. 6 | Copyright (c) 2015年 bugtags.com. All rights reserved. 7 | */ 8 | 9 | "btg_btn_cancel" = "取消"; 10 | "btg_btn_ok" = "确定"; 11 | "btg_btn_edit" = "编辑"; 12 | "btg_btn_delete" = "删除"; 13 | "btg_btn_signin" = "登录"; 14 | "btg_btn_signout" = "退出登录"; 15 | "btg_btn_myissues" = "我的问题"; 16 | "btg_btn_gotit" = "知道了"; 17 | 18 | "btg_issue_type_1" = "Bug"; 19 | "btg_issue_type_2" = "改进"; 20 | 21 | "btg_tag_priority_0" = "低"; 22 | "btg_tag_priority_1" = "普通"; 23 | "btg_tag_priority_2" = "高"; 24 | "btg_tag_priority_3" = "紧急"; 25 | 26 | "btg_info_account" = "帐号"; 27 | "btg_info_password" = "密码"; 28 | "btg_info_captcha" = "验证码"; 29 | "btg_info_tag_info" = "标签信息"; 30 | "btg_info_tag_input_placeholder" = "问题描述"; 31 | "btg_info_discard_report" = "确定要放弃提交吗?"; 32 | "btg_info_start_trace" = "确定从现在开始记录数据吗?"; 33 | "btg_info_signin_loading" = "正在登录..."; 34 | "btg_info_signin_failed" = "帐号或密码错误"; 35 | "btg_info_signin_captcha_invalid" = "验证码有误"; 36 | "btg_info_network_unavailable" = "网络连接失败"; 37 | "btg_info_quicksignin" = "快速登录"; 38 | "btg_info_quicksignin_tips" = "点击下方帐号直接登录"; 39 | 40 | "btg_info_tips_tag_0" = "通过标签提交 Bug"; 41 | "btg_info_tips_tag_1" = "单击屏幕选择标签位置"; 42 | "btg_info_tips_tag_2" = "单击标签改变方向"; 43 | "btg_info_tips_tag_3" = "长按标签可编辑或删除"; 44 | 45 | "btg_info_tags_empty" = "至少添加 1 个标签"; 46 | "btg_info_tags_add_limit" = "最多添加 3 个标签"; -------------------------------------------------------------------------------- /Bugtags.bundle/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Bugtags 4 | 5 | Created by Stephen Zhang on 15/6/25. 6 | Copyright (c) 2015年 bugtags.com. All rights reserved. 7 | */ 8 | 9 | "btg_btn_cancel" = "取消"; 10 | "btg_btn_ok" = "確定"; 11 | "btg_btn_edit" = "編輯"; 12 | "btg_btn_delete" = "刪除"; 13 | "btg_btn_signin" = "登錄"; 14 | "btg_btn_signout" = "退出登錄"; 15 | "btg_btn_myissues" = "我的問題"; 16 | "btg_btn_gotit" = "知道了"; 17 | 18 | "btg_issue_type_1" = "Bug"; 19 | "btg_issue_type_2" = "改進"; 20 | 21 | "btg_tag_priority_0" = "低"; 22 | "btg_tag_priority_1" = "普通"; 23 | "btg_tag_priority_2" = "高"; 24 | "btg_tag_priority_3" = "緊急"; 25 | 26 | "btg_info_account" = "帳號"; 27 | "btg_info_password" = "密碼"; 28 | "btg_info_captcha" = "驗證碼"; 29 | "btg_info_tag_info" = "標籤信息"; 30 | "btg_info_tag_input_placeholder" = "問題描述"; 31 | "btg_info_discard_report" = "確定要放棄提交嗎?"; 32 | "btg_info_start_trace" = "確定從現在開始記錄數據嗎?"; 33 | "btg_info_signin_loading" = "正在登錄..."; 34 | "btg_info_signin_failed" = "帳號或密碼錯誤"; 35 | "btg_info_signin_captcha_invalid" = "驗證碼有誤"; 36 | "btg_info_network_unavailable" = "網絡連接失敗"; 37 | "btg_info_quicksignin" = "快速登錄"; 38 | "btg_info_quicksignin_tips" = "點擊下方帳號直接登錄"; 39 | 40 | "btg_info_tips_tag_0" = "通過標籤提交 Bug"; 41 | "btg_info_tips_tag_1" = "單擊屏幕選擇標籤位置"; 42 | "btg_info_tips_tag_2" = "單擊標籤改變方向"; 43 | "btg_info_tips_tag_3" = "長按標籤可編輯或刪除"; 44 | 45 | "btg_info_tags_empty" = "至少添加 1 個標籤"; 46 | "btg_info_tags_add_limit" = "最多添加 3 個標籤"; -------------------------------------------------------------------------------- /Bugtags.framework/Bugtags: -------------------------------------------------------------------------------- 1 | Versions/Current/Bugtags -------------------------------------------------------------------------------- /Bugtags.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Bugtags.framework/Versions/A/Bugtags: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bugtags/Bugtags-iOS/dec71c7b80766b74f5495381f440f6eeb519ad43/Bugtags.framework/Versions/A/Bugtags -------------------------------------------------------------------------------- /Bugtags.framework/Versions/A/Headers/BTGConstants.h: -------------------------------------------------------------------------------- 1 | // 2 | // BTGConstants.h 3 | // Bugtags 4 | // 5 | // Created by Stephen Zhang on 15/6/4. 6 | // Copyright (c) 2021 bugtags.cn. All rights reserved. 7 | // 8 | 9 | #ifndef Bugtags_BTGConstants_h 10 | #define Bugtags_BTGConstants_h 11 | 12 | #import 13 | #import 14 | 15 | /** 16 | * Bugtags 呼出方式 17 | * 所有方式都会自动收集 Crash 信息(如果允许) 18 | */ 19 | typedef enum BTGInvocationEvent { 20 | 21 | // 静默模式,只收集 Crash 信息(如果允许) 22 | BTGInvocationEventNone, 23 | 24 | // 通过摇一摇呼出 Bugtags 25 | BTGInvocationEventShake, 26 | 27 | // 通过悬浮小球呼出 Bugtags 28 | BTGInvocationEventBubble 29 | 30 | } BTGInvocationEvent; 31 | 32 | /** 33 | * Bugtags 数据获取模式,目前只对远程配置有效 34 | */ 35 | typedef enum BTGDataMode { 36 | 37 | // 获取生产环境的数据 38 | BTGDataModeProduction, 39 | 40 | // 获取测试环境的数据 41 | BTGDataModeTesting, 42 | 43 | // 获取本地的数据文件 44 | // 远程配置,自动读取本地 mainBundle 的 main.local.plist 文件 45 | BTGDataModeLocal 46 | 47 | } BTGDataMode; 48 | 49 | /** 50 | * 远程配置状态 51 | */ 52 | typedef enum BTGRemoteConfigState { 53 | 54 | BTGRemoteConfigStateNone, 55 | 56 | // 已从本地缓存中获取数据 57 | BTGRemoteConfigStateLoadedFromCache, 58 | 59 | // 已从 Bugtags 云端获取数据 60 | BTGRemoteConfigStateLoadedFromRemote, 61 | 62 | } BTGRemoteConfigState; 63 | 64 | typedef void (^BTGRemoteConfigCallback)(BTGRemoteConfigState state, NSDictionary *data); 65 | 66 | UIKIT_EXTERN NSString *const BTGUserStepLogCapacityKey; 67 | UIKIT_EXTERN NSString *const BTGConsoleLogCapacityKey; 68 | UIKIT_EXTERN NSString *const BTGBugtagsLogCapacityKey; 69 | UIKIT_EXTERN NSString *const BTGNetworkLogCapacityKey; 70 | UIKIT_EXTERN NSString *const BTGCustomCrashWithScreenshotKey; // 手动提交的异常是否截图 默认 NO 71 | UIKIT_EXTERN NSString *const BTGNetworkActivityIndicatorHiddenKey; // 是否隐藏网络请求状态 默认 NO 72 | UIKIT_EXTERN NSString *const BTGCrashLogAllThreadsKey; 73 | 74 | #endif 75 | -------------------------------------------------------------------------------- /Bugtags.framework/Versions/A/Headers/Bugtags.h: -------------------------------------------------------------------------------- 1 | /* 2 | File: Bugtags/Bugtags.h 3 | 4 | Contains: API for using Bugtags's SDK. 5 | 6 | Copyright: (c) 2021 by Bugtags, Ltd., all rights reserved. 7 | 8 | Version: 3.3.0 9 | */ 10 | 11 | #import 12 | #import 13 | #import "BTGConstants.h" 14 | 15 | @interface BugtagsOptions : NSObject 16 | 17 | /** 18 | * 是否跟踪闪退,联机 Debug 状态下默认 NO,其它情况默认 YES 19 | */ 20 | @property(nonatomic, assign) BOOL trackingCrashes; 21 | 22 | /** 23 | * 是否跟踪用户操作步骤,默认 YES 24 | */ 25 | @property(nonatomic, assign) BOOL trackingUserSteps; 26 | 27 | /** 28 | * 是否收集控制台日志,默认 YES 29 | */ 30 | @property(nonatomic, assign) BOOL trackingConsoleLog; 31 | 32 | /** 33 | * 是否收集用户位置信息,默认 YES 34 | */ 35 | @property(nonatomic, assign) BOOL trackingUserLocation; 36 | 37 | /** 38 | * 是否跟踪网络请求,只跟踪 HTTP / HTTPS 请求,默认 NO 39 | * 强烈建议同时设置 trackingNetworkURLFilter 对需要跟踪的网络请求进行过滤 40 | */ 41 | @property(nonatomic, assign) BOOL trackingNetwork; 42 | 43 | /** 44 | * 设置需要跟踪的网络请求 URL,多个地址用 | 隔开,支持正则表达式,不设置则跟踪所有请求 45 | * 强烈建议设置为应用服务器接口的域名,如果接口是通过 IP 地址访问,则设置为 IP 地址 46 | * 如:设置为 bugtags.com,则网络请求跟踪只对 URL 中包含 bugtags.com 的请求有效 47 | */ 48 | @property(nonatomic, copy) NSString *trackingNetworkURLFilter; 49 | 50 | /** 51 | * 网络请求跟踪遇到 HTTPS 请求证书无效的时候,是否允许继续访问,默认 NO 52 | */ 53 | @property(nonatomic, assign) BOOL trackingNetworkContinueWithInvalidCertificate; 54 | 55 | /** 56 | * 是否收集闪退时的界面截图,默认 NO 57 | */ 58 | @property(nonatomic, assign) BOOL crashWithScreenshot; 59 | 60 | /** 61 | * 是否忽略所有的 Signal 闪退,设置为 YES 将不再收集 Signal 闪退,默认 NO 62 | */ 63 | @property(nonatomic, assign) BOOL ignoreSignalCrash; 64 | 65 | /** 66 | * 是否忽略 PIPE Signal (SIGPIPE) 闪退,默认 NO 67 | */ 68 | @property(nonatomic, assign) BOOL ignorePIPESignalCrash; 69 | 70 | /** 71 | * 是否开启用户登录,默认 YES 72 | */ 73 | @property(nonatomic, assign) BOOL enableUserSignIn; 74 | 75 | /** 76 | * 支持的屏幕方向,默认 UIInterfaceOrientationMaskAllButUpsideDown,请根据您的 App 支持的屏幕方向来设置 77 | * 1.1.2+ 不需要手动设置,SDK 会自动设置 78 | */ 79 | @property(nonatomic, assign) UIInterfaceOrientationMask supportedInterfaceOrientations __attribute__((deprecated)); 80 | 81 | /** 82 | * 设置应用版本号,默认自动获取应用的版本号 83 | */ 84 | @property(nonatomic, copy) NSString *version; 85 | 86 | /** 87 | * 设置应用 build,默认自动获取应用的 build 88 | */ 89 | @property(nonatomic, copy) NSString *build; 90 | 91 | /** 92 | * 设置应用的渠道名称 93 | */ 94 | @property(nonatomic, copy) NSString *channel; 95 | 96 | /** 97 | * 设置远程配置的数据获取模式 98 | * 默认为 BTGDataModeProduction,获取生产环境的数据 99 | * BTGDataModeTesting 获取测试环境的数据 100 | * BTGDataModeLocal 获取本地的数据文件,自动读取本地 mainBundle 的 main.local.plist 文件 101 | */ 102 | @property(nonatomic, assign) BTGDataMode remoteConfigDataMode; 103 | 104 | /** 105 | * 设置远程配置在执行过程中的回调 106 | */ 107 | @property(nonatomic, copy) BTGRemoteConfigCallback remoteConfigCallback; 108 | 109 | /** 110 | * 设置其它的启动项 111 | * 目前支持的可设置项如下: 112 | * BTGUserStepLogCapacityKey NSNumber 设置收集最近的用户操作步骤数量,默认 500 项 113 | * BTGConsoleLogCapacityKey NSNumber 设置收集最近的控制台日志数量,默认 500 项 114 | * BTGBugtagsLogCapacityKey NSNumber 设置收集最近的 Bugtags 自定义日志数量,默认 500 项 115 | * BTGNetworkLogCapacityKey NSNumber 设置记录最近的网络请求数量,默认 20 项 116 | */ 117 | @property(nonatomic, copy) NSDictionary *extraOptions; 118 | 119 | @end 120 | 121 | /** 122 | * 远程配置类 123 | * 124 | */ 125 | @interface BugtagsRemoteConfig : NSObject 126 | 127 | /** 128 | * 获取指定的字符串,没有指定的 key,则返回 nil 129 | * @param key key 130 | * @return 字符串 131 | */ 132 | - (NSString *)stringForKey:(NSString *)key; 133 | 134 | /** 135 | * 获取指定的 Bool 值,没有指定的 key,则返回 NO 136 | * @param key key 137 | * @return YES / NO 138 | */ 139 | - (BOOL)boolForKey:(NSString *)key; 140 | 141 | /** 142 | * 获取指定的整型值,没有指定的 key,则返回 0 143 | * @param key key 144 | * @return 整型值 145 | */ 146 | - (NSInteger)integerForKey:(NSString *)key; 147 | 148 | @end 149 | 150 | @interface Bugtags : NSObject 151 | 152 | /** 153 | * 初始化 Bugtags 154 | * @param appKey - 通过 bugtags.com 申请的应用appKey 155 | * @param invocationEvent - 呼出方式 156 | */ 157 | + (void)startWithAppKey:(NSString *)appKey invocationEvent:(BTGInvocationEvent)invocationEvent; 158 | 159 | /** 160 | * 初始化 Bugtags 161 | * @param appKey - 通过 bugtags.com 申请的应用appKey 162 | * @param invocationEvent - 呼出方式 163 | * @param options - 启动选项 164 | */ 165 | + (void)startWithAppKey:(NSString *)appKey invocationEvent:(BTGInvocationEvent)invocationEvent options:(BugtagsOptions *)options; 166 | 167 | /** 168 | * 设置 Bugtags 呼出方式 169 | * @param invocationEvent - 呼出方式 170 | */ 171 | + (void)setInvocationEvent:(BTGInvocationEvent)invocationEvent; 172 | 173 | /** 174 | * 获取 Bugtags 当前的呼出方式 175 | * @return 呼出方式 176 | */ 177 | + (BTGInvocationEvent)currentInvocationEvent; 178 | 179 | /** 180 | * Bugtags 日志工具,添加自定义日志,不会在控制台输出 181 | * @param format - 格式化字符串 182 | * @param ... - 字符串 183 | */ 184 | void BTGLog(NSString *format, ...) NS_FORMAT_FUNCTION(1,2); 185 | 186 | /** 187 | * Bugtags 日志工具,添加自定义日志,不会在控制台输出,功能等同于 BTGLog 188 | * 在 Swift 中请调用此方法添加自定义日志 189 | * @param content - 日志内容 190 | */ 191 | + (void)log:(NSString *)content; 192 | 193 | /** 194 | * 设置是否收集 Crash 信息 195 | * @param trackingCrashes - 默认 YES 196 | */ 197 | + (void)setTrackingCrashes:(BOOL)trackingCrashes; 198 | 199 | /** 200 | * 设置是否跟踪用户操作步骤 201 | * @param trackingUserSteps - 默认 YES 202 | */ 203 | + (void)setTrackingUserSteps:(BOOL)trackingUserSteps; 204 | 205 | /** 206 | * 设置是否收集控制台日志 207 | * @param trackingConsoleLog - 默认 YES 208 | */ 209 | + (void)setTrackingConsoleLog:(BOOL)trackingConsoleLog; 210 | 211 | /** 212 | * 设置是否收集用户位置信息 213 | * @param trackingUserLocation - 默认 YES 214 | */ 215 | + (void)setTrackingUserLocation:(BOOL)trackingUserLocation; 216 | 217 | /** 218 | * 设置是否跟踪网络请求,只跟踪 HTTP / HTTPS 请求 219 | * 强烈建议同时设置 trackingNetworkURLFilter 对需要跟踪的网络请求进行过滤 220 | * @param trackingNetwork - 默认 NO 221 | */ 222 | + (void)setTrackingNetwork:(BOOL)trackingNetwork; 223 | 224 | /** 225 | * 设置自定义数据,会与问题一起提交 226 | * @param data - 用户数据 227 | * @param key - key 228 | */ 229 | + (void)setUserData:(NSString *)data forKey:(NSString *)key; 230 | 231 | /** 232 | * 移除指定 key 的自定义数据 233 | * @param key - key 234 | */ 235 | + (void)removeUserDataForKey:(NSString *)key; 236 | 237 | /** 238 | * 移除所有自定义数据 239 | */ 240 | + (void)removeAllUserData; 241 | 242 | /** 243 | * 手动发送Exception 244 | * @param exception - 要提交的 exception 对象 245 | */ 246 | + (void)sendException:(NSException *)exception; 247 | 248 | /** 249 | * 发送用户反馈 250 | * @param content - 反馈内容 251 | */ 252 | + (void)sendFeedback:(NSString *)content; 253 | 254 | /** 255 | * 发送用户反馈 256 | * @param content - 反馈内容 257 | * @param image - 附图 258 | */ 259 | + (void)sendFeedback:(NSString *)content image:(UIImage *)image; 260 | 261 | /** 262 | * 添加自定义用户步骤 263 | * @param content - 步骤内容 264 | */ 265 | + (void)addUserStep:(NSString *)content; 266 | 267 | /** 268 | * 设置问题提交之前的回调 269 | * 手动提交问题或自动捕捉到崩溃,在保存相关数据之前会调用该回调 270 | * @param callback - 回调的 block 271 | */ 272 | + (void)setBeforeSendingCallback:(void (^)(void))callback; 273 | 274 | /** 275 | * 设置问题提交成功后的回调 276 | * 手动提交问题或自动捕捉到崩溃,在相关数据成功提交到 Bugtags 云端后调用该回调 277 | * @param callback - 回调的 block 278 | */ 279 | + (void)setAfterSendingCallback:(void (^)(void))callback; 280 | 281 | /** 282 | * 设置是否仅在 WiFi 模式下才上传数据 283 | * @param onlyViaWiFi - 默认 NO 284 | */ 285 | + (void)setUploadDataOnlyViaWiFi:(BOOL)onlyViaWiFi; 286 | 287 | /** 288 | * 手动调用截屏界面 289 | */ 290 | + (void)invoke; 291 | 292 | /** 293 | * 注册插件 294 | * @param plugin 需要注册的插件 295 | * @return 注册成功 - YES,注册失败 - NO 296 | */ 297 | + (BOOL)registerPlugin:(id)plugin; 298 | 299 | /** 300 | * 卸载插件 301 | * @param plugin 需要卸载的插件 302 | */ 303 | + (void)unregisterPlugin:(id)plugin; 304 | 305 | /** 306 | * 获取远程配置 307 | * @return BugtagsRemoteConfig 308 | */ 309 | + (BugtagsRemoteConfig *)remoteConfig; 310 | 311 | /** 312 | * 手动同步远程配置 313 | * Bugtags 初始化会自动调用一次 314 | * 如果本地缓存数据已经是最新版本,则不会拉取数据,相当于调用 [Bugtags sync:NO] 315 | */ 316 | + (void)sync; 317 | 318 | /** 319 | * 手动同步远程配置 320 | * @param force 清除本地缓存后重新拉取数据 321 | */ 322 | + (void)sync:(BOOL)force; 323 | 324 | @end 325 | -------------------------------------------------------------------------------- /Bugtags.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Bugtags.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = "Bugtags" 3 | s.version = "3.3.0" 4 | s.summary = "Bug reporting for mobile apps, improve your app anytime, anywhere. Learn more at https://bugtags.cn." 5 | s.homepage = "https://bugtags.cn/" 6 | s.license = { 7 | :type => 'Commercial', 8 | :text => <<-LICENSE 9 | Copyright (C) 2021 Bugtags. 10 | Permission is hereby granted to use this framework as is, modification are not allowed. 11 | All rights reserved. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | LICENSE 21 | } 22 | s.author = { "Bugtags" => "dev@bugtags.com" } 23 | s.platform = :ios, '7.0' 24 | s.source = { :git => "https://github.com/bugtags/Bugtags-iOS.git", :tag => s.version.to_s } 25 | s.default_subspec = 'Core' 26 | 27 | s.subspec 'Core' do |ss| 28 | ss.source_files = 'Bugtags.framework/Versions/A/Headers/*.{h}' 29 | ss.resources = 'Bugtags.bundle' 30 | ss.preserve_paths = 'Bugtags.framework/*', 'Bugtags.bundle' 31 | ss.frameworks = 'UIKit', 'ImageIO', 'AVFoundation', 'SystemConfiguration', 'CoreLocation', 'Security', 'CFNetwork', 'Bugtags' 32 | ss.libraries = 'c++' 33 | ss.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '"$(PODS_ROOT)/Bugtags/"', 'OTHER_LDFLAGS' => '-ObjC' } 34 | ss.requires_arc = true 35 | 36 | ss.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 37 | ss.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 38 | end 39 | end -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bugtags iOS SDK 2 | 3 | Bugtags for iOS, reports bugs and their diagnosis information in one step, detects crashes automatically. Improve your apps anywhere, anytime. 4 | 5 | # Features 6 | 7 | 1. Automatically take screenshot, add tags to describe the bug. 8 | 2. Automatically gather device details and app context data following reporting bugs. 9 | 3. Automatically detect crashes and symbolicate stack traces. 10 | 4. Automatically collect network reqeust data. 11 | 5. Powerful bug lifecycle management. 12 | 13 | **[Video tour](https://blog.bugtags.cn/2015/12/23/bugtags-intro-video/)** 14 | 15 | [Create a free account](https://bugtags.cn/) and invite your team to improve your apps. 16 | 17 | ## Requirements 18 | 19 | Bugtags requires iOS 7.0 and above. 20 | 21 | ## Installation 22 | 23 | Bugtags is available through [CocoaPods](https://cocoapods.org). To install 24 | it, simply add the following line to your Podfile: 25 | 26 | ```ruby 27 | pod 'Bugtags' 28 | ``` 29 | --------------------------------------------------------------------------------