I have been pulling out my hair the past day over this. I am adding push / remote notifications (using FCM) and running into an issue with the APN entitlement not being added to provisioning profile - using automatic signing.
Now I am somewhat of a new / hobbyist developer but I'm sure I've covered all the bases:
Have added (and removed and re-added) the capability in Xcode.
Created (and recreated) the APN key in the developer portal (combined with Sign in with Apple)
AppDelegate is fine
FCM returns a device key without issue.
Cleaned build folder and rebuilt app
Despite this I am still getting "10.18.0 [FirebaseMessaging][I-FCM012002] Error in application:didFailToRegisterForRemoteNotificationsWithError: no valid
*aps-environment" entitlement string found for application" error.
Include is a screen capture of the automatically generated profile which seems to illustrate the issue.
Any and all advice is greatly appreciated ;)
Post
Replies
Boosts
Views
Activity
I have a basic SwiftUI app that uses an MKMapView via UIView Representable to display a range of places around the world (as annotations with Callouts using UIButton(type: .detailDisclosure))
Question is how can I detect when the user taps the detailDisclosure button and act on this in SwiftUI?
I've had a search around the web but nothing has helped me nail a solution to this.
Any pointers / suggestions greatly appreciated.
I have a simple picker control being used to make a selection ( using SegmentedPickerStyle() ) however when used it automatically closes after a few seconds without the user being able to make a selection.
I can't seem to see any reason why this is happening.
Using Xcode 13 beta and ios15
Any thoughts ... ?
Code for the picker control below
Picker("Category:", selection: $selectedCategory) {
ForEach(modelData.categories) { category in
HStack {
FAText(iconName: category.image, size: 12)
Text(category.name)
}
}
}
Picker(selection: $selectedTaskPriorityIndex, label: Text("")) {
ForEach(0 ..< taskPriority.count) {
Image(systemName: "\(self.taskPriority[$0])")
}
}
.pickerStyle(SegmentedPickerStyle())
I'm working on a simple app (new to SwiftUI) and having some issues with the NavigationView element.
I have added a NavigationView to my top-level view but this creates a block of blank space above the view that I can't seem to remove. If I take out the NavigationView the rest of the views display as expected.
I have tried removing the navigation bar Title modifiers from deeper in the app but that also hasn't had any effect.
I'm at a bit of a loss as to what is going on here ... have I made this too complicated for my own good?
(images to illustrate the results)
Code for the view with the issue.
var body: some View {
NavigationView {
VStack{
todayView()
categoryList()
.padding(5)
Spacer()
}
}
.navigationBarTitle("")
.navigationBarHidden(true)
}
}
initial navigationLinks are in the categoriesList (Red) which lead to a list of items also with navigationLinks (code below)
@EnvironmentObject var modelData: ModelData
@State private var showHotListOnly = false
var filteredHotTasks: [Task] {
modelData.tasks.filter { task in
(!showHotListOnly || task.isHotList)
}
}
var body: some View {
//NavigationView {
List {
ForEach(filteredHotTasks) { task in
NavigationLink(destination: TaskDetail(task: task)) {
TaskRow(task: task)
}
}
}
.navigationTitle(showHotListOnly ? "Hot List" : "Tasks")
.navigationBarTitleDisplayMode(.inline)
.navigationBarItems(trailing:
Button (action: {
showHotListOnly.toggle()
}) {
Image(systemName: showHotListOnly ? "flame.fill" : "flame")
.foregroundColor(showHotListOnly ? Color.orange : Color.gray)
}
)
//}
}
Any and all help greatly appreciated! Especially before I go bald from frustration.
Hi team, I’m working (slowly 😂) through the SwiftUI tutorial (creating a landmarks app) but have run into a bug I can’t figure out.
I modified the app to retrieve its json data from a remote web server which has worked fine right up to adding the featured section where it creates an index out of bounds error.
it seems like the features array isn’t getting populated but can’t see how to resolve it.
any ideas?
import Foundation
import Combine
import SwiftUI
class ModelData: ObservableObject {
@Published var landmarks: [Landmark] = []
var cancellationToken: AnyCancellable?
init(){
getLocations()
}
var categories: [String: [Landmark]] {
Dictionary(
grouping: landmarks,
by: { $0.category.rawValue }
)
}
var features: [Landmark] {
landmarks.filter { $0.isFeatured }
}
}
extension ModelData {
func getLocations() {
let url = "https://overseer.cyou/heritage/theList.php?token=" + randomString(length: 6)
cancellationToken = apiRequest.request(url)?
.mapError({ (error) - Error in
return error
})
.sink(receiveCompletion: { _ in },
receiveValue: {
self.landmarks = $0
})
}
func randomString(length: Int) - String {
let letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
return String((0..length).map{ _ in letters.randomElement()! })
}
}
struct apiRequest {
static func request(_ path: String) - AnyPublisher[Landmark], Error? {
guard let url = URL(string: path)
else { return nil }
let request = URLRequest(url: url)
return apiCall.run(request)
.map(\.value)
.eraseToAnyPublisher()
}
}
struct apiCall {
struct ResponseT {
let value: T
let response: URLResponse
}
static func runT: Decodable(_ request: URLRequest) - AnyPublisherResponseT, Error {
return URLSession.shared
.dataTaskPublisher(for: request)
.tryMap { result - ResponseT in
let value = try JSONDecoder().decode(T.self, from: result.data)
print(result.response)
print(value)
return Response(value: value, response: result.response)
}
.receive(on: DispatchQueue.main)
.eraseToAnyPublisher()
}
}
Hi team, I'm very new to SwiftUI development and have been plugging through the tutorial here - https://developer.apple.com/tutorials/swiftui/building-lists-and-navigation
Now I want to try switching from a local JSON file to a remote server JSON response. I've looked over using URLRequest but have been running into various errors.
Can someone share how to go about switching the load method from local to remote, in beginner's terms?
Hi team, I’m new to swift - just getting started - and as such have been working through swift playgrounds on iPad however at the final exercise “ roll left, roll right” I’m having an issue escaping my while loop.
This is my current code:
while !(isBlocked && isBlockedLeft && isBlockedRight) {
moveForward()
if isBlocked && isBlockedLeft {
turnRight()
} else if isBlocked {
turnLeft()
}
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
problem being that when Byte reaches the end of the maze and is blocked front, left, and right the code doesn’t exit as (I believe) it should but rather byte turns and loops the maze again.
what am I missing?
Hi all, I’m moving to swift from developing with PHP and JavaScript and as an intro have been going through the (quite fun) swift playground lessons. The last lesson - Roll Left Roll Right in learn to code 1 isn’t cooperating with me or I’m missing something obvious.
at the end of the ‘maze’ when byte is blocked I’m having an issue getting the code to exit my while loop.
Code is as follows:
while !(isBlocked && isBlockedLeft && isBlockedRight) {
moveForward()
if isBlocked && isBlockedLeft {
turnRight()
} else if isBlocked {
turnLeft()
}
if isOnGem {
collectGem()
} else if isOnClosedSwitch {
toggleSwitch()
}
}
Any pointers?