因此,我试图了解AWS Cognito,但我遇到了一些问题.
所以,现在我可以注册一个帐户,并验证并登录.简单就够了.边缘的情况是我的墙壁.
这是我到目前为止的信息:
username
一旦创建,就不能改变username
价值观email
被标记为别名,在Cognito术语中表示我可以使用它来进行登录username
.如果email
选择作为别名,则根据文档,相同的值不能用作用户名(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user -pool-settings-aliases):
如果选择电子邮件作为别名,则用户名与有效的电子邮件格式不匹配.同样,如果选择电话号码作为别名,则该用户池的服务将不接受与有效电话号码模式匹配的用户名.
只有在帐户经过验证后,该email
地址才能用于登录(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-别名)
在验证电话号码和电子邮件地址后,电话号码和电子邮件地址仅成为用户的活动别名.因此,如果您选择将它们用作别名,我们建议您选择自动验证电子邮件地址和电话号码.
这就是我的优势所在.
如果一个用户注册,但不立即确认:
在他们看来,他们已注册但未验证他们的帐户.在这一点上,它实际上没有办法验证他们认为他们注册的帐户.我猜它可以通过消息解决:
"在您验证电子邮件地址之前,警告您的帐户不会被创建." 或类似的规定.无论如何...
username
.username
甚至可以是什么,因为他们只输入了他们的电子邮件地址."堆积"可能是一个过于强烈的短语,这可能是一个非常边缘的情况.
现在好的方面是,因为他们没有"验证"他们,email
他们可以使用相同的email
地址再次注册,因为email
它没有得到唯一约束,直到它verified
.如果有人试图验证已经验证的地址,他们会得到一个AliasExistsException
.这实际上提出了一个我刚刚测试过的有趣点.
我可以使用电子邮件地址注册,然后验证该电子邮件地址,以便确认该帐户.然后,我可以右转并使用相同的电子邮件地址注册,在尝试使用重复的电子邮件地址验证该帐户之前,我没有收到正式的AWS错误.以前没有办法表明这个错误?我想期望开发人员在预注册触发器中编写验证服务:
当用户提交其信息以进行注册时,将调用此触发器,允许您执行自定义验证以接受或拒绝注册请求.
总结一下,并重申一下这个问题:
实际上,似乎需要在使用带有Cognito的电子邮件地址时需要预先注册Lambda,以确保不存在具有电子邮件的帐户,因为在验证尝试之前不会处理AWS异常制作.
我的假设在这里是否正确?根据这里的要求,我认为让用户知道电子邮件地址不能尽快提供是非常合理的.例如:
John …
Run Code Online (Sandbox Code Playgroud) 我正在使用Visual Studio for Mac
,我的应用程序是写的,它做我想要的.用户的目标平台是OSX.它依赖于2个具有自己依赖关系的Nuget包,具体来说:
我运行以下命令到build
应用程序:
dotnet build -c Release -r osx.10.11-x64
Run Code Online (Sandbox Code Playgroud)
输出告诉我它成功并显示我放置文件的位置.
包含在该文件夹中的是以下文件,这个文件夹是我假设我分发给我的用户,但这会导致错误,因此这个问题:
MyApp <---- executable
MyApp.deps.json
MyApp.dll
MyApp.pdb
MyApp.runtimeconfig.dev.json
MyApp.runtimeconfig.json
libhostfxr.dylib
libhostpolicy.dylib
Run Code Online (Sandbox Code Playgroud)
所以我的用户收到了这个,他们已经dotnet
安装了运行时.当他们去运行可执行文件(这里MyApp
也称为./MyApp
)时,他们会收到以下错误:
An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
package: 'AsyncIO', version: '0.1.26'
path: 'lib/netstandard1.3/AsyncIO.dll'
Run Code Online (Sandbox Code Playgroud)
现在,AsyncIO
是一个依赖,NetMQ
所以它来自哪里.但是,我可以./MyApp
从我的文件系统的任何地方,它的工作原理.因此,我认为我的系统上安装的Nuget软件包作为开发系统仍然可以访问,而新用户的系统则不然.我还没有找到任何与Mac发行有关的文档.我现在唯一能想到的就是分发项目文件,并指示用户运行:
dotnet run -p MyApp.csproj
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,将安装nuget包.
我也可以让用户使用:
dotnet MyApp.dll
Run Code Online (Sandbox Code Playgroud)
我在google搜索中看到了这种形式.这引起了他们的质疑,但是为什么会生成可执行文件.乞丐不能选择,如果这样做dotnet <dll>
我很开心,我只需要让它运行.
我必须在这里找到一些东西,否则netcore2.0应用程序的这个细节,分布只是被忽略了?
在挖掘更多这个似乎也是一个有用的命令:
dotnet publish -c Release --framework …
Run Code Online (Sandbox Code Playgroud) 查看传统位置:查看 - >自定义触控栏...该选项不存在.这个选项目前不可用吗?我想禁用它提供的大多数选项是我要去的地方.
我在编辑时不断地按下前进和后退按钮,它很快就变得很烦人.
当我尝试更新我的手指肌肉记忆时,我想我会问.
我能弄清楚的最好的是:
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
let sb = NSStoryboard(name: "Main", bundle: nil)
let controller = sb?.instantiateInitialController() as NSWindowController
controller.window?.makeKeyAndOrderFront(self)
self.window = controller.window
}
return true
}
Run Code Online (Sandbox Code Playgroud)
但这要求我在我的app委托上设置一个ref窗口.由于应用程序最初启动时不需要这样做,所以我非常肯定我做错了什么而丢失了明显的东西.
此解决方案似乎也有效
func applicationShouldHandleReopen(sender: NSApplication, hasVisibleWindows flag: Bool) -> Bool {
if !flag{
for window in sender.windows{
if let w = window as? NSWindow{
w.makeKeyAndOrderFront(self)
}
}
}
return true
}
Run Code Online (Sandbox Code Playgroud)
这是第3个解决方案,我也找到了工作,从你的内部NSApplicationDelegate
:
var mainWindow: NSWindow!
func applicationDidFinishLaunching(aNotification: NSNotification) {
mainWindow = NSApplication.sharedApplication().windows[0] as! NSWindow
} …
Run Code Online (Sandbox Code Playgroud) 所以我遇到了我的框架需要访问的问题KeyChain
.这没关系,但在模拟器中运行时似乎失败了.挖掘它似乎是一个已知的问题,xctest
在这里做错了.很公平,错误发生了.在Apple Developer论坛中,我们将在此讨论:
对.
这是库测试的一个众所周知的问题(有时称为Xcode的逻辑测试).这些测试由没有权利的工具(xctest)运行.从历史上看,这会给使用自定义权利的人(例如访问CloudKit)带来问题,但现在它也会影响使用钥匙串的人.
AFAIK没有直接的解决方法. 但是,我相信您可以通过在您的应用程序中运行此测试代码来避免此问题(强调我的)(在文档中称为app测试).
因为这些会在您的应用内部运行,所以他们会获得应用的权利.如果您没有方便的应用程序,您可以创建一个虚拟的应用程序来托管测试.(强调我的 怎么做?)
如果您遇到任何障碍,请试试这个并告诉我们.哦,不要让变通方法的可用性阻止你提交有关此问题的错误.Xcode应该能够使用权利运行库测试,而最近的钥匙串更改使这一点变得更加重要.分享和享受
https://forums.developer.apple.com/message/179846(参见:Eskimo的回复于2016年11月4日上午2:12)
他再次在另一个回复中说:
- 您可以通过在应用程序中运行测试来避免此问题,如果您没有方便,则可以创建虚拟应用程序.(强调我的)
- 请随意提交有关此限制的错误.
所以他再次提到:
您可以通过在应用程序中运行测试来避免此问题,如果您没有方便,则可以创建虚拟应用程序.
我很乐意这样做,我似乎无法弄清楚如何做到这一点.
我有的部分:
Framework Project
|
|- Unit Test Target
|- Framework Target
Dummy App Project
|
|- ??? How do I make this run the Framework's Unit Test Target?
Run Code Online (Sandbox Code Playgroud) 例如,假设我在本地处理FAQ页面.我创建了我需要的任何插件/模板等.然后,在本地,我继续将插件添加到页面,调试,修改任何内容.现在是时候将它部署到生产中了.
我再次重做所有工作,复制/粘贴内容并重建FAQ页面,还是有另一种方法?我想到的事情:
创建表示结构/内容的数据迁移
将生产数据库同步到dev db,进行更改并在停机时间窗口内将其全部推回.
在Django CMS社区中是否有任何其他解决方案来处理这类事情?
数据迁移似乎是最好的方法,但我想我会确定我没有遗漏任何东西.
在 iOS 8 中,我有一个香草,当将 a应用于UITextView
第一行时,它会剪辑第一行的顶部,请参见下图:lineHeightMultiple
NSMutableParagraphStyle
lineHeightMultiple
除了后续行之外,它似乎还影响文本的第一行。
设置至少clipsToBounds = false
可以UITextView
显示剪切的部分,但是您可以从下图中看到,现在文本的顶部显然位于其框架上方:
我可以通过对违规行为设置最高限制UITextView
来弥补这一问题clipsToBounds = false
,但这对我来说就像是一种黑客攻击。
我还尝试使用 aWKWebView
来处理有问题的文本,然后设置 cssline-height
属性,效果很好。不过,当涉及到 UITextView 时,我一定缺少一些东西。
此外,lineSpacing
根据文档,将段落样式设置为小于 0 没有任何影响:
The distance in points between the bottom of one line fragment
and the top of the next.
**This value is always nonnegative.**
This value is included in the line fragment heights in the
layout manager.
Run Code Online (Sandbox Code Playgroud)
我也尝试过设置contentInset
以及UITextView
使用系统字体,两者都没有影响。
我的此设置的示例代码如下: …
我有一个 Xcode(11.4.1- 尽管这发生在 11.4 和 11.3 中)工作区。该工作区由多个 iOS Swift 静态库组成。其中一个库:lib(A)需要使用位于同一工作区中的另一个库lib(B)。
如果我只是尝试import
从lib(A) 中的某个源文件访问模块,编译器将无法找到这些符号。“查找隐式依赖关系”按我的理解工作就足够了,我必须这样做Link Binary With Libraries
;我可以接受,所以我明确链接它:
对于lib(A),我转到其目标并Link Binary With Libraries
在其下Build Phases
选择并从工作区浏览器中选择lib(B)。当我这样做时,我收到一个警告对话框:
文件已被链接
如果我按取消,它仍然会在 下添加所选项目Link Binary With Libraries
,但现在事情已经建立。为什么会有警告?
如果我还要向lib(A)的项目添加单元测试目标,则同样适用。如果我明确链接所需的静态库,则会收到该警告。按取消添加项目,一切正常。
现在,使用 Xcode 进行“工作”很诱人,只是慢慢地退后一步,并为它的价值而努力。但是,我很好奇那个警告是什么意思/为什么在那里?显然,根据编译器的说法,链接是必要的,因为没有它就无法编译。添加链接时,虽然它似乎抱怨它。
使用ReactiveUI,是否可以忽略给定ReactiveObject的初始值?
例如,我有一个ViewModel我初始化,然后我WhenAnyValue
在ViewModel上.我立即收到通知null
我的选择属性值.是的,我.Where(x => x != null)
可以避免这种情况,但有可能知道它null
以后是有价值的.
换句话说,我想在第一次更改值后开始收到通知.
我不是很容易看到我如何做到这一点,或者甚至可能做到这一点.我Initial Value
在源代码中看到了引用,WantsAnyValue/WantsAny
但我不清楚如何设置初始值.
我有一个HTTPService
返回一个Observable<NSData>
.我的目标是将该服务组合到另一个服务中,ServiceA
该服务会根据我的用例转换该数据.Observable.create
在RxSwift中使用2.0.0-rc.0就ServiceA
可以了.我的问题是如何正确处理从订阅返回的一次性HTTPService
.
如果我什么都不做,我得到编译时警告result of call is unused
:http://git.io/rxs.ud.我从阅读中理解,如果我什么都不做,那可能就行了.(xs
下面提到的是let xs: Observable<E> ....
如果xs以可预测的方式终止,其中包含Completed或Error消息,则不处理订阅Disposable不会泄漏任何资源,但它仍然是首选方式,因为以这种方式,元素计算在可预测的时刻终止.
所以这就是我目前正在解决的问题,也是我想知道我是否正确地做到这一点,或者我是否误解了一些问题.
public struct ServiceA{
public static func changes() -> Observable<ChangeSet>{
return Observable.create{ observable in
// return's Observable<NSData>
let request = HTTPService.get("https://httpbin.org/get")
let disposable = request.subscribe(
onNext: { data in
// Do more work to transform this data
// into something meaningful for the application.
// For example purposes just …
Run Code Online (Sandbox Code Playgroud) swift ×3
ios ×2
macos ×2
xcode ×2
.net-core ×1
aws-cognito ×1
c# ×1
cocoa ×1
django-cms ×1
osx-yosemite ×1
reactiveui ×1
rx-swift ×1
uitextview ×1
xcode6 ×1