小编pka*_*amb的帖子

iOS9:Universal Links不起作用

所以我也跟着教程https://blog.branch.io/how-to-setup-universal-links-to-deep-link-on-apple-ios-9,准确地使用相同的值提供的一个.

Apple协会文件也已准备好在链接目录中:WEB_PAGE:PORT_NUMBER/apple-app-site-association

一切似乎都在这方面设置.

我添加了权利,更新了配置文件以及所有设置.

当我在我的设备上运行应用程序,并打开链接http:// WEB_PAGE:PORT_NUMBER时,这将始终打开Safari.

我甚至在以下方法中有断点:

- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray * __nullable restorableObjects))restorationHandler
Run Code Online (Sandbox Code Playgroud)

但齐尔奇.

有没有人完善这个?有什么我错过了吗?

xcode objective-c ios ios9 ios-universal-links

97
推荐指数
19
解决办法
7万
查看次数

启动后将调试器附加到IOS应用程序

我有一个问题,我正在排除故障,很少发生,当我在Xcode下运行时似乎没有发生.

是否可以正常运行应用程序(即从Springboard)直到我的问题发生,然后在那时附加一个调试器?

如果可能的话,我更愿意在没有越狱的情况下这样做.

debugging xcode ios

96
推荐指数
4
解决办法
7万
查看次数

iPhone上的JSON和核心数据

我有一个核心数据对象图(由两个由多对多关系链接的实体组成).

我很好奇,作为一个相对缺乏经验的iPhone开发人员,是否有人可以推荐一种方法,以及适合iPhone的JSON实现,这将允许我:

  1. 将核心数据记录转换为JSON字符串(同时保持实体之间的关系); 和

  2. 将JSON字符串转换回核心数据对象(再次保留实体之间的关系).

我已经在这一点上搜索了一个教程/代码示例,但没有成功,所以我将非常感激地收到任何帮助.

iphone json core-data objective-c

93
推荐指数
4
解决办法
4万
查看次数

在App Store发布时,哪个iOS应用程序版本/内部版本号必须递增?

iOS应用的版本/构建字段包括:

  • "Version" CFBundleShortVersionString(String - iOS,OS X)指定捆绑包的发布版本号,该版本号标识应用程序的已发布迭代.发行版本号是由三个以句点分隔的整数组成的字符串.

  • "Build" CFBundleVersion(String - iOS,OS X)指定捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布).构建版本号应该是由三个非负的,周期分隔的整数组成的字符串,第一个整数大于零.该字符串应仅包含数字(0-9)和句点(.)字符.前导零从每个整数中截断,将被忽略(即1.02.3相当于1.2.3).此密钥不可本地化.

  • "iTunes Connect版本号":在iTunes Connect上创建应用程序的新版本时指定的版本号.

我的问题是:

当新版本的应用程序上传到iTunes Connect和/或发布到App Store时,需要增加哪些版本/内部版本号?

应用更新之间的"版本" CFBundleShortVersionString或"构建"可以CFBundleVersion保持不变吗?

Apple来源的额外积分或iTunesConnect在上传无效版本/内部版本号时显示的确切错误消息.


Android/Google Play笔记:

促使这个问题的讨论是,在谷歌Android应用的大众"版本" Play商店并没有需要递增,是没有办法验证.该android:versionName可不同版本之间保持不变,升级,降级,或者是任何随机字符串,而不是东西,似乎是一个有效的"版本号".

android:versionName - 表示应用程序代码的发行版本的字符串值,因为它应显示给用户.

该值是一个字符串,以便您可以将应用程序版本描述为<major>.<minor>.<point>字符串,或任何其他类型的绝对或相对版本标识符.

Android中versionName和versionNumber之间的区别

android:versionCode强制执行是一个递增的释放整数.


Apple文档

正如新接受的回答中所述,Apple最近发布了一份技术说明,详细说明了他们的版本和内部版本号:

Apple技术说明TN2420 - 版本号和内部版本号

itunesconnect app-store ios mac-app-store

93
推荐指数
6
解决办法
7万
查看次数

iTunes Connect中的"版本号","捆绑版本",Xcode中的"捆绑版本字符串"之间有什么区别?

Apple的doc可能更清楚如何提交更新版本.

正如标题中所说,有什么区别

  1. itunes connect中的版本号(提交更新时必须提供的版本号)
  2. xcode中的捆绑版本
  3. 捆绑版本字符串,简短

它们有任何关联吗?

iphone version

90
推荐指数
5
解决办法
7万
查看次数

我应该为CFBundleVersion和CFBundleShortVersionString使用什么值?

这是我的第一个iOS应用提交,我不希望我的应用被拒绝.

这来自Apple Docs:

CFBundleVersion(String - iOS,OS X)指定捆绑包的构建版本号,该版本号标识捆绑包的迭代(已发布或未发布).构建版本号应该是由三个非负的,周期分隔的整数组成的字符串,第一个整数大于零.该字符串应仅包含数字(0-9)和句点(.)字符.前导零从每个整数中截断,将被忽略(即1.02.3相当于1.2.3).此密钥不可本地化.

CFBundleShortVersionString(String - iOS,OS X)指定捆绑包的发行版本号,该版本号标识应用程序的已发布迭代.发行版本号是由三个以句点分隔的整数组成的字符串.第一个整数表示对应用程序的主要修订,例如实现新功能或主要更改的修订.第二个整数表示实现不太突出的功能的修订.第三个整数表示维护版本.

此键的值与"CFBundleVersion"的值不同,后者标识应用程序的迭代(已发布或未发布).可以通过将其包含在InfoPlist.strings文件中来本地化此密钥.

但似乎有点奇怪.我对此的解释是将两个值相同,即:

CFBundleVersion: 1.0.0
CFBundleShortVersionString: 1.0.0
Run Code Online (Sandbox Code Playgroud)

有人可以确认100%这是我应该放的吗?

ios

88
推荐指数
7
解决办法
5万
查看次数

Package.resolved 文件已损坏或格式错误

我遇到构建错误,指出我的所有 SPM 包均丢失。我决定删除每个包并将其重新添加到项目中,但每次尝试添加包都会出现以下错误:

Package.resolved 文件已损坏或格式错误;修复或删除文件以继续

我尝试删除该Package.resolved文件并让它重新生成(但没有),但我收到了相同的错误消息。有想法该怎么解决这个吗?

在此输入图像描述

xcode swift-package-manager

87
推荐指数
4
解决办法
5万
查看次数

Xcode 4 - 重新安装我删除的钥匙串证书

我收到此错误:

CodeSign错误:证书身份'iPhone Developer:XXX'在钥匙串中出现不止一次.代码签名工具要求只有一个.

起初我虽然,不用担心,我只会进入钥匙串并删除重复(较旧)的一个,我做了.我回去了,关闭Xcode,重新打开Xcode和项目,同样的错误.wtf我虽然对自己.回到钥匙串,证书又在那里.我删除了两个证书,重复,并在项目加载时注意,我删除的两个证书弹回到钥匙串中.

经过多次搜索,我确保我没有系统钥匙串中的证书,我没有.也进行了清洁和重建.当我与Xcode 3重复时,我可以清理钥匙串副本,我很好.但是使用Xcode 4,它只是在我打开项目时以某种方式重新安装它们.我甚至删除了我的系统上的所有.cer文件,它们可能正在将它们拉出来.

有什么建议?

xcode code-signing xcode4

85
推荐指数
5
解决办法
3万
查看次数

Xcode调试 - 显示图像

我喜欢使用Xcode调试器.您可以查看变量的值,甚至可以更改它.

但我可以以某种方式显示图像变量引用的图像吗?我知道我可以看到它的原始字节,但是显示带有内容的窗口会更加人性化.

Xcode可能不支持这个.也许有一个外部工具可以帮助显示图像?

debugging xcode

84
推荐指数
5
解决办法
3万
查看次数

Swift @escaping和Completion Handler

我试图更准确地理解Swift的"关闭".

@escapingCompletion Handler太难以理解

我搜索了许多Swift帖子和官方文档,但我觉得还不够.

这是官方文档的代码示例

var completionHandlers: [()->Void] = []

func someFunctionWithEscapingClosure(completionHandler: @escaping ()->Void){
    completionHandlers.append(completionHandler)
}

func someFunctionWithNoneescapingClosure(closure: ()->Void){
    closure()
}

class SomeClass{
    var x:Int = 10
    func doSomething(){
        someFunctionWithEscapingClosure {
            self.x = 100
            //not excute yet
        }
        someFunctionWithNoneescapingClosure {
            x = 200
        }
    }
}

let instance = SomeClass()
instance.doSomething()
print(instance.x)

completionHandlers.first?() 
print(instance.x)
Run Code Online (Sandbox Code Playgroud)

我听说有两种使用方法和原因 @escaping

第一个用于存储闭包,第二个用于Async操作目的.

以下是我的问题:

首先,如果doSomething执行someFunctionWithEscapingClosure则将使用closure参数执行,并且该闭包将保存在全局变量数组中.

我认为封闭是{self.x = 100}

如何self在{self.x = 100}中保存在全局变量中completionHandlers可以连接到instance该对象 …

closures escaping swift

80
推荐指数
2
解决办法
5万
查看次数