在iOS中更新资源的简单方法(无需编译)

时间:2012-12-01 20:03:20

标签: ios resources

我想知道是否有任何方法可以改进iOS中程序员和设计人员的工作流程,而无需记录源代码控制或代码。

目前我有一位设计师与我合作,感觉代码和源代码控制都不合适。然后,每次他想在应用程序中间看到资源时,我都必须重新编译。

我可以使用Web服务,只获取每次应用程序启动时更改的资源。但是,我觉得如果他改变大约10个10-20兆的视频(例如新的压缩测试),这个解决方案会令人沮丧。

在Windows 8中,我可以使用库文件夹中的资源创建一个文件夹,他可以访问它并替换资源。然后,应用程序可以加载该文件夹中的所有资源。但我在iOS中可以做些什么?没有SD卡(或外部硬盘驱动器),我认为我不能将资源放在一个文件夹中并将它们加载到应用程序中。

2 个答案:

答案 0 :(得分:3)

对我来说,我会通过将UIFileSharingEnabled添加到Info.plist

,在iTunes文件共享中提供我的应用程序

然后我用自定义方法包装我的调用来加载资源,例如:

- (NSString *)pathForImage:(NSString *)imageName
{
    // Somewhere like this:
    // /var/mobile/Applications/01234567-89AB-CDEF-0123-456789ABCDEF/Documents/images/
    NSString *imagesPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    imagesPath = [imagesPath stringByAppendingPathComponent:@"images"];

    NSString *path = [imagesPath stringByAppendingPathComponent:imageName];

    if ([[NSFileManager defaultManager] fileExistsAtPath:path])
    {
        return path;
    }
    else
    {
        NSString *fileName = [imageName stringByDeletingPathExtension];
        NSString *fileExt = [imageName pathExtension];
        return [[NSBundle mainBundle] pathForResource:fileName ofType:fileExt];
    }
}

更改我的图片加载代码
[UIImage imageNamed:@"foo.png"];

[UIImage imageWithContentsOfFile:[self pathForImage:@"foo.png"]];

下次当设计师想要更新资源时,他/她可以打开iTunes并将新文件拖放到您的应用中。 iTunes File Sharing 有关iTunes文件共享的更多信息,请查看Apple's documentation

更新:如果您的应用不为最终用户使用iTunes文件共享,请记得通过删除Info.plist中的UIFileSharingEnabled将其关闭!否则,Apple可能会拒绝您的应用,因为您启用了未使用的功能,这可能会让用户感到困惑。

答案 1 :(得分:0)

在它运行的模拟器中,在设备上,交换资源打破代码签名...当然你也可以更改应用程序,以便从应用程序库文件夹加载图像...他想ssh到iphone还是这样?

会安装他xcode和模拟器(实际上我让我们的设计师使用xcode,他们可以构建应用程序!)