在iPhone OS中encryptionSQLite数据库文件

iPhone上的任何SQLite数据库都只是一个与应用程序捆绑在一起的文件。 任何人提取这个文件并查询它都是相对简单的。 你有什么build议encryption文件或存储在数据库中的数据。 编辑:该应用程序是一个游戏,将对其他用户玩。 有关用户相对优势和弱点的信息将存储在数据库中。 我不希望用户能够将手机的声誉/权力等问题囚禁起来,然后赢得比赛/联赛等(注意:由于这个想法是在NDA之下,所以要模糊)。 我不需要军事encryption,我只是不想用纯文本存储的东西。 编辑2:多一点澄清,我的主要目标是 使敏感数据变得不重要 有一个简单的方法来发现数据是否被改变(某种校验和)

dispatch_sync对@synchronized具有哪些优点?

可以说我想让这个代码是线程安全的: – (void) addThing:(id)thing { // Can be called from different threads [_myArray addObject:thing]; } GCD接缝就像实现这一点的首选方式: – (void) addThing:(id)thing { dispatch_sync(_myQueue, ^{ // _myQueue is serial. [_myArray addObject:thing]; }); } 与传统方法相比,它有什么优势? – (void) addThing:(id)thing { @synchronized(_myArray) { [_myArray addObject:thing]; } }

为什么我的iOS应用程序不能在其他应用程序的“打开”对话框中显示?

我试图实现注册过程,允许我的iOS应用程序显示在其他应用程序的“Open in”列表中(如Apple的文档交互编程主题中所述 )。 我希望我的应用程序能够处理将提供标准audio文件格式(MP3,AIFF,WAV等)的任何应用程序的audio。 据我所知,我所需要做的就是将CFBundleDocumentTypes键和相关的子数据添加到我的应用的Info.plist中。 这是我(通过Xcode 4的文档types编辑器): <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeIconFiles</key> <array> <string>scrubbulator-icon</string> </array> <key>CFBundleTypeName</key> <string>Audio</string> <key>LSHandlerRank</key> <string>Alternative</string> <key>LSItemContentTypes</key> <array> <string>public.mp3</string> </array> </dict> </array> 此代码的添加不会在应用程序的“打开方式”菜单中显示我的应用程序(我正在使用Dropbox中的MP3作为文件源在iPhone上进行testing,应用程序AudioMemos和Evernote都显示在Dropbox中的MP3文件中,所以我知道格式是支持的)。 有什么明显的我做错了,还是有什么我需要实现? (注意:我没有在Info.plist中设置一个UTExportedTypeDeclarations项目,因为我知道这些只对自定义的UTI是必需的,因为我使用的是系统UTI,我认为这不是必须的,但是请纠正我我错了。) 编辑 我已经添加了以下导出types的UTI,但没有成功: <key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>kUTTypeMP3</string> </array> <key>UTTypeDescription</key> <string>Audio file</string> <key>UTTypeIdentifier</key> <string>kUTTypeMP3</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <array> <string>mp3</string> </array> </dict> </dict> </array>

有没有办法从仪器(XCode)的命令行实例中删除授权提示?

我目前使用仪器通过bash脚本启动命令行界面来启动自动化插件的运行。 有了4.2,这个效果已经足够好了,但是随着升级到Xcode 4.3,我现在被提示授权用户“分析其他进程”。 即使授予了正确的凭据,也不会有用户实际进行身份validation。 我得到以下错误: Failed to authorize rights (0x20) with status: -60007. 2012-02-27 19:30:37.232 instruments[54151:1c03] Failed to connect to local pid watcher service: (os/kern) failure 即使身份validation失败,自动化插件也会执行,但是这需要我的脚本拥有一个物理保姆input凭据,这在许多方面都会破坏这些命令行运行的目的。 是否有可能添加用户的详细信息作为参数? 还是有其他的方法可以跳过这个提示,而不需要一个人在钥匙? – 编辑 – 当您尝试从GUI首次运行UIAutomationtesting时,会出现此授权对话框。 提起雷达rdar:// 10945962 。 – 编辑 – 一旦授权对话框在GUI中被回答,提示将停止显示在命令行上。 虽然这种解决方法似乎不是“有效的”答案。

Xcode 6 Save for Enterprise Deployment不会为ipa创buildplist吗?

Xcode 5帮助创build企业ipa的plist描述符。 Xcode 6(6A313)仅创buildipa。 这是一个错误还是有意的改变? 如果是这样 – 退后一步的原因是什么? 如果我以前没有使用Xcode 5生成plist,我需要自己手工创build。 你知道有哪个自动工具可以帮助你吗?

如何在iPhone上绘制透明的笔画(或者任何清晰的图像部分)

我有一个小应用程序,允许用户用手指在屏幕上绘制。 我有一个用户绘制的UIImageView ,通过创build一个CGContextRef和各种CG draw函数。 我主要用CGContextAddLineToPoint函数绘制笔画/线条 现在我的问题是这样的:用户可以绘制各种颜色的线条。 我想给他能够使用"rubber"工具来删除到目前为止绘制的图像的一部分,用手指。 我最初是通过使用白色的笔触(使用CGContextSetRGBStrokeColor函数设置)做到这一点,但它没有解决…因为我后来发现UIImageView上的UIImage实际上有一个透明的背景,而不是白色的…所以我最终会得到一个白色的透明图像! 无论如何设置一个"transparent"笔触颜色,或者有什么其他的方式来清除用户的手指下CGContextRef的内容,当他移动它? 谢谢

在UIWebview中允许未经validation的SSL证书

我在UIWebView中embedded一个网站。 在开发过程中,我指向了localhost。 问题是,只要它点击“https://”url,它不会加载。 当我加载移动Safari浏览器的url,我得到这个popup窗口: 有没有一种方法来覆盖这与UIWebView允许未经validation的url?

iOS构build/ ipa创build不再可以从命令行工作

概观 我们的命令行构build(构build和创build.ipa)不再有效。 iTunesConnect已经开始拒绝使用CODE_SIGN_RESOURCE_RULES_PATH构build设置的构build。 如果我们没有这个设置,我们使用PackageApplication工具(我们用来创build签名的.ipa)失败。 看起来,即使CODE_SIGN_RESOURCE_RULES_PATH构build设置被排除,PackageApplication也会使用资源规则参数调用/ usr / bin / CODE_SIGN_RESOURCE_RULES_PATH 我怀疑PackageApplication需要更新,以便在排除CODE_SIGN_RESOURCE_RULES_PATH构build设置时CODE_SIGN_RESOURCE_RULES_PATH使用资源规则参数调用/ usr / bin / CODE_SIGN_RESOURCE_RULES_PATH 。 有没有人find这个解决scheme? 细节 我们在命令行上构build我们的应用程序,如下所示: xcodebuild -workspace myApp.xcworkspace -scheme myApp -sdk iphoneos -configuration AppStoreDistribution OBJROOT=$PWD/build SYMROOT=$PWD/build ONLY_ACTIVE_ARCH=NO 'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist' 我们在命令行上创build签名的.ipa,如下所示: xcrun -log -sdk iphoneos PackageApplication "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.app" -o "/Users/mpv/dev/myApp/build/AppStoreDistribution-iphoneos/myApp.ipa" -sign "iPhone Distribution: MyTeam (XXXXXXXXXX)" -embed /Users/mpv/Library/MobileDevice/Provisioning\ Profiles/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.mobileprovision iTunesConnect现在拒绝我们的版本,出现以下错误: “这个包是无效的Info.plist包含myApp [myApp.app]包中的一个无效的键”CFBundleResourceSpecification“ 如果我们从构build命令中删除了'CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist'位,那么应用程序就没有CFBundleResourceSpecification plist键(我认为是我们想要的)。 […]

iOS – 确保主线程执行

我想知道如何在主线程上调用我的function 。 我如何确保我的function在主线程上调用? (这是我之前的一个问题 )。

XCode / iOS模拟器:手动触发重要的位置更改

是否有办法手动告诉设备发送重要的位置更改通知,以唤醒为此通知注册的所有应用程序? 这只是为了testing,我意识到这个私人API调用将被提交到应用程序商店被拒绝。