你是一名精通 UI 设计和产品规划的全栈工程师,你的目标是完成一个"健身普拉提"iOS App 的开发。
你的核心任务是输出一套完整的APP原型图(HTML页面形式)来辅助后续的开发任务。
核心执行点:
- 明确功能与页面: 请你构思并确定"健身普拉提"App的核心功能模块。基于这些模块,规划出需要设计的HTML页面清单。
- 产品与UI/UX设计:
- 以产品经理的视角规划APP的关键功能、页面流程和交互逻辑。
- 以设计师的视角输出符合现代iOS App风格的、美观且用户友好的UI/UX。
你是一名精通 UI 设计和产品规划的全栈工程师,你的目标是完成一个"健身普拉提"iOS App 的开发。
你的核心任务是输出一套完整的APP原型图(HTML页面形式)来辅助后续的开发任务。
核心执行点:
| NSString* getLocalIP() { // 获取wifi ipv4 | |
| NSString* result = nil; | |
| struct ifaddrs* interfaces = 0; | |
| struct ifaddrs* temp_addr = 0; | |
| if (0 == getifaddrs(&interfaces)) { | |
| temp_addr = interfaces; | |
| while(temp_addr != NULL) { | |
| if(temp_addr->ifa_addr->sa_family == AF_INET) { | |
| if(!strcmp(temp_addr->ifa_name, "en0")) { | |
| char* ip = inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr); |
| import threading | |
| import frida | |
| import codecs | |
| import os | |
| from esign.exec_tool import Logger | |
| # 根目录 | |
| root_dir = os.path.dirname(os.path.realpath(__file__)) | |
| # js脚本目录 | |
| script_dir = os.path.join(root_dir, "js/") |
| static const char kNameKey; | |
| @implementation Person (Test) | |
| - (void)setName:(NSString *)name | |
| { | |
| objc_setAssociatedObject(self, &kNameKey, name, OBJC_ASSOCIATION_COPY_NONATOMIC); | |
| } | |
| - (void)getName |
| # 定义ANSI转义码颜色常量 | |
| RED='\033[0;31m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[0;33m' | |
| CYAN='\033[0;36m' | |
| NC='\033[0m' # 恢复默认颜色 | |
| # 显示带颜色的文本菜单选项 | |
| echo "${GREEN}请选择以下选项:${NC}" |
| name: build-mac-actions | |
| on: [push] | |
| run-name: ${{ github.actor }} is package mac app actions | |
| jobs: | |
| build: | |
| runs-on: macos-latest | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - uses: subosito/flutter-action@v2 | |
| with: |
| name: Flutter_iOS | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| branches: [master] | |
| jobs: | |
| build_ios: |
| func rtfDataToHtmlData(data: Data) -> Data? { | |
| let attributedString = NSAttributedString(rtf: data, documentAttributes: nil)! | |
| do { | |
| let htmlData = try attributedString.data(from: NSRange(location: 0, length: attributedString.length), documentAttributes: [NSAttributedString.DocumentAttributeKey.documentType:NSAttributedString.DocumentType.html]) | |
| return htmlData | |
| } catch { | |
| } | |
| return nil | |
| } |
| - (void)addVolumeObserver | |
| { | |
| AVAudioSession *audioSession = [AVAudioSession sharedInstance]; | |
| NSError *error = nil; | |
| [audioSession setActive:YES error:&error]; | |
| if (error) { | |
| NSLog(@"%@", error); | |
| } | |
| [audioSession addObserver:self forKeyPath:@"outputVolume" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:NULL]; |
| if [ "${ACTION}" = "build" ] | |
| then | |
| INSTALL_DIR=${SRCROOT}/Products/${PROJECT_NAME}.framework | |
| DEVICE_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework | |
| SIMULATOR_DIR=${BUILD_ROOT}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework |