美文网首页
MacOS - Achieve and Upload to fi

MacOS - Achieve and Upload to fi

作者: ienos | 来源:发表于2017-01-20 15:24 被阅读49次

    打包所需要的参数:

    Build Mode

    xcworkspace、xcodeproj

    Code Sign Identity security

    命令行 find-identity -v -p codesigning 参考链接

    API Token

    从 fir.im 获取用户标识

    Project Root Path

    手动浏览文件获取工程路径

    NSOpenPanel *openPanel = [NSOpenPanel openPanel];
        NSArray *fileTypes = [NSArray arrayWithObjects:@"xcworkspace", @"xcodeproj", nil];
        [openPanel setAllowsMultipleSelection:NO];
        [openPanel setMessage:@"Choose an project file to display:"];
        [openPanel setAllowedFileTypes:fileTypes];
        [openPanel setDirectoryURL:[NSURL fileURLWithPath:@"/Library/Desktop/"]];
        [openPanel beginSheetModalForWindow:viewController.view.window completionHandler:^(NSInteger result) {
            if (result == NSModalResponseOK)
            {
                if ([[openPanel URL] isFileURL])
                {
                }
            }
    }];
    

    Provisioning Profile

    • 到 ~/Library/MobileDevice/Provisioning Profiles/ 路径下查看所有以 UUID 命名的描述文件。
    • 命令行 mobileprovision-read -f UUID.mobileprovision -o Name 查询对应描述文件的名字。

    NSTask

    在工程项目中执行命令行

        // 初始化 NSTask
        self.executePyTask = [[NSTask alloc]init]; 
        // 当前执行的路径,相当于 cd 到指定路径。
        self.executePyTask.currentDirectoryPath = [NSBundle mainBundle].resourcePath; 
        // 二进制程序的路径。 如果不清楚命令的路径可以在终端运行,以 python 为例:which python,查看所属路径。
        self.executePyTask.launchPath = @"/usr/bin/python"; 
        // 分配参数,每一个参数作为数组中的一个元素
        self.executePyTask.arguments = @[@"GKAutoBuild.py", @"-b", b, @"-a", a, @"-c", c,@"-p", p, @"-m", m, @"-n", n,@"-f",[NSString stringWithFormat:@"%@.%@",n,b]];
        // 输出通道初始化(提供执行结果)
        NSPipe *pipe = [NSPipe pipe];
        self.executePyTask.standardOutput = pipe;
        self.outPutHandle = [pipe fileHandleForReading];
        // 实时监听输出结果
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifi_outPutFileReadProcess:) name:NSFileHandleReadCompletionNotification object:self.outPutHandle];
        // 监听是否完成任务
        [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notifi_executePyTaskDidTerminate:) name:NSTaskDidTerminateNotification object:self.executePyTask];
        // 开启任务
        [self.executePyTask launch];
        // 调用这个方法通知才有效
        [self.outPutHandle readInBackgroundAndNotify];
        
    - (void)notifi_outPutFileReadProcess:(NSNotification *)notified
    {   
        if(self.executePyTask){
            // 任务未完成之前每发送一次通知之后,需要重新调用该方法,使通知有效
            [self.outPutHandle readInBackgroundAndNotify];
        }
    }
    
    - (void)notifi_executePyTaskDidTerminate:(NSNotification *)notified
    {
        // 任务完成将 task 置空,防止重复调用 notifi_outPutFileReadProcess:
        self.executePyTask = nil;
    }
    

    Mac OS

    NSTextView

    // 设置输出窗口内容
        NSTextStorage *ts = [outPutTextView textStorage];
        // NSTextView 插入字符串
        //  [outPutTextView insertText:(nonnull id) replacementRange:(NSRange)];
        [ts replaceCharactersInRange:NSMakeRange([ts length], 0)
                          withString:outPutString];
        // 滚动到最后一行
        [outPutTextView scrollRangeToVisible:NSMakeRange([[outPutTextView string] length], 0)];
    

    Python

    对 Python 脚本传参数

    对于全局变量需要使用 global

    var = "2"
    def main():
        gobal var 
        var = "1"
    

    其他问题:

    对类名进行重名的时候发生错误:

    Paste_Image.png

    解决方法 : 在 .h 文件的 @interface 定义前加上 @class classname; 就可以完成重命名。

    相关文章

      网友评论

          本文标题:MacOS - Achieve and Upload to fi

          本文链接:https://www.haomeiwen.com/subject/zziwbttx.html