小编Lan*_*ria的帖子

我是否应该在App Store中发布带有打印语句的应用程序?

我打算很快将我的应用程序发布到App Store(在TestFlight之后).我有很多视图控制器print,其中包含语句.这些print语句用于测试目的(调试器),用户永远不会看到它们.

如果我在应用程序中发布或不包含打印语句,它会有什么不同吗?

打印语句是否会在场景之间切换时降低速度,即使是毫秒?

我可以因为将它们包含在我的应用中而被拒绝吗?

在几个vcs中我打印uid只是为了清楚我自己.通过在应用程序中包含这些打印语句,是否存在任何安全风险?

security printf uiviewcontroller ios mac-app-store

7
推荐指数
2
解决办法
989
查看次数

AdMob 刷新请求

我有几个问题让我感到困惑:

  1. 谁最负责刷新广告?在我加载请求后bannerView.load(GADRequest()),让开发人员或 Google 监控它是最佳做法吗?

  2. 刷新时间应该短至 30 秒还是至少 60 秒?他们推荐 60 秒,但让您可以选择 30 秒,这似乎很奇怪。我在不同的帖子中读到过,您可能会因各种事情受到处罚,而且您的 AdMob 帐户将被关闭,不会有任何问题。如果是这种情况,如果您在控制台内选择 30 秒,而他们推荐 60 秒,如果他们觉得有任何“有趣”,他们可以仅根据这一点终止您的帐户。这是一个非常曲折的过程。

  3. 它说如果您的应用程序自动刷新广告,请确保在屏幕关闭时不会发出广告请求。如果我的第一个问题的答案是让谷歌监控/自动刷新(不使用我下面的代码)谷歌如何知道屏幕是否关闭?例如,广告显示在viewControllerA但用户按下按钮并被viewControllerB推动。由于viewControllerA仍在堆栈中,广告将不断刷新,我不知道谷歌如何知道屏幕关闭直到viewControllerA被释放。另外,如果用户进入后台,Google 怎么知道?我假设关闭 意味着用户无法再看到屏幕,这意味着他们无法看到广告,因此无需刷新,因为他们要么切换了选项卡,要么在另一个 VC 上推送,要么转到后台(所有情况都在下面的代码中处理)

  4. 刷新控制台页面的链接在哪里?在您可以转到https://apps.admob.com > Monetize 之前,您最终会出现在带有刷新选项的页面上。当我登录时,我不再看到货币化选项,而是看到带有一堆图标的侧边栏。没有任何图标将我带到刷新页面。仅供参考,我昨天刚开始使用 AdMob,我只在视频和在线教程中看到刷新页面,所以我以前从未使用过它。

在此处输入图片说明

在这里说(强调我的):

刷新广告

我们建议您让广告持续60秒或更长时间,具体取决于您应用的功能。我们的内部测试表明,这可确保用户有足够的时间与广告互动,从而为广告商和发布商提供最佳性能。此外,这些测试表明,更频繁地刷新广告会损害我们发布商的填充率。

如果您的应用会自动刷新广告,请确保在屏幕关闭时不会发出广告请求。此外,如果用户在短时间内浏览和浏览应用中包含广告的页面,则新的广告请求不应早于建议的60秒速率。

但它也在这里说:

横幅广告

我们建议使用 Google 优化的自动刷新率。优化速率是使用 AdMob 历史数据计算得出的,以确保您的广告单元中显示的广告以横幅广告的最佳速率刷新。

您还可以设置30-120秒的自定义刷新率或完全禁用刷新率。

这是我每 30 秒自己管理一次请求的方法,考虑到用户何时进入后台、切换选项卡或推动另一个 VC。如果我不做所有这些并将其留给他们(“我们建议使用谷歌优化的自动刷新率”),谷歌如何知道屏幕是否关闭?

var timer: Timer?

override viewDidLoad() {
    super.viewDidLoad()

    // instantiate bannerView …
Run Code Online (Sandbox Code Playgroud)

admob ios adbannerview swift

7
推荐指数
1
解决办法
4023
查看次数

2019 年在 App Store Connect 中在哪里可以找到测试版应用程序的应用程序 URL 链接?

让我从我被批准用于外部 Beta 测试者开始。

在此处输入图片说明

我寻找这个问题的答案,并不断遇到引用iTunes Connect并于 2015 年、2016 年、2017 年发布的旧答案。

现在是 2019 年,iTunes Connect并已重命名为App Store Connect并且布局已更改。

当我以前的应用程序处于测试阶段时,要获取 App Store url,我必须转到iTunes Connect> MyApps(选择我想要的应用程序)> App Information> 底部有一个链接,上面写着View on App Store. 单击该链接会将我带到一个空白页面,其中包含我尚未上线的 url 作为我的 beta 应用程序的 url。

在此处输入图片说明

在同一时间上iTunes Connect有一个More 是给你带来了有按钮

在此处输入图片说明

App Store Connect布局View on App Store在底部不再有More按钮,也没有在任何可见区域列出的按钮

在此处输入图片说明

我了解 App Store url 链接的格式如下,我可以自己手动输入数据:

"https://itunes.apple.com/us/app/MY_APP_NAME/idMy_APP_ID?mt=8" // this is what I previously used that worked fine
Run Code Online (Sandbox Code Playgroud)

或者 …

app-id ios app-store-connect

7
推荐指数
1
解决办法
8049
查看次数

Firebase -'isDirectChannelEstablished' 已弃用:FCM 直接通道已弃用,请使用 APNs 通道进行下游消息传递

我刚刚上传了我的 Firebase pod 并收到了以下警告消息:

'isDirectChannelEstablished' 已弃用:FCM 直接通道已弃用,请使用 APNs 通道进行下行消息传递

警告出现在这里:

Messaging.messaging().shouldEstablishDirectChannel = true
Run Code Online (Sandbox Code Playgroud)

如何消除此警告?

ios firebase swift firebase-cloud-messaging

7
推荐指数
1
解决办法
8550
查看次数

self.tableView.delegate = self Swift

如果我有一个UIViewController,我在故事板中连接一个tableView,连接tableview插座,然后通过连接检查器连接数据源和委托方法(cntrl +拖动到vc橙色圆圈图标),我是否还需要添加self.tableView.delegate = selfself.tableView.datasource = self实际的视图控制器?当然在实际的vc中我正在实现tableView数据/委托协议.

此外,我假设答案是什么,同样的方式将集合视图控制器通过故事板连接相同的方式?

添加它的优点和缺点是什么?

class FooController:UIViewController, UITableViewDataSource, UITableViewDelegate {

@IBOutlet weak var tableView: UITableView!

override func viewDidLoad() {
    super.viewDidLoad()

    self.tableView.delegate = self
    self.tableView.datasource = self
}


func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { ... }

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { ... }

}
Run Code Online (Sandbox Code Playgroud)

delegates uitableview ios uicollectionview swift

6
推荐指数
1
解决办法
5394
查看次数

如何将Heroku应用程序链接到私人Github Repo?

我是Heroku的新手,并且对Deploy / Pipeline语言不熟悉。

我已经安装了Heroku CLI,并使用以下方式部署了应用程序:

run: heroku create myNewHerokuApp
Run Code Online (Sandbox Code Playgroud)

我的实例现在制作完成了。

我在Github上有一个私人仓库。

https://github.com/myUserName/myPrivateRepoName.git
Run Code Online (Sandbox Code Playgroud)

如何链接我myNewHerokuAppmyPrivateRepoName.git

git github heroku

6
推荐指数
1
解决办法
2870
查看次数

Swift iOS - 当有 wifi 连接但没有互联网连接时该怎么办?

我在我的 iOS 应用程序中使用 Alamofire。我在 viewWillAppear 和 AppDelegate 中使用 bool 值和 NSNotifications 来检查是否有互联网连接。如果没有 wifi 连接,则会出现一个弹出窗口以通知用户。如果有 wifi 连接,弹出窗口就会消失,一切正常。只要wifi显然无法正常工作,我就没有问题。

我正在参加一个聚会,有人向我解释说它的工作方式是它寻找 wifi 连接而不是互联网连接。例如。如果我有一个 wifi 路由器并且它已插入但路由器未连接到互联网 Alamofire 会将此视为成功连接,因为它实际上正在连接到 wifi 虽然它不知道 wifi 无法连接到互联网.

我只是在连接到开放网络的情况下,我的应用程序最初的响应好像我真的连接到了互联网(没有弹出窗口),但我无法连接到任何东西。wifi信号全开。在终端中,我运行了 ping,结果发现连接已死。我的应用程序无法区分。

在此处输入图片说明 在此处输入图片说明

在这样的情况下,如何让弹出窗口出现?

还有什么是 .case unknown ?

Alamofire.Swift:

import Foundation
import Alamofire

open class NetworkManager {

    open static var sharedManager: NetworkReachabilityManager = {

        let reachabilityManager = NetworkReachabilityManager()

        reachabilityManager?.listener = { (status) in

            switch status {

            case .notReachable:
                print("The network is not reachable")
                NotificationCenter.default.post(name: NSNotification.Name(rawValue: "unsuccessful"), object: nil)

            case .unknown : //???????
                print("It is …
Run Code Online (Sandbox Code Playgroud)

networking nsnotifications reachability ios alamofire

6
推荐指数
1
解决办法
5245
查看次数

Xcode 没有显示最近的崩溃日志

在我的手机上,我将与应用程序开发人员共享设置为On.

设置 > 隐私 > 分析 > 与应用开发者共享 > 开启

我打印了一个 nil 值来强制崩溃:

var x: String?
print(x!)
Run Code Online (Sandbox Code Playgroud)

我在控制台中看到了崩溃,但是当我去:

Window > Device and Simulators > myPhone > myApp's name > View Device Logs > Process > myApp's name
Run Code Online (Sandbox Code Playgroud)

我只看到我的应用程序从 2017 年 11 月开始的旧崩溃(之前或之后都没有)。它没有显示我的应用程序的任何当前崩溃,但它显示了我所有其他应用程序(例如 YouTube、Slack、Stack Overflow 等)的所有当前崩溃。我一小时前刚刚打印了一个 nil 值的那个甚至没有出现。

在此处输入图片说明

在 Xcode 中,我导航到 Crashes,但它显示 No Crash Logs:

Windows > Organizer > Crashes > App Store > releaseInAppStore但 nada

为什么我最近的崩溃日志没有出现?

xcode crash-log ios

6
推荐指数
1
解决办法
3283
查看次数

Xcode - 证书状态显示“不在钥匙串中”,但证书在钥匙串访问中可见

我七月份买了这台电脑。在此之前我有另一台计算机,我成功导出了签名证书及其私钥并将它们添加到这台计算机。一切都运转良好。上周我成功地将 2 个应用程序推送到 AppStoreConnect。

周一我遇到了一个奇怪的错误(与这个问题不同)并错误地撤销了证书。从那时起我就不断收到错误:

您的帐户已拥有此计算机的签名证书,但它不存在于您的钥匙串中

在此输入图像描述

当我转到Xcode> Accounts> Apple IDs>Team并单击它时,plus sign它说

不在钥匙串中//第二张图片

起初,当我尝试将丢失的分发证书拉入Keychain>时login,我不断收到以下消息:

在此输入图像描述

当我在命令行上尝试时,我得到Segmentation fault: 11

$ security import /Users/Home/Desktop/Certificates_Folder/my@email/Certificate.p12 -k ~/Library/Keychains/login.keychain

$ Segmentation fault: 11
Run Code Online (Sandbox Code Playgroud)

login奇怪的是,它让我发送除分发证书之外的所有其他证书。

因此,我创建了一个名为的新钥匙串项Brand_New_Keychain,并在其中添加了两个证书。当我检查时,Brand_New_Keychain两个证书都存在并且它们都在System.

我取消选中Automatic,使用减号删除开发团队,然后将其添加回来,我关闭 Xcode,重新启动计算机,打开 Xcode 等,同样的问题仍然存在。

如下图所示,“不在钥匙串中”证书位于“钥匙串访问”中。这里有什么问题?

1-签名错误

在此输入图像描述

2-不在钥匙串消息中

在此输入图像描述

3- 有效期自Development Certificate

在此输入图像描述

4- 有效期自Distribution Certificate

在此输入图像描述

5-我创建的新钥匙串项目Brand_New_Keychain>>Certificates图3和4中的两个证书具有相同的到期日期,但它说我在钥匙串中没有

在此输入图像描述

6- 当我将我的一个应用程序推送到 AppStoreConnect 时,它说我没有.p12 …

xcode code-signing-certificate p12

6
推荐指数
0
解决办法
9767
查看次数

Swift iOS -Admob如何确定用户是否是加利福尼亚州居民,为《加利福尼亚消费者隐私法》(CCPA)做准备

我刚收到Google的电子邮件:

有关《加州消费者隐私法》(CCPA)的重要更新

基本上,这是the GDPR欧洲的精简版规则,但对于加利福尼亚州的居民而言,这将会生效Jan 1, 2020Google说

以下产品需要采取措施才能启用受限数据处理:AdMob

当我点击AdMob链接时,它说:

一些发布者可能选择不在其媒体资源上显示“不出售我的个人信息”链接。

或者,其他发布者可以选择显示“不出售我的个人信息”链接

使用Google GDPR同意书SDK时,我的生活非常轻松。sdk可以使用以下代码确定用户是否在GDPR区域内:

import PersonalizedAdConsent
PACConsentInformation.sharedInstance.debugGeography = .EEA
if PACConsentInformation.sharedInstance.isRequestLocationInEEAOrUnknown { ... }
Run Code Online (Sandbox Code Playgroud)

如果用户在区域内,则可以向他们提出以下表格:

在此处输入图片说明

iOS页面的CCPA代码说要添加以下代码:

let request = DFPRequest()
let adNetworkExtras = GADExtras()
adNetworkExtras.additionalParameters = [ "rdp" : "1" ]
request.register(adNetworkExtras)
Run Code Online (Sandbox Code Playgroud)

我可以向用户显示“不出售我的个人信息”的警报,并带有“是/否”选项,如果他们想退出,则会设置上面的代码。与GDPR同意书不同,这里的主要问题是确定用户是否是CA州居民

该法律规定了加利福尼亚州居民的各种权利。我只想向加利福尼亚州居民的用户提供该表格,但有一个难题。

1-用户位于IN CA和IS一个CA状态驻留(本他们的警报)

2-用户位于OUTSIDE CA和IS一个CA状态驻留(呈现它们的警报)

3-用户所在IN CA和IS NOT一个CA状态居民(不存在任何东西)

4-用户所在OUTSIDE …

admob ios swift ccpa

6
推荐指数
1
解决办法
293
查看次数